ELVIS-Project / vis-framework

Thoroughly modern symbolic musical data analysis suite.
http://elvisproject.ca/
31 stars 6 forks source link

Polyphonic Instruments #382

Closed musicus closed 7 years ago

musicus commented 8 years ago

Creation of being able to index polyphonic instruments (like a piano, harpsichord, harp, etc.).

crantila commented 8 years ago

I've been running piano music for years. What's this for?

crantila commented 8 years ago

Are you having problems with a specific piece? Is this about knowing the music theory "voices" in a file that didn't encoded them separately?

crantila commented 8 years ago

I worked on a series of VIS algorithms in July/August 2013 to help deal with weirdly encoded piano pieces like that. They didn't even live long enough to make it into a VIS 1.x release due to a lack of interest, so they pre-date the indexers-and-experimenters architecture. There should be something to extract the highest and lowest parts, and something to find verticalities/simultaneities too, if you want to go looking!

minamouse commented 8 years ago

Is this issue the same as #258? If so, maybe we should close one of them just to avoid confusion? If not, what is the difference?

alexandermorgan commented 8 years ago

I'm reopenning this because this is getting addressed in my changes for VIS 3. The functionality is already in alex_devel but this should stay open until I'm done writing tests and merge it into master or at least develop. @musicus why was this issue closed in the first place? Generally it's good to say why you're closing an issue unless you close it with a commit, in which case the reason is obvious.

musicus commented 8 years ago

It seems as though I created the issue.

alexandermorgan commented 7 years ago

This is addressed in alex_devel as of commit 00382fb5e2d863498dcba30c1a4dcf19eabfa803 with the new experimental indexer: noterest.MultiStopIndexer This isn't perfect but it is stable and a good first step towards a more complex, analysis-based solution. It doesn't guarantee the most musical partitioning of notes and rests into voices, but it does guarantee that all notes in the score show up in its resultant dataframe.

alexandermorgan commented 7 years ago

To address Marina's question, this issue is different from #258 in that getting the notes from a polyphonic instrument (or a part with a divisi) and then putting those notes into "parts" (more precisely separate columns in a dataframe) is distinct from assessing what chords those notes form at any given moment. Getting the notes (this issue) is pretty objective, whereas deciding what chords the form (issue #258) is somewhat subject, stylistically dependent, and just generally a much more complex task.