TracktionEngine
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
tracktion::engine::PatternGenerator Class Reference
Inheritance diagram for tracktion::engine::PatternGenerator:

Classes

struct  ProgressionItem
 

Public Types

enum class  Mode {
  off , arpeggio , chords , bass ,
  melody
}
 
enum  NoteType { ChordInKeyNote , ChordNotInKeyNote , InKeyNote , NotInKeyNote }
 

Public Member Functions

 PatternGenerator (Clip &, juce::ValueTree)
 
 ~PatternGenerator () override
 
BeatDuration getMinimumChordLength () const
 
BeatDuration getMaximumChordLength () const
 
void validateChordLengths ()
 
juce::StringArray getPossibleTriadNames () const
 
juce::StringArray getPossibleSeventhNames () const
 
int getChordProgressionLength () const
 
const juce::Array< ProgressionItem * > & getChordProgression () const noexcept
 
void setChordProgression (juce::ValueTree v)
 
juce::StringArray getChordProgressionChordNames (bool simplified) const
 
void setChordProgressionFromChordNames (juce::StringArray progression)
 Sets a chord progression using chord roman numerals. More...
 
void removeIndexFromProgression (int idx)
 
void removeRangeFromProgression (int start, int end)
 
void clearProgression ()
 
void insertChordIntoProgression (int idx, juce::String chordName)
 
void insertChordIntoProgression (int idx, juce::String chordName, juce::String pitches)
 
void moveChordInProgression (int srcIdx, int dstIdx)
 
void duplicateChordInProgression (int idx)
 
void playGuideChord (int idx) const
 
NoteType getTypeForNote (const MidiClip &, const MidiNote &)
 
juce::String formatChordName (juce::String simplifiedChordName) const
 
juce::StringArray getArpStyles ()
 
juce::ValueTree getChordPattern ()
 
juce::ValueTree getBassPattern ()
 
void setChordPattern (juce::ValueTree pattern)
 
void setBassPattern (juce::ValueTree pattern)
 
void generatePattern ()
 
Scale getScaleAtBeat (BeatPosition) const
 
int getNoteAtBeat (BeatPosition) const
 
bool getAutoUpdate ()
 
void setAutoUpdate (bool on)
 
void refreshPatternIfNeeded ()
 
void editFinishedLoading ()
 
BeatDuration getFlattenedChordProgression (juce::OwnedArray< ProgressionItem > &progression, bool globalTime=false)
 

Public Attributes

Clipclip
 
juce::ValueTree state
 
juce::CachedValue< Modemode
 
juce::CachedValue< Scale::ScaleTypescaleType
 
juce::CachedValue< bool > autoUpdate
 
juce::CachedValue< bool > arpUpDown
 
juce::CachedValue< bool > arpPlayRoot
 
juce::CachedValue< bool > allNotes
 
juce::CachedValue< bool > octaveUp
 
juce::CachedValue< bool > octaveDown
 
juce::CachedValue< bool > spread
 
juce::CachedValue< float > arpPatternLength
 
juce::CachedValue< float > velocity
 
juce::CachedValue< float > gate
 
juce::CachedValue< BeatDuration > melodyNoteLength
 
juce::CachedValue< juce::String > arpStyle
 
juce::CachedValue< int > scaleRoot
 
juce::CachedValue< int > arpSteps
 
juce::CachedValue< int > octave
 
juce::CachedValue< juce::int64 > patternHash
 

Static Public Attributes

static const int scaleRootGlobalTrack
 
static const int scaleRootChordTrack
 

Member Enumeration Documentation

◆ Mode

Enumerator
off 
arpeggio 
chords 
bass 
melody 

◆ NoteType

Enumerator
ChordInKeyNote 
ChordNotInKeyNote 
InKeyNote 
NotInKeyNote 

Constructor & Destructor Documentation

◆ PatternGenerator()

tracktion::engine::PatternGenerator::PatternGenerator ( Clip ,
juce::ValueTree   
)

◆ ~PatternGenerator()

tracktion::engine::PatternGenerator::~PatternGenerator ( )
override

Member Function Documentation

◆ getMinimumChordLength()

BeatDuration tracktion::engine::PatternGenerator::getMinimumChordLength ( ) const

◆ getMaximumChordLength()

BeatDuration tracktion::engine::PatternGenerator::getMaximumChordLength ( ) const

◆ validateChordLengths()

void tracktion::engine::PatternGenerator::validateChordLengths ( )

◆ getPossibleTriadNames()

juce::StringArray tracktion::engine::PatternGenerator::getPossibleTriadNames ( ) const

◆ getPossibleSeventhNames()

juce::StringArray tracktion::engine::PatternGenerator::getPossibleSeventhNames ( ) const

◆ getChordProgressionLength()

int tracktion::engine::PatternGenerator::getChordProgressionLength ( ) const

◆ getChordProgression()

const juce::Array<ProgressionItem*>& tracktion::engine::PatternGenerator::getChordProgression ( ) const
noexcept

◆ setChordProgression()

void tracktion::engine::PatternGenerator::setChordProgression ( juce::ValueTree  v)

◆ getChordProgressionChordNames()

juce::StringArray tracktion::engine::PatternGenerator::getChordProgressionChordNames ( bool  simplified) const

◆ setChordProgressionFromChordNames()

void tracktion::engine::PatternGenerator::setChordProgressionFromChordNames ( juce::StringArray  progression)

Sets a chord progression using chord roman numerals.

Be careful, this sets everything else to default.

◆ removeIndexFromProgression()

void tracktion::engine::PatternGenerator::removeIndexFromProgression ( int  idx)

◆ removeRangeFromProgression()

void tracktion::engine::PatternGenerator::removeRangeFromProgression ( int  start,
int  end 
)

◆ clearProgression()

void tracktion::engine::PatternGenerator::clearProgression ( )

◆ insertChordIntoProgression() [1/2]

void tracktion::engine::PatternGenerator::insertChordIntoProgression ( int  idx,
juce::String  chordName 
)

◆ insertChordIntoProgression() [2/2]

void tracktion::engine::PatternGenerator::insertChordIntoProgression ( int  idx,
juce::String  chordName,
juce::String  pitches 
)

◆ moveChordInProgression()

void tracktion::engine::PatternGenerator::moveChordInProgression ( int  srcIdx,
int  dstIdx 
)

◆ duplicateChordInProgression()

void tracktion::engine::PatternGenerator::duplicateChordInProgression ( int  idx)

◆ playGuideChord()

void tracktion::engine::PatternGenerator::playGuideChord ( int  idx) const

◆ getTypeForNote()

NoteType tracktion::engine::PatternGenerator::getTypeForNote ( const MidiClip ,
const MidiNote  
)

◆ formatChordName()

juce::String tracktion::engine::PatternGenerator::formatChordName ( juce::String  simplifiedChordName) const

◆ getArpStyles()

juce::StringArray tracktion::engine::PatternGenerator::getArpStyles ( )

◆ getChordPattern()

juce::ValueTree tracktion::engine::PatternGenerator::getChordPattern ( )

◆ getBassPattern()

juce::ValueTree tracktion::engine::PatternGenerator::getBassPattern ( )

◆ setChordPattern()

void tracktion::engine::PatternGenerator::setChordPattern ( juce::ValueTree  pattern)

◆ setBassPattern()

void tracktion::engine::PatternGenerator::setBassPattern ( juce::ValueTree  pattern)

◆ generatePattern()

void tracktion::engine::PatternGenerator::generatePattern ( )

◆ getScaleAtBeat()

Scale tracktion::engine::PatternGenerator::getScaleAtBeat ( BeatPosition  ) const

◆ getNoteAtBeat()

int tracktion::engine::PatternGenerator::getNoteAtBeat ( BeatPosition  ) const

◆ getAutoUpdate()

bool tracktion::engine::PatternGenerator::getAutoUpdate ( )

◆ setAutoUpdate()

void tracktion::engine::PatternGenerator::setAutoUpdate ( bool  on)

◆ refreshPatternIfNeeded()

void tracktion::engine::PatternGenerator::refreshPatternIfNeeded ( )

◆ editFinishedLoading()

void tracktion::engine::PatternGenerator::editFinishedLoading ( )

◆ getFlattenedChordProgression()

BeatDuration tracktion::engine::PatternGenerator::getFlattenedChordProgression ( juce::OwnedArray< ProgressionItem > &  progression,
bool  globalTime = false 
)

Member Data Documentation

◆ scaleRootGlobalTrack

const int tracktion::engine::PatternGenerator::scaleRootGlobalTrack
static

◆ scaleRootChordTrack

const int tracktion::engine::PatternGenerator::scaleRootChordTrack
static

◆ clip

Clip& tracktion::engine::PatternGenerator::clip

◆ state

juce::ValueTree tracktion::engine::PatternGenerator::state

◆ mode

juce::CachedValue<Mode> tracktion::engine::PatternGenerator::mode

◆ scaleType

juce::CachedValue<Scale::ScaleType> tracktion::engine::PatternGenerator::scaleType

◆ autoUpdate

juce::CachedValue<bool> tracktion::engine::PatternGenerator::autoUpdate

◆ arpUpDown

juce::CachedValue<bool> tracktion::engine::PatternGenerator::arpUpDown

◆ arpPlayRoot

juce::CachedValue<bool> tracktion::engine::PatternGenerator::arpPlayRoot

◆ allNotes

juce::CachedValue<bool> tracktion::engine::PatternGenerator::allNotes

◆ octaveUp

juce::CachedValue<bool> tracktion::engine::PatternGenerator::octaveUp

◆ octaveDown

juce::CachedValue<bool> tracktion::engine::PatternGenerator::octaveDown

◆ spread

juce::CachedValue<bool> tracktion::engine::PatternGenerator::spread

◆ arpPatternLength

juce::CachedValue<float> tracktion::engine::PatternGenerator::arpPatternLength

◆ velocity

juce::CachedValue<float> tracktion::engine::PatternGenerator::velocity

◆ gate

juce::CachedValue<float> tracktion::engine::PatternGenerator::gate

◆ melodyNoteLength

juce::CachedValue<BeatDuration> tracktion::engine::PatternGenerator::melodyNoteLength

◆ arpStyle

juce::CachedValue<juce::String> tracktion::engine::PatternGenerator::arpStyle

◆ scaleRoot

juce::CachedValue<int> tracktion::engine::PatternGenerator::scaleRoot

◆ arpSteps

juce::CachedValue<int> tracktion::engine::PatternGenerator::arpSteps

◆ octave

juce::CachedValue<int> tracktion::engine::PatternGenerator::octave

◆ patternHash

juce::CachedValue<juce::int64> tracktion::engine::PatternGenerator::patternHash

The documentation for this class was generated from the following file: