public void Step(float tickSpeed, int stepIndex, PureDataSequence sequence) { PureDataSequenceTrackStep trackStep = steps[stepIndex]; if (trackStep.patternIndex == -1) { pureData.communicator.SendBang(string.Format("utrack_pattern{0}_{1}", sequence.Id, Id)); } else { PureDataSequencePattern pattern = patterns[trackStep.patternIndex]; pureData.communicator.Send(string.Format("utrack_size{0}_{1}", sequence.Id, Id), pattern.sendSize); pureData.communicator.Send(string.Format("utrack_delay{0}_{1}", sequence.Id, Id), tickSpeed * 1000 / pattern.subdivision); pureData.communicator.Send(string.Format("utrack_pattern{0}_{1}", sequence.Id, Id), pattern.GetPattern()); } }
public PureDataSequenceItem(PureDataSequence sequence, PureData pureData) : base(pureData) { this.sequence = sequence; }
void ShowSequences() { sequencesProperty = sequenceManagerSerialized.FindProperty("sequences"); sequenceSelections = sequenceSelections ?? new Dictionary<PureDataSequence, SequenceSelectionData>(); if (AddFoldOut(sequencesProperty, "Sequences".ToGUIContent())) { sequenceManager.sequences[sequenceManager.sequences.Length - 1] = new PureDataSequence(pureData); sequenceManager.sequences[sequenceManager.sequences.Length - 1].SetUniqueName("default", sequenceManager.sequences); sequenceManager.UpdateSequenceContainer(); sequenceManagerSerialized.Update(); } if (sequencesProperty.isExpanded) { EditorGUI.indentLevel += 1; for (int i = 0; i < sequencesProperty.arraySize; i++) { currentSequence = sequenceManager.sequences[i]; currentSequenceProperty = sequencesProperty.GetArrayElementAtIndex(i); stepsProperty = currentSequenceProperty.FindPropertyRelative("steps"); tracksProperty = currentSequenceProperty.FindPropertyRelative("tracks"); sequenceSpatializerProperty = currentSequenceProperty.FindPropertyRelative("spatializer"); if (!sequenceSelections.ContainsKey(currentSequence)) { sequenceSelections[currentSequence] = new SequenceSelectionData(); } currentSequenceSelection = sequenceSelections[currentSequence]; currentSequenceSelection.Initialize(currentSequence, currentSequenceProperty); BeginBox(); if (DeleteFoldOut(sequencesProperty, i, currentSequence.Name.ToGUIContent(), GetSequenceStyle(), OnSequenceReorder)) { sequenceManager.UpdateSequenceContainer(); break; } ShowSequence(); EndBox(); } Separator(); EditorGUI.indentLevel -= 1; } }
public void Initialize(PureDataSequence currentSequence, SerializedProperty currentSequenceProperty) { sequence = currentSequence; sequenceProperty = currentSequenceProperty; if (StepIsNull) { SetStep(0); } if (TrackIsNull) { SetTrack(0); } }
public void UpdateSendNames(PureDataSequence sequence) { panLeftSendName = "usequence_pan_left" + sequence.Id; panRightSendName = "usequence_pan_right" + sequence.Id; }
public void Apply(PureDataSequence sequence) { switch (type) { case PureDataOption.OptionTypes.Volume: float[] volumeData = GetValue <float[]>(); sequence.SetVolume(volumeData[0], volumeData[1], delay); break; case PureDataOption.OptionTypes.Loop: sequence.SetLoop(GetValue <bool>()); break; case PureDataOption.OptionTypes.Output: sequence.SetOutput(GetValue <string>(), delay); break; case PureDataOption.OptionTypes.VolumeRolloffMode: sequence.spatializer.VolumeRolloffMode = (PureDataVolumeRolloffModes)GetValue <float>(); break; case PureDataOption.OptionTypes.MinDistance: sequence.spatializer.MinDistance = GetValue <float>(); break; case PureDataOption.OptionTypes.MaxDistance: sequence.spatializer.MaxDistance = GetValue <float>(); break; case PureDataOption.OptionTypes.PanLevel: sequence.spatializer.PanLevel = GetValue <float>(); break; case PureDataOption.OptionTypes.StepTempo: float[] stepTempoData = GetValue <float[]>(); sequence.SetStepTempo((int)stepTempoData[0], stepTempoData[1]); break; case PureDataOption.OptionTypes.StepBeats: float[] stepBeatsData = GetValue <float[]>(); sequence.SetStepBeats((int)stepBeatsData[0], (int)stepBeatsData[1]); break; case PureDataOption.OptionTypes.StepPattern: float[] stepPatternData = GetValue <float[]>(); sequence.SetStepPattern((int)stepPatternData[0], (int)stepPatternData[1], (int)stepPatternData[2]); break; case PureDataOption.OptionTypes.TrackSendType: float[] trackSendTypeData = GetValue <float[]>(); sequence.SetTrackSendType((int)trackSendTypeData[0], (int)trackSendTypeData[1], (PureDataPatternSendTypes)trackSendTypeData[2]); break; case PureDataOption.OptionTypes.TrackPattern: float[] trackPatternData = GetValue <float[]>(); sequence.SetTrackPattern((int)trackPatternData[0], (int)trackPatternData[1], (int)trackPatternData[2], (int)trackPatternData[3], trackPatternData.Slice(4)); break; default: Logger.LogError(string.Format("{0} can not be applied to {1}.", this, sequence.GetType())); break; } }