thetwom / toc2

Metronome app
GNU General Public License v3.0
144 stars 23 forks source link

FR: Multiple metronomes, more logical notation editor #67

Open Aphexus opened 1 year ago

Aphexus commented 1 year ago
  1. It would be really nice to be able to have multiple metronomes going on simultaneously to practice multiple rhythmic patterns. This is mainly for polyrhythms and polymeters(such as 3 against 7 or 5 against 4).

Maybe as sample way to add this feature would be to abstract the metronome so that multiple can be run.

Then add an overlay or easy way to add or remove multiple instances.

Then it is just a matter of synchronizing the metronomes(so some work on dealing with how the sounds are played is in order. Probably the easiest way is to render the waveform directly to an audio buffer and the ship the buffer to the audio output. The main issue here is to make sure everything is nearly perfectly synced so there are no weird timing issues between the different instances.

  1. Add some ability to add a latency to the sound including negative. The issue is that there is some delay from the animation effects and the sound itself and if one is watching the metronome it can be a little discombobulating.

  2. The notation editor is a nice feature but it is a little strange to use. It would be better if it was more like standard music notation editors in which a beat is literally is specified by the time signature. Then a beat can be divided in a natural way. Currently one has to "add notes" but a note is, tempo speaking, an arbitrary unit specified by the notation rather than specified by the meter/bar. E.g., if I add 3 "units" those can be anything I say. When a quarter note is selected and turns it in to an eighth note it will change time signature(say from 4/4 to 7/8).

Maybe adding an "optional logic" for more standard notation would be better than to replace the current system. This way it could be done gradually. I'm mainly interested in the first request so I can practice polyrhythms more accurately.

thetwom commented 1 year ago

Thanks a lot for your interest and suggestions. Unfortunately, most suggestions can not realized easily or quickly. Please let me explain and also help me understand further your motivation and thoughts:

  1. Multiple metronomes: I understand that multiple tracks at the same time would be nice. And from the perspective of mixing/rendering the different tracks to an audio buffer, this mechanism is more or less, what is already done. Only by rendering all notes to a single audio track, we will get accurate timings. So the difficulty is the UI. I thought several times about it, but I have no good ideas for a UI which does not at the same time make the whole app much more complicated. Indeed, I find the current UI already not very clean anymore, but I have no real good idea yet to make it really nice.
  2. This is an interesting point and theoretically the easiest one. The feedback of several other persons here was that the visuals are synchronized quite well, such that we do not need an extra latency option. Now I wonder if e.g. your phone does not give precise synchronization information, or if it is a matter of taste, or if some people have a more sensitive perception. Do you have access to other devices, where you could try the metronome, such that we an get a better picture here? Or maybe you can also ask other people about their perception?
  3. Interesting point. So I understand, that your preferred work flow would be to first define the time signature, and then fill it with notes by changing the available notes, and when you e.g. change a note from forth to eighth, a new eighth note would pop up to keep the signature. Or do you mean, that the user should specify e.g. 6/8 and then 6 eighth note would pop up, which you would just have to define. The latter would of course limit the flexibility that you cannot mix different notes durations. On the other side, the current way is extremely flexible since there are no limitations of all. Question would be if the note editor could be cleaned up or improved to make it look less sophisticated. Or maybe you could also describe, what you think is the difficulty with the current editor, why it feels not natural (just because it is different to other editors? Or are there more reasons), and what you would hope from other "systems" (faster setup? why? less cluttered editor? but how to keep the current flexibility?)

I would really be interested in your further opinion here. But please also keep in mind that at least for 1. and 3. I won't be able to improve it short term.