Feedback and Suggestions

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.
icuurd12b42
Posts: 48

Post by icuurd12b42 »

I just spend an hour typing and your forum just kicked me out and I lost everything so I'm just going to put this suggestions image and just edit later after my blood stops boiling...

Synthesia Suggested Changes.png
Synthesia Suggested Changes.png (115.8 KiB) Viewed 13580 times
Last edited by icuurd12b42 on 11-20-21 4:04 am, edited 2 times in total.
icuurd12b42
Posts: 48

Post by icuurd12b42 »

As an aging programmer/software tester... and Newbie keyboard player, here is my feedback on the interface.

I would like to change the base frequency to whatever I want, in free play and play modes...

Practice the Melody Mode, Metronome stop: I would like to have the metronome continue to beat when I miss a note. Have it repeat, at tempo, the sound the sequence part of the beat, for example, tictictictoc, if I miss on "toc" repeat toc until I hit the right key and continue with the metronome sequence.

Practice the Melody Mode, The song abruptly stops when I'm late. This is driving me mad. the trigger being the bottom of the window, a position my aging brain is incapable to adjust to. It's really trying to make sure the note aligns with that red line above the keys. Can you please add an actual target timing line at half a note distance from the bottom. and have the song stop when I missed completely and the note hit the bottom of the note fountain window.

Screen Keyboard size: Why does the size of the onscreen keyboard change depending on the song? This is confusing. How to I fix this so I always see the same number of keys?

Octaves: Not 100% sure how auto octave works... it seems to work for some songs, when ON, Oh Canada, I did not need to use the octave change buttons on my 25 Key KB... but not all songs seem to work... I still need to hit the change octave buttons on my kb (All Notes options ON). If the game did it for me along with properly indicating where on a full keyboard my pitiful 25 keys would be, and auto shift the octave, shifting the active octaves window with it, that would be great.

I don't understand the Hand Position Icon and the text "Add finger by dragging from note to finger diagram". all that button does is change between 1,2,34, and r1,r2,r3,r4,r5/l1,l2,l3,l4,l5 on the falling notes that have the finger number...


Bug: If you have the Scoresheet enabled and in the Choice menu you double click, for example, "Practice the Melody/Right Hand" and that button is already active with the marquee animation around the button border, it takes you to the Practice mode but also positions the time index down the scoresheet as that UI thinks you clicked the scoreboard to change the position. sometime you don't notice and you play to the end and you are not scored.
Nicholas
Posts: 13132

Post by Nicholas »

Sorry for the trouble with the forum software. I think they've got the session duration set to an hour, so if you spend longer than that composing a message (I have before several times), it will expire. (Workarounds include periodically clicking the "Preview" button to reset that timer or to resubmit the form after you get the error message.)
icuurd12b42 wrote: 11-06-21 1:40 pmI would like to change the base frequency to whatever I want, in free play and play modes...
This is an interesting request that I haven't heard before. I'd love to hear more about your use case and why this is something you'd like to be able to adjust. MIDI makes this a little more challenging: it assumes 440 Hz and the only control Synthesia has would be by using (abusing?) pitch bend messages under the hood to fake it.
icuurd12b42 wrote: 11-06-21 1:40 pm... if I miss on "toc" repeat toc until I hit the right key...
I like this idea a lot, actually. It does technically impose timing/counting that doesn't really exist, so it'd probably go in with an option to disable it for users that are used to the metronome also completely stopping with the song.
icuurd12b42 wrote: 11-06-21 1:40 pmPractice the Melody Mode, The song abruptly stops when I'm late. This is driving me mad.
Being able to move the "target" to a separate line above the keyboard (instead of the top of the keyboard itself) is a useful idea. Maybe the user could position it arbitrarily: anywhere from just above the keys to halfway up the screen, etc.

As for the timing window, a much more flexible solution is score following. It will transform the "song stops too abruptly" problem into a situation where you can play at whichever speed you prefer, hitting notes whenever you like while Synthesia adapts and follows along automatically.

Now it's just a matter of finding the time to add a large feature like that.
icuurd12b42 wrote: 11-06-21 1:40 pmWhy does the size of the onscreen keyboard change depending on the song?
Choose something different from the magnifying glass "Zoom" menu at the top-right corner. There are fixed keyboard sizes there.
icuurd12b42 wrote: 11-06-21 1:40 pmNot 100% sure how auto octave works...
When the song first begins, Synthesia finds the octave shift that will bring the maximum number of notes in range. That's all. Some notes will necessarily still fall outside of that range, but it will be fewer notes than any other octave choice.

I'd be nervous about pulling the rug out from users during play and automatically moving their input octave around on them. "It would be great" when it worked. It would be infuriating when it did something you weren't expecting.
icuurd12b42 wrote: 11-06-21 1:40 pmI don't understand the Hand Position Icon and the text "Add finger by dragging from note to finger diagram"...
Try "dragging from a note" to see. :D
icuurd12b42 wrote: 11-06-21 1:40 pmBug: ... it takes you to the Practice mode but also positions the time index down the scoresheet...
Good catch. I'll have it ignore clicks that happen in the first few hundred milliseconds of the song beginning.
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Thanks for taking the time to respond :)

Glad you find the suggestions interesting. Figured what the Drag Mouse message meant. hehe...

1-The base frequency is something my other keyboard has. I have my base frequency set to 432 for such a long time 440 seems off. I dont know if it's part of the midi spec. I assume it would be. Though I made a midi file decoder like 12 years ago and I don't remember seeing it

The other KB I have is a cheap Casio with lighted keys. Unfortunately the version I got has no midi output. so I got myself a cheap 25 keys KB.

2-As for the Follow Mode. It's what it's called on the Casio. Like that Score Following video. The Casio adjusts to you cadence but points are deducted the more off you are, even playing perfect. also there is a limit in speed. The casio will not allow you to play through missed notes. it will stop. The next mode is like Guitar hero, you miss the note or tempo, you lose score. I like it to stop when I'm confused, so the guitar hero mode is not for me.

The target line adjustment idea should improve the miss keying, and the higher above the keys to larger the margin of error. that sound like a good first start I think. Another option to add, god knows you have a ton of options in there.

If that tweak was added I would really like it :)


Some other ideas...

As a cool effect, it would be nice if the "note drops" transformed according to pitch bend and key hit velocity in sandbox mode. Reversely, show pitch blend and tremolo if the midi specifies it in learning mode

Also my KB has pads. would be neat if I could specify the instrument for the pads in sandbox mode so I can fiddle around on the KB while your app is in the background while I'm watching vids.

Have you thought of making the note fountain more like those concertcreator.ai videos? Shader effects and playing hands?
Last edited by icuurd12b42 on 11-12-21 5:01 pm, edited 1 time in total.
User avatar
jimhenry
Posts: 1899

Post by jimhenry »

Nicholas wrote: 11-11-21 12:17 pm
icuurd12b42 wrote: 11-06-21 1:40 pmI would like to change the base frequency to whatever I want, in free play and play modes...
This is an interesting request that I haven't heard before. I'd love to hear more about your use case and why this is something you'd like to be able to adjust. MIDI makes this a little more challenging: it assumes 440 Hz and the only control Synthesia has would be by using (abusing?) pitch bend messages under the hood to fake it.
I copied this verbatim from https://www.midi.org/forum/4356-how-to- ... ank-select. I have never used this feature of MIDI:

On this website, go to Specs -> The MIDI 1.0 Specification -> The Complete MIDI 1.0 Detailed Specification, then download the following documents and read the pages listed:

The Complete MIDI 1.0 Detailed Specification Document (1996), PDF page 50 "Master Tuning"
and Redefinition of RPN01 and RPN02 (Channel Fine/Coarse Tuning)

The Complete MIDI 1.0 Detailed Specification Document (1996), PDF page 82 "Changing Tuning Programs"
or MIDI Tuning (Updated Specification), PDF page 3 "Changing Tuning Programs"


Here are some examples based on my understanding of the specifications.


Channel Coarse and Channel Fine Tuning

B0 65 00 = Control Change Ch 1, Controller 101 RPN MSB, Value 0 and...
B0 64 02 = Control Change Ch 1, Controller 100 RPN LSB, ...Value 2 for Channel Coarse Tuning
B0 06 3F = Control Change Ch 1, Controller 6 Data Entry MSB, Value 63 for -1 semitone

B0 65 00 = Control Change Ch 1, Controller 100 RPN MSB, Value 0 and...
B0 64 01 = Control Change Ch 1, Controller 101 RPN LSB, ...Value 1 for Channel Fine Tuning
B0 06 3F = Control Change Ch 1, Controller 6 Data Entry MSB, Value 63 and...
B0 26 18 = Control Change Ch 1, Controller 38 Data Entry LSB, ...Value 24 for -104/8192 semitone

For Channel Coarse Tuning, the Data Entry MSB Values of decimal 0 to 64 to 127 (hex 00 to 40 to 7F) represent -64 to 0 to +63 semitones. The step between each value is 1 semitone.

For Channel Fine Tuning, the Data Entry MSB and LSB Values of decimal 0 0 to 64 0 to 127 127 (hex 00 00 to 40 00 to 7F 7F) represent -1 to 0 to +8191/8192 semitone. The step between each value is 1/8192 semitone

The combined semitone values of the Channel Coarse Tuning and Channel Fine Tuning represent the offset from A440 tuning.


Tuning Bank Change and Tuning Program Change

B0 65 00 = Control Change Ch 1, Controller 101 RPN MSB, Value 0 and...
B0 64 04 = Control Change Ch 1, Controller 100 RPN LSB, ...Value 4 for Tuning Bank Change
B0 06 00 = Control Change Ch 1, Controller 6 Data Entry MSB, Value 0 for Tuning Bank Number 1

B0 65 00 = Control Change Ch 1, Controller 101 RPN MSB, Value 0 and...
B0 64 03 = Control Change Ch 1, Controller 100 RPN LSB, ...Value 3 for Tuning Program Change
B0 06 00 = Control Change Ch 1, Controller 6 Data Entry MSB, Value 0 for Tuning Program Number 1
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Ha the MIDI spec Such fond yet confusing memories...
Nicholas
Posts: 13132

Post by Nicholas »

I'd forgotten about the tuning RPNs!

I tinkered with it for a bit but I'm having trouble getting BASSMIDI to change the way anything sounds. The Microsoft synth is responding to it. And I even found a forum post from the BASSMIDI developer (from 2007!) that mentions he'd implemented the coarse and fine tuning RPNs specifically. So I suspect I must be doing something wrong.

Either way, while it wouldn't be a guarantee--it'd be up to the receiving MIDI device to actually do anything with it--sending the tuning messages out on each channel after each reset isn't particularly hard. I could add an advanced setting for changing the A4 standard, I suppose. I'd like to figure out why the built-in synth isn't responding first, though. Otherwise the utility of adding it drops substantially.
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Could it be the load all sounds option preventing this. assuming changing the base frq change the wave table...
User avatar
jimhenry
Posts: 1899

Post by jimhenry »

Could it be that a synth restart is needed for the tuning RPNs to take effect?
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
Nicholas
Posts: 13132

Post by Nicholas »

Isn't the point of being able to stream RPN messages (like any other MIDI message) that it can be changed anytime you like?

Again, the Microsoft synth responds to them, presumably anytime you request the tuning change. I should ask Ian at Un4seen to see what I'm missing. It's probably something trivial.
User avatar
jimhenry
Posts: 1899

Post by jimhenry »

Nicholas wrote: 11-18-21 1:16 pm Isn't the point of being able to stream RPN messages (like any other MIDI message) that it can be changed anytime you like?
I don't think there is anything in the MIDI standard that dictates that the recipient of a MIDI message has to do what is asked within a specific timeframe or even at all. In fact, I think the standard does say that the recipient can ignore messages if they can't handle them. I can think of reasons why a synth might not be able to respond to a change in the tuning standard on the fly.

The MIDI sender can send whatever MIDI messages they want, whenever they want. But the MIDI sender is at the mercy of the MIDI recipient as to what the result will be.
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ
http://www.Miditzer.org/
Nicholas
Posts: 13132

Post by Nicholas »

As I suspected, it was my own mistake. BASSMIDI always does the right thing (except when you tell it not to). And Ian--the developer of BASS--is always incredibly responsive. Such a great library...

In any event, RPN Master Tuning works (at any time, arbitrarily) for the built-in synth. And in testing this, I've nearly written all of the required code to add your feature. :lol:

It'll be an "advanced option" that you have to hold your Shift key while launching the app for, but tucked away in that menu feels like the right place for something that is only being requested for the first time in 15 years. :)


EDIT: Of course there are also "Master Coarse/Fine Tuning" SysEx messages defined in addition to the RPN versions. *sigh* I wonder what the compatibility landscape looks like for one over the other? For now you're getting RPN messages. ;)
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Nice. I personally would enjoy a easy access to it since I play with that value all the time on my casio.

Some other suggestions:

My KB has beat pads. Right now the beat pads are really just mirrors of piano keys an octave down regular C . Would be interesting to see if the pads could be setup to play its own instrument...

Also would it be possible in the free play to play multiple instruments/channels at the same time I could make a richer sound for my free play. Like have a Add button below the instrument, like image below?
Synthesia Suggested Changes 2.png
Synthesia Suggested Changes 2.png (33.21 KiB) Viewed 13359 times
Nicholas
Posts: 13132

Post by Nicholas »

I've seen requests for a "split point" on the keyboard where anything below it would use one instrument and anything above it would use a different one.

In your mockup, how would you handle the mapping of which inputs would use each of your instruments? Is that some dialog that appears when you click the "Add" button?
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Yes, indeed, I initially thought of that and wrote it in as a way to play multiple instruments. but then I realized 2 of the pads are also the first black note on my KB's regular scale so I removed the suggestion hoping you have a better way to segregate the pads as a separate keyboard.

I don't know how my KB is seen on your end. Is it seen as 2 keyboards, or just one, if just one, are the pads coming in on another instrument channel?

Anyway, yeah I would be cool if that was possible to split the Keyboard.

> how would you handle the mapping of which inputs would use each of your instruments?

In "Settings/Musical Devices/Music Input" I would add a "Add Virtual Device" at the bottom of the list and show the same sort of UI used to setup the range, with the addition of a drop down list to select what actual device to virtualize. I could add as many virtual instruments as I wanted. They would show at the bottom of the list as I add them

Selecting the range of the virtual keyboard, I would allow creating multiple virtual Keyboard with overlapping or even same range so you could define many thing many ways.

In free Play, I would expand the Instrument Selection Panel to allow adding a drop down list to select what keyboard is playing that instrument... as well as a Checkbox to enable or disable the instrument and a remove button.
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Another feature I would like is to mirror my midi music folder architecture under the SONGS list instead of just having them all listed under the root SONGS tab. I have like 300 midi songs and its impossible to navigate through that mess when all the songs from all albums are under the same tab.
Nicholas
Posts: 13132

Post by Nicholas »

icuurd12b42 wrote: 12-03-21 12:17 amI don't know how my KB is seen on your end.
If you only see one entry in the Settings → Music Input list, then it's only being read as a single device.

The best you might be able to hope for is that the pads are being sent as notes on a different channel. At that point there is a way to distinguish between the two kinds of input.
icuurd12b42 wrote: 12-03-21 12:17 amSelecting the range of the virtual keyboard, I would allow creating multiple virtual Keyboard with overlapping or even same range so you could define many thing many ways.
This sort of thing actually sounds like some of the advanced features built into MIDI-OX. You could use something like loopMIDI to create the virtual devices and then have MIDI-OX distribute the input from your real digital piano to each of the virtual devices based on the input range.
icuurd12b42 wrote: 12-03-21 12:17 amIn free Play, I would expand the Instrument Selection Panel to allow adding a drop down list to select what keyboard is playing that instrument...
A per-input-device instrument selection is a good idea. That handles the problem in a tidy way.
icuurd12b42 wrote: 12-10-21 12:51 pm... I would like to mirror my midi music folder...
Try the orange "All Songs (grouped by folder)" entry at the top of the list. :D
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Thanks I got MIDI-OX to investigate

Piano Keys are channel 1, the default piano channel
Pads are coming in as channel 10, I suspected, the default percussion channel

I also have 4 knobs/potentiometers coming in as "control change" event... Data1 is the command id 14,15,16,17 with the value on Data2 0 to 7f

I have 4 buttons also coming in as Control Change, id 30,31,32,33, the toggling between the values 0 and 7f

I'm sure you could map some feature on those, possibly have an option screen where you could scan what's coming in to map it to a feature, like one does when to assign keys from the keyboard for a game

the knobs would be useful for example to control the volume of the app or even change instruments via 128 intruments... 0-7f.

the toggles could be used to turn on preferences. or even if you code a state change, act like a click button to say change the tempo


I have a pitch bend wheel and a modulation wheel.

As for the ability to create multiple virtual KB with the tool, good to know. Not sure I would need that if you can implement the percussion.

Per input device instrument selection is not exactly what I suggested, what is suggested is the ability to add new instruments and specify what keyboard, and now I guess, what channel that keyboard would play the instrument, as a general implementation. this implies multiple instruments can be set to be played at the same time by the same keyboard... say violin and trumpets played by keyboard 1 channel 1, and the drums by keyboard 1 channel 10, and the organ played by keyboard 2 channel 1...

I feel silly not having noticed the orange item right there at the top...
Bavi_H
Posts: 115

Post by Bavi_H »

icuurd12b42 wrote: 12-13-21 4:36 amPads are coming in as channel 10 [...]
I also have 4 knobs/potentiometers coming in as "control change" event [...]
I have 4 buttons also coming in as Control Change [...] toggling between the values 0 and 7f [...]
I have a pitch bend wheel and a modulation wheel.

[...] I'm sure you could map some feature on those, possibly have an option screen where you could scan what's coming in to map it to a feature, like one does when to assign keys from the keyboard for a game
This feature already exists in Synthesia. :)

First make sure your MIDI keyboard is enabled in Settings → Music Devices → Music Input.
Now go to Settings → Shortcuts, choose an item, then click the + button.

You can press a pad, button, or piano key on your MIDI keyboard and Synthesia will capture it and you can save it as another shortcut for that item.

Most of the items are for "button press" shortcuts. But there are a few items that look like they can react to "slider" values: The items for "Speed (variable)", "Song Position Jog", and "Absolute Song Position" have a comment that says "This shortcut works with an axis like a pitch bend wheel, a control knob, or mouse scroll wheel." Try assigning a knob or a wheel on your MIDI keyboard as a shortcut for these items and see how Synthesia reacts. (I don't have an easy way to test at the moment, so I don't know the exact details about how Synthesia reacts.)

  • Note about buttons: If your buttons toggle sending values 127 and 0 each time you press them, see if you can change them to send 127 when you press down and 0 when you release. (Or to send a non-zero value when you press and do nothing special when you release.)

    It looks like Synthesia doesn't respond to Control Change messages with a value (Data 2) of zero. I can understand why it does that. Things like a sustain pedal will send value 127 when you press it and value zero when you release it:

    sustain pedal press = Controller 64, value 127.
    sustain pedal release = Controller 64, value 0.

    It looks like Synthesia is making a simplifying assumption that value 0 of any controller is going to represent a release, so it doesn't let you use that as a shortcut. So if a button toggles between sending value 127 and 0 each time you press it, you might have to press the button twice to get an action to happen in Synthesia.

    UPDATE: There is a hidden setting that can help in this situation.

    Hold the Shift key as you start Synthesia to get the Synthesia Configuration Window.
    Go to the setting "System.IgnoreZeroValuedCc" and clear the check box.

    Now Synthesia will allow Control Changes with value of zero to be used as shortcuts.

    (There are many settings in the Configuration window that I don't know what they do. I just remembered seeing that setting before and figured it was related to this issue and it was!)
icuurd12b42
Posts: 48

Post by icuurd12b42 »

Nice thanks.

Assigning a shortcut to a pad is not really good since the program reads that as a piano key... looks like the program reads at least channel 1 and 10 as piano keys. likely all of them. I think for future improvement the program should be aware of the channel difference and no combine them

if I assign to a push button, as you mention the program only responds to 7f so I need to tap it twice for the shortcut to work.

I assigned a knobs to song position and another for speed.

For the song position, it's really weird, it take a moment to position the song, it also does nothing unless I turn it a lot first and it does not look like setting does an absolute position on the song as setting it to 10% rewinds the song all the way to the start (0%).

I would like a VOLUME (knob) and Instrument Selection (button and knob) since these are what I mostly play with in free play
Post Reply