ELVIS-Project / vis-framework

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

Corpus class for handling queries on more than one piece #393

Closed alexandermorgan closed 7 years ago

alexandermorgan commented 8 years ago

Make a new class of corpus objects which will basically be a list of indexed pieces. Running regular analyzers on this list will execute that analysis on each piece in the list and return a list of the resulting dataframes (instead of just one dataframe as is usually the case with analyzer results. The Rodan client may have it's own solution to this problem, but even if it does running analyses on more than one piece in one go is core functionality for analysis software and the user shouldn't have to write a loop for every query that involves more than one piece. This won't be a proper workflow manager. It'll mostly just be a simple set of convenience methods. FYI @mrbannon

musicus commented 8 years ago

This functionality is in VIS-for-Pd. There should be a tool that can merge DataFrames so that corpus studies are still possible (also in VIS-for-Pd).

alexandermorgan commented 8 years ago

The best way I've found to merge dataframes is with the following command: pandas.concat([list of dataframes]) It returns the passed dataframes merged into one dataframe.

musicus commented 8 years ago

Exactly! :neckbeard:

crantila commented 8 years ago

What about AggregatedPieces?

alexandermorgan commented 8 years ago

@crantila , thank you. Not thinking of aggregatedpieces was an oversight on my part. This even has some functionality (like the meta-metadata) that I hadn't even thought of. It looks great but I'm having trouble using it. It's a little tough to figure out since all the examples are abstract and the tests all use mock objects. Do you have a script that uses it in any way?

crantila commented 8 years ago

There _run_freq_agg() in the WorkflowManager.

I'm not going to try convincing anyone that the documentation and test suite are particularly good, but AggregatedPieces is designed to be as close to IndexedPiece as possible.

alexandermorgan commented 8 years ago

Thanks Christopher, this link helps a lot!

alexandermorgan commented 7 years ago

Closing because aggregated_pieces is already in the framework and working and Marina even recently made some improvements to it.