Hacker News new | ask | show | jobs
by Mizza 2840 days ago
Funnily enough, I spend the weekend making almost the exact opposite of this:

https://github.com/Miserlou/chords2midi

2 comments

That's hilarious, I was working on https://pomax.github.io/music-theory-js/public/ over the weekend (working on adding a chord arranger to complement the cell arranger, so you can write a C3-root I–V–vi–IV as literally a "C3 I" cell with some duration, followed by just dropping in V, vi, and IV cells with some duration.
Neat! Want to play with this. Does it also do voice leading?
No, it's pretty crude so far, but that's a great idea!

How would you want that implemented?

Short of a genuinely complicated ML system which having been fed a bunch of (say) Jazz Pianists midi data for chord patterns etc, I think you could probably do it with some kind of weighted (let's say by the user) Markov chain/state machine with some kind of graph for which chord voicing should be used relative to those around it: e.g. "This Dm7 has a F in it, the next chord is a Cmaj7#11 so move the F up a semitone[Within the same octave]"

The above system should be able to come up with coherent movement of voicings (and fingers...) although I can't imagien that it would sound very human.