# Gingoduino — Arduino IDE Syntax Highlighting
# KEYWORD1 = Classes (orange)
# KEYWORD2 = Methods (brown)
# LITERAL1 = Constants (blue)

# Classes
Gingoduino	KEYWORD1
GingoNote	KEYWORD1
GingoInterval	KEYWORD1
GingoChord	KEYWORD1
GingoScale	KEYWORD1
GingoField	KEYWORD1
GingoDuration	KEYWORD1
GingoTempo	KEYWORD1
GingoTimeSig	KEYWORD1
GingoEvent	KEYWORD1
GingoSequence	KEYWORD1
GingoFretboard	KEYWORD1
GingoFretPos	KEYWORD1
GingoFingering	KEYWORD1
GingoStringState	KEYWORD1
GingoMonitor	KEYWORD1
GingoNoteContext	KEYWORD1
GingoChordComparison	KEYWORD1
GingoMIDI1	KEYWORD1
GingoMIDI2	KEYWORD1
GingoUMP	KEYWORD1

# GingoNote methods
name	KEYWORD2
natural	KEYWORD2
sound	KEYWORD2
semitone	KEYWORD2
frequency	KEYWORD2
transpose	KEYWORD2
distance	KEYWORD2
isEnharmonic	KEYWORD2
midiNumber	KEYWORD2

# GingoInterval methods
label	KEYWORD2
angloSaxon	KEYWORD2
semitones	KEYWORD2
degree	KEYWORD2
octave	KEYWORD2
simple	KEYWORD2
invert	KEYWORD2
isCompound	KEYWORD2
consonance	KEYWORD2
isConsonant	KEYWORD2
fullName	KEYWORD2
fullNamePt	KEYWORD2

# GingoChord methods
root	KEYWORD2
type	KEYWORD2
size	KEYWORD2
notes	KEYWORD2
intervalLabels	KEYWORD2
intervals	KEYWORD2
contains	KEYWORD2
identify	KEYWORD2
formulaIndex	KEYWORD2

# GingoScale methods
tonic	KEYWORD2
parent	KEYWORD2
modeNumber	KEYWORD2
modeName	KEYWORD2
mode	KEYWORD2
pentatonic	KEYWORD2
isPentatonic	KEYWORD2
quality	KEYWORD2
signature	KEYWORD2
relative	KEYWORD2
parallel	KEYWORD2
degreeOf	KEYWORD2
modeByName	KEYWORD2
brightness	KEYWORD2
mask	KEYWORD2

# GingoField methods
chords	KEYWORD2
sevenths	KEYWORD2
chord	KEYWORD2
seventh	KEYWORD2
function	KEYWORD2
role	KEYWORD2
functionOf	KEYWORD2
roleOf	KEYWORD2
deduce	KEYWORD2

# GingoDuration methods
dots	KEYWORD2
tuplet	KEYWORD2
beats	KEYWORD2
numerator	KEYWORD2
denominator	KEYWORD2

# GingoTempo methods
bpm	KEYWORD2
marking	KEYWORD2
seconds	KEYWORD2
msPerBeat	KEYWORD2
secondsPerBeat	KEYWORD2

# GingoTimeSig methods
beatsPerBar	KEYWORD2
beatUnit	KEYWORD2
barDuration	KEYWORD2
commonName	KEYWORD2
classification	KEYWORD2

# GingoEvent methods
noteEvent	KEYWORD2
chordEvent	KEYWORD2
rest	KEYWORD2

# GingoSequence methods
add	KEYWORD2
remove	KEYWORD2
clear	KEYWORD2
empty	KEYWORD2
at	KEYWORD2
totalBeats	KEYWORD2
totalSeconds	KEYWORD2
barCount	KEYWORD2
setTempo	KEYWORD2
setTimeSignature	KEYWORD2
tempo	KEYWORD2
timeSignature	KEYWORD2

# GingoFretboard methods & factories
violao	KEYWORD2
cavaquinho	KEYWORD2
bandolim	KEYWORD2
ukulele	KEYWORD2
numStrings	KEYWORD2
numFrets	KEYWORD2
openMidi	KEYWORD2
position	KEYWORD2
noteAt	KEYWORD2
midiAt	KEYWORD2
positions	KEYWORD2
scalePositions	KEYWORD2
fingering	KEYWORD2
fingerings	KEYWORD2
capo	KEYWORD2

# GingoTree class and methods
GingoTree	KEYWORD1
isValid	KEYWORD2
isValidSequence	KEYWORD2
countValidTransitions	KEYWORD2
neighbors	KEYWORD2
resolve	KEYWORD2
traditionId	KEYWORD2
traditionName	KEYWORD2
context	KEYWORD2

# GingoProgression class and methods
GingoProgression	KEYWORD1
FieldMatch	KEYWORD1
ProgressionMatch	KEYWORD1
ProgressionRoute	KEYWORD1
predict	KEYWORD2
tree	KEYWORD2

# GingoMonitor methods
noteOn	KEYWORD2
noteOff	KEYWORD2
sustainOn	KEYWORD2
sustainOff	KEYWORD2
hasSustain	KEYWORD2
hasChord	KEYWORD2
hasField	KEYWORD2
currentChord	KEYWORD2
currentField	KEYWORD2
onChordDetected	KEYWORD2
onFieldChanged	KEYWORD2
onNoteOn	KEYWORD2
setChannel	KEYWORD2
activeNoteCount	KEYWORD2

# GingoMIDI1 / GingoMIDI2 output adapters
fromEvent	KEYWORD2
fromSequence	KEYWORD2
chordName	KEYWORD2
keySignature	KEYWORD2
perNoteController	KEYWORD2

# GingoUMP fields and helpers
words	KEYWORD2
wordCount	KEYWORD2
byteCount	KEYWORD2
toBytesBE	KEYWORD2
writeWordBE	KEYWORD2

# GingoNoteContext fields
inScale	KEYWORD2
interval	KEYWORD2

# GingoChordComparison fields
common_count	KEYWORD2
root_distance	KEYWORD2
same_quality	KEYWORD2
voice_leading	KEYWORD2
transformation	KEYWORD2
interval_vector_a	KEYWORD2
interval_vector_b	KEYWORD2

# GingoMIDI1 constants
KEEP_CHANNEL	LITERAL1

# Scale type constants
SCALE_MAJOR	LITERAL1
SCALE_NATURAL_MINOR	LITERAL1
SCALE_HARMONIC_MINOR	LITERAL1
SCALE_MELODIC_MINOR	LITERAL1
SCALE_DIMINISHED	LITERAL1
SCALE_HARMONIC_MAJOR	LITERAL1
SCALE_WHOLE_TONE	LITERAL1
SCALE_AUGMENTED	LITERAL1
SCALE_BLUES	LITERAL1
SCALE_CHROMATIC	LITERAL1

# Harmonic function constants
FUNC_TONIC	LITERAL1
FUNC_SUBDOMINANT	LITERAL1
FUNC_DOMINANT	LITERAL1

# Event type constants
EVENT_NOTE	LITERAL1
EVENT_CHORD	LITERAL1
EVENT_REST	LITERAL1

# String action constants
STRING_OPEN	LITERAL1
STRING_FRETTED	LITERAL1
STRING_MUTED	LITERAL1
