danigb
danigb
Hi @honkskillet Glad you find Tonal useful 👍 I think you're right in all the points. First, I'm aware of the inconsistencies of `Chord.get` results. I think the best solution...
Hi, thanks for all comments! Try to answer 👇 > An example of an ambiguous chord would be C#9 (and C##9) Agree. I still think the best solution is to...
Thanks everyone for the ideas. It's clear the Chord.get is currently quite broken both for machines and humans. To be fair, it's true that all music notation was invented long...
> I guess you mean that the interval structure is lost when just using pitch classes? I think that's not a big deal as you could use the intervals prop,...
Hi Evan, Thanks, I'm glad you find it useful. I like a lot the idea of your site 👍 good luck with the business! I don't know *exactly* what solfege/solfa...
I think you need to fork and create a pull request. Maybe you can use github.dev for that purpose.
Great summary! Thanks. First of all, I don't understand clearly your distinction between `voicing` and `voice-leading` package. Why `topNoteDiff` function can't be inside voicing package? In a high overview, what...
Sorry, busy week! A quick update: > Mainly, I separated them because you told me to. But it could also easily be a part of voicing. Yes, now I don't...
It's true, not obvious 🤔 You can pass a number to the `majorKey` function: ```js Key.majorKey('g4').chords.map(chord => Chord.get(chord).notes.slice(0,3)) [ [ 'G4', 'B4', 'D5' ], [ 'A4', 'C5', 'E5' ], [...
This is now possible. In latest version you can write: ```js [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(t.Chord.degrees('Db4M')) => [ 'Db4', 'F4', 'Ab4', 'Db5', 'F5', 'Ab5', 'Db6',...