Skip to content

Conversation

juanotto
Copy link

@juanotto juanotto commented Oct 9, 2025

Added mechanism to use transposition in IR_ChordSymbol.

The Chord Lead Sheet and the EasyReader show transposed chord symbols when transposition is active.

Main parts of #534 are done with this.

@juanotto juanotto changed the title Transpose chord lead sheet Transpose chord lead sheet for #534 Oct 9, 2025
@juanotto
Copy link
Author

juanotto commented Oct 9, 2025

BTW this is based on #579, only adds one commit with 6 files modified... pretty small

@jjazzboss
Copy link
Owner

I did not have time to do a detailed review. But a general feeling. I created the ChordLeadSheetItem (and SongPart) client properties (not serialized with the model) to let the app alter the UI without altering the models itself. This proved in the past to be clean and maintainable. For example all ItemRenderers naturally listen to their ChordLeadSheetItem item model. Listening to the item's client properties is also natural and consistent (IR_ChordSymbol already does it by the way). This makes the impact on renderers simpler. This also avoids to add a dependency to PlaybackSettings for all viewers. In the future this kind of change will happen again: we can not add a new dependency each time.

@jjazzboss
Copy link
Owner

well it's late in the night, I'm not thinking clearly enough, I'll see this week-end ;-)

@juanotto
Copy link
Author

juanotto commented Oct 9, 2025

I did not have time to do a detailed review. But a general feeling. I created the ChordLeadSheetItem (and SongPart) client properties (not serialized with the model) to let the app alter the UI without altering the models itself. This proved in the past to be clean and maintainable. For example all ItemRenderers naturally listen to their ChordLeadSheetItem item model. Listening to the item's client properties is also natural and consistent (IR_ChordSymbol already does it by the way). This makes the impact on renderers simpler. This also avoids to add a dependency to PlaybackSettings for all viewers. In the future this kind of change will happen again: we can not add a new dependency each time.

Ohhhh that makes sense! I didn't see the client properties at all to be honest :| I'll try to move it, with a quick scanning it seems good to put the transcription in the properties.

I need to find out where is best update the properties, who has the dependency on PlaybackSettings... ideas welcomed. I'll be doing a bit of that over the weekend too :)

@jjazzboss
Copy link
Owner

Let's agree first on the design approach before you start making the changes. There are several approaches...

@juanotto
Copy link
Author

Closing this in favor of #585

@juanotto juanotto closed this Oct 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants