WHAT WILL SPINDA DO?
Play a melody.
Hear it as a Bach chorale.
Pick a melody or play your own. For each note, the model gets the chords that fit and returns a probability for each one. The app picks the best path and writes alto, tenor and bass. Press Play, then switch to Google's Bach Doodle model or to what Bach wrote.
Recorded model answers for the listed melodies. Your own melody uses local counts and rules, with no model call.
Harmonization
How close to Bach?
The 99 phrases come from 22 chorales, and one music21 analyzer reads every version, Bach's included. Spinda Large (decision-model-large) gets the melody, the chords that fit each note and how often Bach used each one; Jev (jev-1.13.0, a development model) also gets 48 similar Bach phrases with Bach's chords. No model picks chords by those counts alone. Every version but Coconet and Bach uses the same voice-leading rules. Coconet was trained on Bach chorales and writes one plausible harmony rather than predicting Bach's. Ranges are 95% paired-bootstrap intervals. Matching Bach is not the same as sounding better.