| 
|   | InstrumentClip (Song *song=NULL) | 
|   | 
|   | ~InstrumentClip () | 
|   | 
| void  | increaseLengthWithRepeats (ModelStackWithTimelineCounter *modelStack, int32_t newLength, int independentNoteRowInstruction, bool completelyRenderOutIterationDependence=false, Action *action=NULL) | 
|   | 
| void  | halveNoteRowsWithIndependentLength (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| void  | repeatOrChopToExactLength (ModelStackWithTimelineCounter *modelStack, int32_t newLength) | 
|   | 
| void  | processCurrentPos (ModelStackWithTimelineCounter *modelStack, uint32_t posIncrement) | 
|   | 
| bool  | renderAsSingleRow (ModelStackWithTimelineCounter *modelStack, TimelineView *editorScreen, int32_t xScroll, uint32_t xZoom, uint8_t *image, uint8_t occupancyMask[], bool addUndefinedArea, int noteRowIndexStart=0, int noteRowIndexEnd=2147483647, int xStart=0, int xEnd=displayWidth, bool allowBlur=true, bool drawRepeats=false) | 
|   | 
| void  | toggleNoteRowMute (ModelStackWithNoteRow *modelStack) | 
|   | 
| void  | overviewMutePadPress (bool, bool) | 
|   | 
| void  | midiCommandMute (bool) | 
|   | 
| void  | getMainColourFromY (int yNote, int8_t, uint8_t[]) | 
|   | 
| void  | stopAllNotesPlaying (ModelStackWithTimelineCounter *modelStack, bool actuallySoundChange=true) | 
|   | 
| void  | resumePlayback (ModelStackWithTimelineCounter *modelStack, bool mayMakeSound=true) | 
|   | 
| void  | setPos (ModelStackWithTimelineCounter *modelStack, int32_t newPos, bool useActualPosForParamManagers=true) | 
|   | 
| void  | musicalModeChanged (uint8_t, int, ModelStackWithTimelineCounter *modelStack) | 
|   | 
| void  | seeWhatNotesWithinOctaveArePresent (bool[], int, Song *song, bool deleteEmptyNoteRows=true) | 
|   | 
| void  | transpose (int, ModelStackWithTimelineCounter *modelStack) | 
|   | 
| void  | expectNoFurtherTicks (Song *song, bool actuallySoundChange=true) | 
|   | 
| int  | clone (ModelStackWithTimelineCounter *modelStack, bool shouldFlattenReversing=false) | 
|   | 
| NoteRow *  | createNewNoteRowForYVisual (int, Song *song) | 
|   | 
| void  | changeNoteOffsetAndCounteract (int newNoteOffset) | 
|   | 
| int  | getYVisualFromYNote (int, Song *song) | 
|   | 
| int  | getYNoteFromYVisual (int, Song *song) | 
|   | 
| int  | getYNoteFromYDisplay (int yDisplay, Song *song) | 
|   | 
| int  | guessRootNote (Song *song, int previousRoot) | 
|   | 
| void  | aboutToEdit () | 
|   | 
| int  | getNumNoteRows () | 
|   | 
| void  | ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (ModelStackWithTimelineCounter *modelStack, Sound *sound) | 
|   | 
| bool  | deleteSoundsWhichWontSound (Song *song) | 
|   | 
| void  | setBackedUpParamManagerMIDI (ParamManagerForTimeline *newOne) | 
|   | 
| void  | restoreBackedUpParamManagerMIDI (ModelStackWithModControllable *modelStack) | 
|   | 
| int  | getNoteRowId (NoteRow *noteRow, int noteRowIndex) | 
|   | 
| NoteRow *  | getNoteRowFromId (int id) | 
|   | 
| void  | shiftHorizontally (ModelStackWithTimelineCounter *modelStack, int amount) | 
|   | 
| bool  | containsAnyNotes () | 
|   | 
| ModelStackWithNoteRow *  | getNoteRowOnScreen (int yDisplay, ModelStackWithTimelineCounter *modelStack) | 
|   | 
| NoteRow *  | getNoteRowOnScreen (int yDisplay, Song *song, int *getIndex=NULL) | 
|   | 
| bool  | currentlyScrollableAndZoomable () | 
|   | 
| void  | recordNoteOn (ModelStackWithNoteRow *modelStack, int velocity, bool forcePos0=false, int16_t const *mpeValuesOrNull=NULL, int fromMIDIChannel=MIDI_CHANNEL_NONE) | 
|   | 
| void  | recordNoteOff (ModelStackWithNoteRow *modelStack, int velocity=DEFAULT_LIFT_VALUE) | 
|   | 
| void  | copyBasicsFrom (Clip *otherClip) | 
|   | 
| void  | lengthChanged (ModelStackWithTimelineCounter *modelStack, int32_t oldLength, Action *action=NULL) | 
|   | 
| NoteRow *  | createNewNoteRowForKit (ModelStackWithTimelineCounter *modelStack, bool atStart, int *getIndex=NULL) | 
|   | 
| int  | changeInstrument (ModelStackWithTimelineCounter *modelStack, Instrument *newInstrument, ParamManagerForTimeline *paramManager, int instrumentRemovalInstruction, InstrumentClip *favourClipForCloningParamManager=NULL, bool keepNoteRowsWithMIDIInput=true, bool giveMidiAssignmentsToNewInstrument=false) | 
|   | 
| void  | detachFromOutput (ModelStackWithTimelineCounter *modelStack, bool shouldRememberDrumName, bool shouldDeleteEmptyNoteRowsAtEndOfList=false, bool shouldRetainLinksToSounds=false, bool keepNoteRowsWithMIDIInput=true, bool shouldGrabMidiCommands=false, bool shouldBackUpExpressionParamsToo=true) | 
|   | 
| void  | assignDrumsToNoteRows (ModelStackWithTimelineCounter *modelStack, bool shouldGiveMIDICommandsToDrums=false, int numNoteRowsPreviouslyDeletedFromBottom=0) | 
|   | 
| void  | unassignAllNoteRowsFromDrums (ModelStackWithTimelineCounter *modelStack, bool shouldRememberDrumNames, bool shouldRetainLinksToSounds, bool shouldGrabMidiCommands, bool shouldBackUpExpressionParamsToo) | 
|   | 
| int  | readFromFile (Song *song) | 
|   | 
| void  | writeDataToFile (Song *song) | 
|   | 
| void  | prepNoteRowsForExitingKitMode (Song *song) | 
|   | 
| void  | deleteNoteRow (ModelStackWithTimelineCounter *modelStack, int i) | 
|   | 
| int16_t  | getTopYNote () | 
|   | 
| int16_t  | getBottomYNote () | 
|   | 
| uint32_t  | getWrapEditLevel () | 
|   | 
| ModelStackWithNoteRow *  | getNoteRowForYNote (int yNote, ModelStackWithTimelineCounter *modelStack) | 
|   | 
| NoteRow *  | getNoteRowForYNote (int, int *getIndex=NULL) | 
|   | 
| ModelStackWithNoteRow *  | getNoteRowForSelectedDrum (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| ModelStackWithNoteRow *  | getNoteRowForDrum (ModelStackWithTimelineCounter *modelStack, Drum *drum) | 
|   | 
| NoteRow *  | getNoteRowForDrum (Drum *drum, int *getIndex=NULL) | 
|   | 
| NoteRow *  | getOrCreateNoteRowForYNote (int yNote, Song *song, Action *action=NULL, bool *scaleAltered=NULL, int *getNoteRowIndex=NULL) | 
|   | 
| ModelStackWithNoteRow *  | getOrCreateNoteRowForYNote (int yNote, ModelStackWithTimelineCounter *modelStack, Action *action=NULL, bool *scaleAltered=NULL) | 
|   | 
| bool  | hasSameInstrument (InstrumentClip *otherClip) | 
|   | 
| bool  | isScaleModeClip () | 
|   | 
| bool  | allowNoteTails (ModelStackWithNoteRow *modelStack) | 
|   | 
| int  | setAudioInstrument (Instrument *newInstrument, Song *song, bool shouldNotifyInstrument, ParamManager *newParamManager, InstrumentClip *favourClipForCloningParamManager=NULL) | 
|   | 
| void  | expectEvent () | 
|   | 
| int32_t  | getDistanceToNextNote (Note *givenNote, ModelStackWithNoteRow *modelStack) | 
|   | 
| void  | reGetParameterAutomation (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| void  | stopAllNotesForMIDIOrCV (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| void  | sendMIDIPGM () | 
|   | 
| void  | noteRemovedFromMode (int yNoteWithinOctave, Song *song) | 
|   | 
| void  | clear (Action *action, ModelStackWithTimelineCounter *modelStack) | 
|   | 
| bool  | doesProbabilityExist (int32_t apartFromPos, int probability, int secondProbability=-1) | 
|   | 
| void  | clearArea (ModelStackWithTimelineCounter *modelStack, int32_t startPos, int32_t endPos, Action *action) | 
|   | 
| int  | getScaleType () | 
|   | 
| void  | backupPresetSlot () | 
|   | 
| void  | setPosForParamManagers (ModelStackWithTimelineCounter *modelStack, bool useActualPos=true) | 
|   | 
| ModelStackWithNoteRow *  | getNoteRowForDrumName (ModelStackWithTimelineCounter *modelStack, char const *name) | 
|   | 
| void  | compensateVolumeForResonance (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| int  | undoDetachmentFromOutput (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| int  | setNonAudioInstrument (Instrument *newInstrument, Song *song, ParamManager *newParamManager=NULL) | 
|   | 
| int  | setInstrument (Instrument *newInstrument, Song *song, ParamManager *newParamManager, InstrumentClip *favourClipForCloningParamManager=NULL) | 
|   | 
| void  | deleteOldDrumNames () | 
|   | 
| void  | ensureScrollWithinKitBounds () | 
|   | 
| bool  | isScrollWithinRange (int scrollAmount, int newYNote) | 
|   | 
| int  | appendClip (ModelStackWithTimelineCounter *thisModelStack, ModelStackWithTimelineCounter *otherModelStack) | 
|   | 
| void  | instrumentBeenEdited () | 
|   | 
| Instrument *  | changeInstrumentType (ModelStackWithTimelineCounter *modelStack, int newInstrumentType) | 
|   | 
| int  | transferVoicesToOriginalClipFromThisClone (ModelStackWithTimelineCounter *modelStackOriginal, ModelStackWithTimelineCounter *modelStackClone) | 
|   | 
| void  | getSuggestedParamManager (Clip *newClip, ParamManagerForTimeline **suggestedParamManager, Sound *sound) | 
|   | 
| int  | claimOutput (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| char const *  | getXMLTag () | 
|   | 
| void  | finishLinearRecording (ModelStackWithTimelineCounter *modelStack, Clip *nextPendingLoop, int buttonLatencyForTempolessRecord) | 
|   | 
| int  | beginLinearRecording (ModelStackWithTimelineCounter *modelStack, int buttonPressLatency) | 
|   | 
| Clip *  | cloneAsNewOverdub (ModelStackWithTimelineCounter *modelStack, int newOverdubNature) | 
|   | 
| bool  | isAbandonedOverdub () | 
|   | 
| void  | quantizeLengthForArrangementRecording (ModelStackWithTimelineCounter *modelStack, int32_t lengthSoFar, uint32_t timeRemainder, int32_t suggestedLength, int32_t alternativeLongerLength) | 
|   | 
| void  | setupAsNewKitClipIfNecessary (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| bool  | getCurrentlyRecordingLinearly () | 
|   | 
| void  | abortRecording () | 
|   | 
| void  | yDisplayNoLongerAuditioning (int yDisplay, Song *song) | 
|   | 
| void  | shiftOnlyOneNoteRowHorizontally (ModelStackWithNoteRow *modelStack, int shiftAmount) | 
|   | 
| int32_t  | getMaxLength () | 
|   | 
| bool  | hasAnyPitchExpressionAutomationOnNoteRows () | 
|   | 
| ModelStackWithNoteRow *  | duplicateModelStackForClipBeingRecordedFrom (ModelStackWithNoteRow *modelStack, char *otherModelStackMemory) | 
|   | 
| void  | incrementPos (ModelStackWithTimelineCounter *modelStack, int32_t numTicks) | 
|   | 
| void  | getActiveModControllable (ModelStackWithTimelineCounter *modelStack) | 
|   | 
|   | Clip (int newType) | 
|   | 
| virtual  | ~Clip () | 
|   | 
| bool  | cancelAnyArming () | 
|   | 
| int  | getMaxZoom () | 
|   | 
| virtual int32_t  | getMaxLength () | 
|   | 
| virtual int  | clone (ModelStackWithTimelineCounter *modelStack, bool shouldFlattenReversing=false)=0 | 
|   | 
| void  | cloneFrom (Clip *other) | 
|   | 
| void  | beginInstance (Song *song, int32_t arrangementRecordPos) | 
|   | 
| void  | endInstance (int32_t arrangementRecordPos, bool evenIfOtherClip=false) | 
|   | 
| virtual void  | setPos (ModelStackWithTimelineCounter *modelStack, int32_t newPos, bool useActualPosForParamManagers=true) | 
|   | 
| virtual void  | setPosForParamManagers (ModelStackWithTimelineCounter *modelStack, bool useActualPos=true) | 
|   | 
| virtual void  | expectNoFurtherTicks (Song *song, bool actuallySoundChange=true)=0 | 
|   | 
| virtual void  | resumePlayback (ModelStackWithTimelineCounter *modelStack, bool mayMakeSound=true)=0 | 
|   | 
| virtual void  | reGetParameterAutomation (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| virtual void  | processCurrentPos (ModelStackWithTimelineCounter *modelStack, uint32_t ticksSinceLast) | 
|   | 
| void  | prepareForDestruction (ModelStackWithTimelineCounter *modelStack, int instrumentRemovalInstruction) | 
|   | 
| uint32_t  | getLivePos () | 
|   | 
| uint32_t  | getActualCurrentPosAsIfPlayingInForwardDirection () | 
|   | 
| int32_t  | getLastProcessedPos () | 
|   | 
| int32_t  | getCurrentPosAsIfPlayingInForwardDirection () | 
|   | 
| Clip *  | getClipBeingRecordedFrom () | 
|   | 
| Clip *  | getClipToRecordTo () | 
|   | 
| bool  | isArrangementOnlyClip () | 
|   | 
| bool  | isActiveOnOutput () | 
|   | 
| virtual bool  | deleteSoundsWhichWontSound (Song *song) | 
|   | 
| virtual int  | appendClip (ModelStackWithTimelineCounter *thisModelStack, ModelStackWithTimelineCounter *otherModelStack) | 
|   | 
| int  | resumeOriginalClipFromThisClone (ModelStackWithTimelineCounter *modelStackOriginal, ModelStackWithTimelineCounter *modelStackClone) | 
|   | 
| virtual int  | transferVoicesToOriginalClipFromThisClone (ModelStackWithTimelineCounter *modelStackOriginal, ModelStackWithTimelineCounter *modelStackClone) | 
|   | 
| virtual void  | increaseLengthWithRepeats (ModelStackWithTimelineCounter *modelStack, int32_t newLength, int independentNoteRowInstruction, bool completelyRenderOutIterationDependence=false, Action *action=NULL) | 
|   | 
| virtual void  | lengthChanged (ModelStackWithTimelineCounter *modelStack, int32_t oldLength, Action *action=NULL) | 
|   | 
| virtual void  | getSuggestedParamManager (Clip *newClip, ParamManagerForTimeline **suggestedParamManager, Sound *sound) | 
|   | 
| virtual void  | detachFromOutput (ModelStackWithTimelineCounter *modelStack, bool shouldRememberDrumName, bool shouldDeleteEmptyNoteRowsAtEndOfList=false, bool shouldRetainLinksToSounds=false, bool keepNoteRowsWithMIDIInput=true, bool shouldGrabMidiCommands=false, bool shouldBackUpExpressionParamsToo=true)=0 | 
|   | 
| virtual int  | undoDetachmentFromOutput (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| virtual bool  | renderAsSingleRow (ModelStackWithTimelineCounter *modelStack, TimelineView *editorScreen, int32_t xScroll, uint32_t xZoom, uint8_t *image, uint8_t occupancyMask[], bool addUndefinedArea=true, int noteRowIndexStart=0, int noteRowIndexEnd=2147483647, int xStart=0, int xEnd=displayWidth, bool allowBlur=true, bool drawRepeats=false) | 
|   | 
| virtual int  | claimOutput (ModelStackWithTimelineCounter *modelStack)=0 | 
|   | 
| virtual void  | finishLinearRecording (ModelStackWithTimelineCounter *modelStack, Clip *nextPendingLoop=NULL, int buttonLatencyForTempolessRecord=0)=0 | 
|   | 
| virtual int  | beginLinearRecording (ModelStackWithTimelineCounter *modelStack, int buttonPressLatency)=0 | 
|   | 
| void  | drawUndefinedArea (int32_t localScroll, uint32_t, int32_t lengthToDisplay, uint8_t *image, uint8_t[], int imageWidth, TimelineView *editorScreen, bool tripletsOnHere) | 
|   | 
| bool  | opportunityToBeginSessionLinearRecording (ModelStackWithTimelineCounter *modelStack, bool *newOutputCreated, int buttonPressLatency) | 
|   | 
| virtual Clip *  | cloneAsNewOverdub (ModelStackWithTimelineCounter *modelStack, int newOverdubNature)=0 | 
|   | 
| virtual bool  | getCurrentlyRecordingLinearly ()=0 | 
|   | 
| virtual bool  | currentlyScrollableAndZoomable ()=0 | 
|   | 
| virtual void  | clear (Action *action, ModelStackWithTimelineCounter *modelStack) | 
|   | 
| void  | writeToFile (Song *song) | 
|   | 
| virtual void  | writeDataToFile (Song *song) | 
|   | 
| virtual char const *  | getXMLTag ()=0 | 
|   | 
| virtual int  | readFromFile (Song *song)=0 | 
|   | 
| void  | readTagFromFile (char const *tagName, Song *song, int32_t *readAutomationUpToPos) | 
|   | 
| virtual void  | copyBasicsFrom (Clip *otherClip) | 
|   | 
| void  | setupForRecordingAsAutoOverdub (Clip *existingClip, Song *song, int newOverdubNature) | 
|   | 
| void  | outputChanged (ModelStackWithTimelineCounter *modelStack, Output *newOutput) | 
|   | 
| virtual bool  | isAbandonedOverdub ()=0 | 
|   | 
| virtual bool  | wantsToBeginLinearRecording (Song *song) | 
|   | 
| virtual void  | quantizeLengthForArrangementRecording (ModelStackWithTimelineCounter *modelStack, int32_t lengthSoFar, uint32_t timeRemainder, int32_t suggestedLength, int32_t alternativeLongerLength)=0 | 
|   | 
| virtual void  | abortRecording ()=0 | 
|   | 
| virtual void  | stopAllNotesPlaying (Song *song, bool actuallySoundChange=true) | 
|   | 
| virtual bool  | willCloneOutputForOverdub () | 
|   | 
| void  | setSequenceDirectionMode (ModelStackWithTimelineCounter *modelStack, int newSequenceDirection) | 
|   | 
| bool  | possiblyCloneForArrangementRecording (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| virtual void  | incrementPos (ModelStackWithTimelineCounter *modelStack, int32_t numTicks) | 
|   | 
| int32_t  | getLoopLength () | 
|   | 
| bool  | isPlayingAutomationNow () | 
|   | 
| bool  | backtrackingCouldLoopBackToEnd () | 
|   | 
| int32_t  | getPosAtWhichPlaybackWillCut (ModelStackWithTimelineCounter const *modelStack) | 
|   | 
| TimelineCounter *  | getTimelineCounterToRecordTo () | 
|   | 
| void  | getActiveModControllable (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| void  | expectEvent () | 
|   | 
|   | TimelineCounter () | 
|   | 
| virtual  | ~TimelineCounter () | 
|   | 
| virtual int32_t  | getLastProcessedPos ()=0 | 
|   | 
| virtual uint32_t  | getLivePos ()=0 | 
|   | 
| virtual int32_t  | getLoopLength ()=0 | 
|   | 
| virtual bool  | isPlayingAutomationNow ()=0 | 
|   | 
| virtual bool  | backtrackingCouldLoopBackToEnd ()=0 | 
|   | 
| virtual int32_t  | getPosAtWhichPlaybackWillCut (ModelStackWithTimelineCounter const *modelStack)=0 | 
|   | 
| virtual bool  | possiblyCloneForArrangementRecording (ModelStackWithTimelineCounter *modelStack) | 
|   | 
| virtual void  | getActiveModControllable (ModelStackWithTimelineCounter *modelStack)=0 | 
|   | 
| virtual void  | expectEvent ()=0 | 
|   | 
| virtual TimelineCounter *  | getTimelineCounterToRecordTo ()=0 | 
|   | 
| virtual void  | instrumentBeenEdited () | 
|   |