I managed to get UrabeVocalSynth close enough to what I originally imagined it would be to call it completed this Wednesday. I have yet to get a chance to do a video of it yet (and won't until next year now) but here is an overview of what is working, what is kind of working and what I want to work better.
Waveform synth mode is working very well, I have it set up to expose almost all (even the relatively useless) synth parameters that are provided by the GinSing library to the user and allow them to be changed using either the menu on the synth or by listening for MIDI control change messages.
Some of the more useful synth options are waveform distortion, waveform shape and envelope, the combination of all three give a very wide range of possible instrument voices but it takes a little while to get used to tuning this for the type of sound required.
There is also a small issue with receiving MIDI control change messages and having this be applied to the synth, as it is any change over MIDI will not be applied until the user presses the "Panic" button on the synth, this was due to an issue where calling the function to apply the new synth parameters after each MIDI message caused a lot of delay as it was applying a lot of redundant parameter changes and GLCD updates which involved a lot of blocking calls to the GinSIng shield.
This is working as well as I can really expect it to, there are some issues where certain sounds are very similar to others and issues with displaying some kana on the GLCD properly, but overall I am happy with the quality of the speech synthesis.
One issue is the time taken to enter kana with the keypad, as it is it imposes a limit on the speed of song possible and I did intend to rewrite the algorithm which converts key presses into kana but ran out of time for this. General issues
There is a small issue with the clone Arduino Mega board I am using where the on board regulator needs at least 6V to give a reliable 5V supply to the Arduino's 5V rail (which also powers the GLCD and backlight) the Arduino and GinSing still run fine but the GLCD contrast becomes unstable and makes text very difficult to read. This isn't really an issue, but it should not work like this and I did spend a bit of time wondering why this was the case.
Setting the volume with the GinSing master was causing audio quality issues, so for now it is disabled by commenting out the
master->setVolume() lines but I may just remove it altogether, there is still the hardware volume control on the main panel and the envelope volume controls on waveform synth mode.
Anyway, here are some photos of the final testing setup at Makerspace: