Open yoavshati opened 3 months ago
I'd think rubato for the whole ensemble is easy enough with invisible tempo changes, but the ability to have a soloist rubato while the rest of the ensemble maintains strict time would be quite enough thing entirely (or indeed, have, for instance piano music where the left hand stays in time but the right hand melody plays with rubato - which is arguably the only way you can play much of Chopin's music). Ideally it would just happen automatically the way a human player naturally feels when rubato is appropriate, but I suspect that level of AI is a little way off.
I agree that rubato for the whole ensemble isn't difficult to do, but if this gets added without this feature then you now have two ways to achieve rubato that you have to use in different cases. I also think that extending the functionality to the whole ensemble is the easy part compared to making it work in the other cases, but I don't know C++ so I don't know how everything works now and how this feature might be implemented About the AI, I think you'd still want a way to control it so you get the result you want and not be stuck with what it came up with. Even if it works 99% of the time, I'd still want to be able to manually correct that 1% when it happens
Your idea
Add a way to indicate that an individual voice/instrument or the whole ensemble should speed up/slow down momentarily but recover that time a bit later The icon for it could look like a fermata inside a dashed box like the layout icons Its properties would be:
Problem to be solved
There is no clean way to get playback that imitates rubato playing intentionally and in a controlled way, which can make solo pieces and lyrical melodies sound "unmusical" as they would be playing 100% in time Some workarounds for this could be invisible tempo changes and fermatas, or entirely differently notated melodies with complicated rhythms that try to capture that rubato feeling, but I don't think these solutions are always possible and they are never easy to do
Prior art
No response
Additional context
No response
Checklist