public void Play(float delay = 0) { if (state == PureDataStates.Waiting) { SetSleepTime(sleepTime); if (delay > 0) { pureData.communicator.SendDelayedMessage("usequence_play", delay, Id); } else { state = PureDataStates.Playing; NextStepIndex = -1; SwitchOff(); SetSource(nextSources.Dequeue()); SetOutput(output); SetVolume(volume, 0.01F); SetTickSpeed(60F * steps[0].Beats / steps[0].Tempo); SwitchOn(); pureData.sequenceManager.Activate(this); pureData.communicator.SendMessage <bool>("usequence_messages" + Id, "Play"); } } }
public void Start() { nextSources = new Queue(); CurrentStepIndex = -1; NextStepIndex = -1; state = PureDataStates.Stopped; foreach (PureDataSequenceTrack track in tracks) { track.Start(); } }
public void StopImmediate() { if (state != PureDataStates.Stopped) { state = PureDataStates.Stopped; NextStepIndex = -1; CurrentStepIndex = -1; nextSources.Clear(); SwitchOff(); pureData.sequenceManager.Deactivate(this); pureData.communicator.SendMessage <bool>("usequence_messages" + Id, "Sleep"); } }
public void Stop(float delay = 0) { if (state != PureDataStates.Stopped && state != PureDataStates.Stopping) { if (delay > 0) { pureData.communicator.SendDelayedMessage("usequence_stop", delay, Id); } else { state = PureDataStates.Stopping; SetStepperSwitch(false); SetStopperSwitch(true); foreach (PureDataSequenceTrack track in tracks) { pureData.communicator.SendBang(string.Format("utrack_pattern{0}_{1}", Id, track.Id)); } } } }