Original Post

Thanks to a generous donation of a FlashBoy Plus from Richard Hutchinson (MineStorm), I am now able to release the Soviet Union 2011 sound engine, which works perfectly on hardware.

It is a simple engine, but will hopefully encourage new and existing homebrew developers to include sound in their games.

Attached is an example program that shows its features and how to use it.

Attachments:
10 Replies

Way to go! That didn’t take you long to fix. What was the problem ?

-Eric

I received the FlashBoy on Wednesday and already had the sound working the next day. I spent the other days fixing SU2011, which worked much better on hardware than I expected.

I think the solution was the modulation data. I don’t know what it is, but I saw it in DogP’s sound generator. Apparently it’s some data that’s needed by the VSU to produce sound.

Is there a way to choose the volume and instrument in this?

I might eventually add that, but if you want it now, do it yourself.

For volume, you can add a ‘u8 Volume’ property to the tySound structure and modify PlaySound to copy the volume from the sound data or from a parameter and have DoSounds send that instead of 0xFF to the SxLRV registers.

I think you could implement instruments in a way similar to volume, but I don’t know what “waveform RAM address” that the Wiki refers to means. Is it an index for the WAVEDATA to use? Experiment.

Just had a close look at it. It is actually pretty similar to what I did in GameHero. There are major differences though. However, I was able to extend my Midi2VB converter to support the SU Sound Engine. I also cleaned up the converter code, so it is going to be released soon.

Here is a example of an midi to SU sound engine conversion:

const u16 music_test_c1[] = { 	1,  	AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, GS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, GS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, AS5, HOLD, HOLD, HOLD, HOLD, PAU, C_6, HOLD, HOLD, HOLD, HOLD, PAU, D_6, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, GS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, AS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, AS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, AS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, AS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, GS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, GS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, PAU, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, CS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, CS6, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, CS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, C_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, C_6, HOLD, HOLD, HOLD, HOLD, PAU, D_6, HOLD, HOLD, HOLD, HOLD, PAU, E_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, G_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, AS5, HOLD, HOLD, HOLD, HOLD, PAU, AS5, HOLD, HOLD, HOLD, HOLD, PAU, C_6, HOLD, HOLD, HOLD, HOLD, PAU, D_6, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, GS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, AS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, CS7, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, C_7, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, A_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, AS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, A_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, AS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, A_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, D_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, DS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, FS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, CS6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, AS5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, C_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, C_6, HOLD, HOLD, HOLD, HOLD, PAU, D_6, HOLD, HOLD, HOLD, HOLD, PAU, E_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, G_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, F_6, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, PAU, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, PAU, HOLD, HOLD, HOLD, F_5, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD, HOLD,  	ENDSOUND, };

That’s cool. But you should use the largest FramesPerNote value possible to eliminate all those HOLDs and save space.

I did, the converter already calculates it. The Midi just has allot of 1 frame pauses. Thats why everything comes down to 1.

Sorry to bump such an old thread, but I sort of have a problem. I have two looping songs running. One is a treble and one is a bass. I’d like to MUTE some treble HOLDs. Is there a way to do so, and if not, can we make a way, by “hacking” the engine or something?

I figured it out by looking at the notes. Apparently the VB cannot read low notes, so a way to mute music would be to use C_0 as a note, thereby producing silence. It looks as though the whole sound engine relies on this fact as well!

The proper way to produce silence is to use PAU; the DoSounds function temporarily sets the volume to 0 when it encounters that value. But yes, several other constants (such as C_0) in notes.h have the same value (0) since apparently the VSU can’t produce anything below DS2 or above C_9. That file was created by DanB; I haven’t done any tests myself, so I don’t know whether it’s totally correct.

 

Write a reply

You must be logged in to reply to this topic.