Prevent doubling of volume for correctly played notes

Synthesia is a living project. You can help by sharing your ideas.
Search the forum before posting your idea. :D

No explicit, hateful, or hurtful language. Nothing illegal.
Post Reply
paronym
Posts: 17

Post by paronym » 06-12-20 1:33 am

When playing a song with the output set to 'Built-in MIDI Synthesizer' (with Local Control on my keyboard OFF), notes that are in the song and played at the correct time are double in volume compared to notes that I play that don't match up with the song. I understand this is because the built-in synth is playing the notes I'm physically playing (being sent as MIDI codes) at the same time as playing the notes that Synthesia itself is playing, and I guess the sine waves are being added together causing the doubling of volume for the notes that match up.

This is especially bothersome for Practice mode, though, where I'm hearing normal volume, double volume, normal volume, double volume, etc. as I hit the correct or incorrect keys.

A semi-solution I've found is to completely disable all output in Synthesia, and to turn Local Control on my keyboard back to ON. That means I then have to plug my headphones directly into my Casio keyboard instead of my PC. That works, and I then get consistent volume on each note because Synthesia itself isn't making any sound anymore.

But I lose a bit of flexibility by doing this, and I'd sometimes prefer to have the speakers connected to the PC rather than the keyboard if I'm listening to other stuff as well, or alternating between Synthesia and lessons/YouTube videos on the PC. Of course, a workaround to that is to connect my PC's audio to the 'Audio In' jack on my Casio keyboard. This works, but unfortunately degrades the audio overall (due to a ground loop between Audio In and the USB port when they're used simultaneously), which is why Casio and other keyboard manufacturers say not to use the Audio In jack at the same time as using the USB MIDI port. Note: I've actually gone to the trouble of working around this as well, by attaching a 3.5mm ground loop isolator to the Audio In, and this mostly solves the problem, but it's still not quite the same quality as just having my headphones attached to my PC.

I think it would be useful if Synthesia itself could be muted when playing back a song (especially for Practice mode, of course), while still allowing the built-in synth to play the notes that I'm physically playing. That way, all my workarounds would be unnecessary. Maybe there is also some other way that Synthesia could solve the problem. What do you think?

Nicholas
Posts: 12430

Post by Nicholas » 06-12-20 2:53 am

"Double in volume" might also have to do with a mismatch between the note's velocity as specified in the song vs. the velocity you're actually playing.

If all of the song's notes are set to max volume (which is very common when the notes are clicked into a music editing app vs. being "recorded" in), then when Synthesia matches your input against a note that belongs to the song, the velocity is reassigned to use the one from the song.

When your input doesn't match any of the song's notes, Synthesia leaves it as is.

Try this: Settings --> Gameplay --> Note Loudness --> Match Your Input.

Does that eliminate the effect you're seeing?

The downside is that if a song has any background notes that have been volume-matched against the part you're playing, the same "double in volume" problem will still occur, except between your notes and the background tracks.

The "right" answer that solves both issues today is to try and adjust either your keyboard's velocity sensitivity or your own key striking force until things match up across the board.

I've considered a kind of "adaptive velocity" idea as a third choice for the "Note Loudness" option (which would become the default setting). It would keep an eye on the difference in velocity between the song and your playing and then adjust the foreground and background parts so everything matched up automatically without any adjustments or changes from the user.

paronym
Posts: 17

Post by paronym » 06-12-20 4:00 am

Ah, that's interesting. Just to make sure I've understood what you're saying....

(a) it could be that the velocity values of the notes I'm playing are actually lower than the velocity values of the notes in the song
(b) the mismatched notes are playing at a volume matching my lower velocity values and the matching notes are playing at a volume matching the higher velocity values in the song
(c) Synthesia is never adding them both together -- any time a note makes sound it's either my played note or the song's note

Have I got that right? If so, that makes sense. My velocity values for the way I'm playing, and for my keyboard's current setting, are probably around 60-80 and the song is likely using 127 by the sounds of it.

I've tested the setting you asked about, and when I change it to 'Match Your Input' it does indeed make the loudness consistent.

In order to prevent the downside you've mentioned, maybe I need to turn off velocity sensitivity on my keyboard (thus making all notes play at 127) for those songs where the notes are all at max volume. That'll be a bit of a hassle changing that setting all the time, though. I like your idea about implementing a kind of adaptive velocity -- I think that would make a big difference and it would be very convenient.

Nicholas
Posts: 12430

Post by Nicholas » 06-12-20 4:39 am

Your A, B, and C are exactly correct! :)

Turning velocity sensitivity off completely might be a little extreme. Although, it would definitely get the job done. Most keyboards seem to have a few settings to adjust the curve a bit. Usually something on the lower end of those settings is enough to get things close.

I suppose one more (also a hassle) alternative would be to edit the MIDI file to have more realistic note velocities across the board.

paronym
Posts: 17

Post by paronym » 06-12-20 5:02 am

Nicholas wrote:
06-12-20 4:39 am
Your A, B, and C are exactly correct! :)
Cool, thanks for confirming. :ugeek:
Nicholas wrote:
06-12-20 4:39 am
Turning velocity sensitivity off completely might be a little extreme. Although, it would definitely get the job done. Most keyboards seem to have a few settings to adjust the curve a bit. Usually something on the lower end of those settings is enough to get things close.
I've got 3 settings: Off, Normal, Light. On the default ('Normal'), I found it very difficult to get values above 100 without hitting the keys so hard I'm worried about damaging the keyboard. I've recently changed it to 'Light', as that allows me to get values quite close to 127 when hitting the keys hard.
Nicholas wrote:
06-12-20 4:39 am
I suppose one more (also a hassle) alternative would be to edit the MIDI file to have more realistic note velocities across the board.
I'll rather look forward to the "adaptive velocity" in Synthesia! :mrgreen:

Nicholas
Posts: 12430

Post by Nicholas » 06-12-20 5:16 am

paronym wrote:
06-12-20 5:02 am
I've recently changed it to 'Light', as that allows me to get values quite close to 127 when hitting the keys hard.
Perfect! This is the "something on the lower end" that I was hoping your keyboard would have. Yamaha usually calls it "Low" sensitivity, but "Light" works too! It seems to work best given all the generically-authored MIDI files out there with unrealistic velocities. They would have you banging on the keys as hard as you can at all times otherwise.

Post Reply