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()); } }
void ShowSequencePatterns() { sequencePatternsProperty = currentSequenceSelection.TrackProperty.FindPropertyRelative("patterns"); BeginBox(); if (AddFoldOut(sequencePatternsProperty)) { currentSequenceSelection.Track.patterns[currentSequenceSelection.Track.patterns.Length - 1] = new PureDataSequencePattern(); sequencePatternsProperty.serializedObject.Update(); } if (sequencePatternsProperty.isExpanded) { EditorGUI.indentLevel += 1; for (int i = 0; i < sequencePatternsProperty.arraySize; i++) { currentSequencePattern = currentSequenceSelection.Track.patterns[i]; currentSequencePatternProperty = sequencePatternsProperty.GetArrayElementAtIndex(i); GUIStyle style = new GUIStyle("foldout"); style.fontStyle = FontStyle.Bold; if (DeleteFoldOut(sequencePatternsProperty, i, string.Format("{0} | {1} | {2} : {3}", GetSequencePatternName(i), currentSequencePattern.sendType, currentSequencePattern.sendSize, currentSequencePattern.subdivision).ToGUIContent(), style)) { currentSequenceSelection.Track.RemovePatternFromSteps(i); currentSequenceSelection.TrackProperty.serializedObject.Update(); break; } ShowSequencePattern(); } Separator(); EditorGUI.indentLevel -= 1; } EndBox(); }