johentsch / specs

0 stars 1 forks source link

Compressed version standard #3

Open pythouille opened 1 year ago

pythouille commented 1 year ago

What are the specification for compressed / uncompressed? The aim is to keep only necessary information without any loss of information.

Remarks/questions:

magiraud commented 1 year ago

The following displayed measure must mention its count

count is not musical. The user may want to rather specify its number.

magiraud commented 1 year ago

There should be an exception to the default values of #2:

name: idem

If a measure is fully specified with a name of 19a, the next one (when compressed / not specified) should have a name of 20a. Of course it's difficult to imagine all possible cases, but at least handle these number+letter cases.

pythouille commented 1 year ago

The most common cases I found are 19a followed by 19b, for second endings that were 1-measure long (in Mozart sonatas). After 19b, it is back to 20 and so on. The compressed measure map [1, 19a, 19b, 40] (default without number) would thus be [1, 19a, 19b, 20, 40] (the default you propose), a bit longer.

But yes, in the general case, your proposition is better for longer second endings or 'unfolded' repeated parts. I update it.

pythouille commented 1 year ago

count is not musical. The user may want to rather specify its number.

Very good point.

johentsch commented 1 year ago

Update: I have implemented the creation of the "default successor" as part of this PR. Specifically, this happens in the function make_default_successor() in the relevant diff).

Based on this I have added a prototype of a compression algorithm that only omits measures that have successfully been created from their predecessor (30d5491).