Best way to determine movement numbers

Tags: #<Tag:0x00007f37ba966cb8> #<Tag:0x00007f37ba966a10>

Just getting back to this after a break. I would appreciate some views on the best way of determining movement numbers etc. I took a look at @outsidecontext’s plugin (Work & Movements - “W&M” hereafter) and compared it with mine (Classical Extras - “CE”). There are some similarities and differences and neither is completely ideal.

Similar - Both number the movement within the context of its immediate parent. Thus if the work has more than two levels (I will use Petrushka - as an example throughout), Tableau II is numbered as part of the whole work, whereas the parts of Tableau I are numbered as part of Tableau I.

Differences - W&M gets its number from the ordering within the parent-work relationship, whereas CE gets its number from the sequence within the actual release (so if a movement is missing on a release, the number sequence in CE will ignore it, whereas W&M will have a gap in the number sequence)

The consequence of this is that for a release that has all the parts of Petrushka as separate tracks, the movements will be numbered as follows:

W&M: 1,2,3,2,1,2,3,1,2,3,4,5,6,7,8,9,10
CE: 1,2,3,4,1,2,3,1,2,3,4,5,6,7,8,9,10

The difference is that in CE, Tableau II gets numbered as being the 4th movement within the sequence of Petrushka tracks.

If some of the tracks combine parts, then the differences are greater: e.g. for release the numbers will be

W&M: 1,3,2,1,3,1,2,3,4,5,6,7,8,9,10
CE: 1,2,3,1,2,1,2,3,4,5,6,7,8,9,10

In W&M, movement 2 of Tableau I is omitted (it is actually on the same track as movement 1). CE gets round this, but only because it has a different concept of movement number.

W&M does not give movement totals. The next release of CE will do, but again using the same context (i.e. immediate parent and only movements which are tracks on the release).

Another approach would be to number the movements within the context of the overall parent, so Petrushka would go 1-17 for the whole work on separate tracks. (but see edit note)

I have no great preference for any method at the moment (I don’t use it myself as I prefer to use the labels that are already there), but would appreciate thoughts as I am about to do a new release.

EDIT: There is a disadvantage of the “overall parent approach” as ceratin works might get counter-intuitive numbering - e.g. Vivaldi’s L’estro armonico ( might mean all the parts of each concerto get treated as part of one sequence (avoidable if the numbering is only applied to parts defined as “movements” and not as “parts of collection” - provided that metadata is present).
Also, I should add that I would ideally like to adopt a consistent approach with W&M on this, as I think that is less confusing for everyone.

1 Like

I moved this to a separate topic, the other one is really about which ID3 tags to use.

Regarding your actual question I am not sure. W&M really goes the simple approach and by design does not load any additional hierarchic data from the works. That means basically looks at each track and sets the part number based on the direct work. In cases like this where different tracks are on different hierarchy levels this obviously gets strange results.

I originally tried to limit it to relationships that actually are marked a “movement” in the part of relationship, but this gave unsatisfactory results in many cases. But probably using a deeper hierarchy and limiting the movement numbers to parts actually marked as “movement” would be the way to solve this.

On the other hand there are works with parts that are not marked as “movement” (e.g. acts) but where users still want to add the part number to their tags in the movement tag.

I did not fully understand how CE works and how it is different, but it looks at the actual track list?

EDIT: I think this is the part that makes the difference here:

…but is the sequence number of the movement within its parent work on the current release .

I guess depending on the specific case and our point of view this can give better or worse results then using the number of the work part.

Will the new release make use of Picard’s movement related tags (movement, movementnumber, movementtotal)? Currently I think the user has to configure these tags, otherwise some custom tags get used.

Eventually, but I don’t think this is absolutely necessary. W&M is more of a research tool to see if we can get useful movement data from existing MB data already loaded in Picard. It’s also simple by purpose. I see CE as the more powerful tools for people wanting to tag classical, and in this regard it probably will do more complex things with the data.

I’ll have a think about this.

Yes - but a small issue as to whether to include the embedded movement number label in “movement” or whether to strip it. My inclination is to leave it in. (In CE the user can always modify this anyway).

1 Like

So this is what I think:

  • All movements will be considered as a part of the largest grouping (on a release) to which they belong, other than as “part of collection”
  • They will be numbered in the sequence in which they appear on the release
  • If a track comprises more than one movement, they will be treated as one for these purposes
  • If a movement is split over more than one track, then each will get a separate movement number
  • One-movement works will not receive a movement number unless the movement is split over multiple tracks
  • The movementtotal tag will be the total number of movements for the aforesaid grouping
  • If a movement grouping is split on a release by other tracks (not part of the grouping) then they will be treated as a whole and the numbering will resume where it left off

Obviously, this is still a bit of a compromise. However, that is unavoidable if movement numbers have to be integers for each track (as they do for iTunes) and movements are recorded in different blocks from those in which they are composed. I will attempt to code and test the above logic.

Of course, given that iTunes is about to be ditched by Apple, one could argue that this whole exercise is a bit academic. However, I guess there will continue to be iTunes users. Also I would be interested as to what users of other software (e.g. MusicBee - @hiccup?) think.


New version is at
I’ve tested this quite a bit, but will leave it a while for more testing before doing a PR.

1 Like

I’m not sure I am going to be able to do much useful testing soon.
Also, your insight in the matter is probably x100 compared with mine.

Just f.y.i.:
The way MusicBee handles Work and Movement was pretty much copied from iTunes.
But additionally with MusicBee you can:

  • create up to 16 custom tags
  • create up to 32 virtual tags that you can run formulas on, including some regex.
  • do tag mapping
  • play and tag flac files

So I think it is going to be very hard for you to come up with something that MusicBee can’t handle :wink:

Thanks for your continued work on the plugin!

On a sidenote, it looks like more refugees from iTunes are entering the gates of MusicBee lately.
So your plugin will probably continue to be very useful to these former iTunes users too.