MusicMaker Sound Module Utility
Angel Perez (2908) 84 posts |
In the present state that MusicMaker was left in the download link at the Archimedes Gamemakers Manual web site, when I created a new sound module, I got an error message that read, “(SMOD file)-UserVoiceLib is not 32-bit compatible,” and I was advised to edit the source code with a few lines with this correction: Instead of: I was told to change that to: P%=Module% Fred Graute advised me on this but now I am getting this error message: “‘%’ in module title,” Is there a better utility for this purpose or is there another correction to be made on the MusicMaker programme? |
David Feugey (2125) 2709 posts |
What’ the name of the sound you try to create? |
Angel Perez (2908) 84 posts |
Here was the problem, David: .Finalise This piece of code, above, the .Finalise subroutine. I was advised to change that to: .Finalise However, if I am going to fill up all 32 voice generator indices, to avoid going out of range within the scope of the indices, I discovered that the number of voices programmed for the sound module should be reduced from 12 in MusicMaker to 8, the same as for the creation of the sound module SMOD5 for !SignalBox. (My guess is that the “5” suffix in the sound module name SMOD5 is relevant to compatibility with RISC OS versions 5 and up.) Another thing to be aware of, is that you should give each new voice for each sound module completely unique names under the “UserLib-” prefix. The names of voice indices programmed in one sound module should not repeat in another module you intend to load after loading up the previous module. If you loaded one sound module with 8 voice generator programs (like in !SignalBox) and there is a voice index name “UserLib-Flute”, if you load another sound module, the next module must not contain another “UserLib-Flute” name. That module will automatically refuse to add the new voices to those already installed. Therefore the RISC OS mechanics for adding new voice generators within the indexes 1 to 32 is by all absolute accounts duplicate-name sensitive. So we must make sure that each voice name is unique and not repeated neither on the same module or another. |
David Feugey (2125) 2709 posts |
Thanks for all these informations. So now we have a 32bit version of MusicMaker :) |
Angel Perez (2908) 84 posts |
Yep! Just don’t set the initialising variable VoiceMax% to anything past 12. Setting this variable to 8 is used to evenly divide the 32 voice generators into four sound waveshape modules. I found at least three single-voice-generator sound modules while browsing the web: one is called “Click”, another one is a piano emulator module called “Piano” and SineVoice. |