|
Post by Tulio Adriano on Dec 17, 2004 8:38:28 GMT -5
Ok, so I am trying to play arround NoiseMachine but I found that it loads predefined instruments (Organ.Dat, Brass.Dat and Piano.Dat), and the music notes are defined in the file Scales.dat.
My question: How do I create instrument definitions and scales?
Thanks in advance.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Jan 4, 2005 19:24:48 GMT -5
you can change the instrument data by going menu -> Instruments -> Edit current instrument. The current instrument its talking about is the one that is selected on the menu (1 outa the 6 instruments)
|
|
|
Post by Tulio Adriano on Jan 5, 2005 9:04:32 GMT -5
Há!!! I am little stupid. I downloaded the BEX Noise Machine source code but I didn't know that there was Win32 NoiseMachine creator... doooh Ok now let me go to the work!
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Jan 5, 2005 14:24:11 GMT -5
=P, you didn't think i would have made composers put in hex numbers in a data file to play music =D
|
|
|
Post by Tulio Adriano on Jan 5, 2005 19:24:55 GMT -5
Well... my first attempt with noisemachine was very good ;D then I touched in a very sad limitation When I tried to make a multichannel song, I was able to setup all instruments in BEX but at runtime I saw that the FM song was playing 1 channel at time. This is very weird... Am I doing it wrong or something need to be fixed? Btw, I suggest to make a multitrack composer because composing all tracks in a single listbox makes hard to handle the song when it has many tracks and notes. If you explain me the file format, I can make this tool. Feel free to contact me anytime.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Jan 5, 2005 19:39:41 GMT -5
to play a multichannel song, remember you need to load the different instruments for each channel manually in your "game" source code.
EDIT to the above: Wait, do you mean "one channel at a time" as in it plays the first channel, delays, then plays the second channel, which in fact is suppose to play at the same time? to fix that, when you edit your music, you have to specify no delay for the first instrument you play. then for the second instrument, you'll need to specify a delay if the next instrument is going to be your first one. specifying no delay between playing instruments will guarantee that the instruments will play at the same time (yet another tracker's headache because of the program =P)
and yes, the tracker is very hard to use =P, i tried using it once for multi channel music, and its tough with just a list box.
i really dunno what i did with the documentation for the format x.x. i don't really think there was one =P. i'll have to take a look at the source code and make one up for ya. if you know z80 assembly, you can also look at the player code itself
|
|
|
Post by Tulio Adriano on Jan 6, 2005 6:45:14 GMT -5
Wait, do you mean "one channel at a time" as in it plays the first channel, delays, then plays the second channel, which in fact is suppose to play at the same time? to fix that, when you edit your music, you have to specify no delay for the first instrument you play. then for the second instrument, you'll need to specify a delay if the next instrument is going to be your first one. specifying no delay between playing instruments will guarantee that the instruments will play at the same time (yet another tracker's headache because of the program =P) Yes I did that, I can see in GensKmod the instruments changing the notes, but something even weird is happening: The instrument that has no delay plays only the first note then, its volume decrases (i can hear the other notes while it is decrasing) and then I can't heard it no more, even with the notes changing. In the Key info (genskmod) I can see that the second channel notes have the correct duration, but the first channel sound so fast that it isn't displayed in the key info. I believe that this sound behaviour of the first channel is caused because the note is so fast that the atack does not have time enough to make it sound. (hope I make my words clear) and yes, the tracker is very hard to use =P, i tried using it once for multi channel music, and its tough with just a list box. Sure it is, it would be better to display the notes per channel because the delay thing should be handled per channel and not per song. i really dunno what i did with the documentation for the format x.x. i don't really think there was one =P. i'll have to take a look at the source code and make one up for ya. if you know z80 assembly, you can also look at the player code itself You bet I am better with a doc than with Z80 asm. Anyway, the more info I can get is better. I hope we can work together to make a great FM tracker (compatible with BEX, SGCC, XGCC, etc) since FM tools is something lacking in the Genesis Dev Scene. I have some other ideas to the FM driver, I shall discuss them later for they are not a priority by now.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Jan 6, 2005 19:24:41 GMT -5
oh, the key on and key off thing was my mistake. the driver was suppose to key off all channels that were still on at the end, but instead keys them all off individually. i'll update the driver, i must have released the driver early x.x. And hey, what new features do you have in mind? i could add them now while i'm updating the player (they gotta be simple though =P, i still wanna keep the driver less than 256 bytes =D)
|
|
|
Post by Tulio Adriano on Jan 6, 2005 20:37:50 GMT -5
Don't know how hard is this, but it seems that your instrument definition format is independent. I saw that GensKmod is capable of dump a channel definition but the file formats are a bit different. My first suggestion is make the instrument definition compatible with Kaneda's Channel dump, because that will make lot more easier to compose songs with a "known" instrument. For the second suggestion, I miss in the Noise Machine Tracker an option to set the volume of the channel or the note velocity (the more intense, the higher is the volume). I don't know if the driver already support those parameters. The others I forgot (is a bit late here, now... almost midnight ) but when I remember I post as soon as possible... EDIT: I remember another... DAC... how will we fire dac samples? Seems clear that we can put simple wave (8 bit, low sample rate) as a datafile then load it for the YM2612 to play, but seems the driver doesn't support it yet... you said once that you don't know what to do with the memory left (and so came the FMV player idea) so maybe you would consider incrasing a bit the size of the FM driver to include this "must have" feature, that is the DAC support, since DAC samples are great for making drum beats. EDIT2: Another one... PSG. As the tracker creates a song that will be played between z80 and the sound chips, why not let it handle the PSG channels? The common parameters are Note, and Octave, the PSG specific parameters are Channel volume and decay level, to make it sound like a square wave piano if I want. The white noise is perfect for Hi-Hats (used in lots of games like that) It would be easy to set up white noise parameters too... In my demo, sent to Devega I handle the PSG channel volumes in the VBlank and I was able to make a song for the title screen, but I don't believe this is the best way to do it, since it is consuming the MC68k time. I think the PSG command is best for making noises, sounds for the gameplaying (especialy using the Tone Generator #3 & White Noise) like fire, rockets, waves, et cetera. So, one more suggestion for your FM Driver.
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Jan 18, 2005 18:44:47 GMT -5
Yea, i made up my own. It is very easy to make a converter between the two file formats since instruments have the same registers. I'll add this in next release (for importing instruments) You would need to modify the instrument data file to do this. I didn't include it in the instrument editor cause i was lazy =P. suggestion approved =P aright, i'll include dac support. but be warned 0.o, samples take up lots and lots of space (one drum beat is gonna fill the entire ram already lol). i'll trying to make a way to compress the samples so they're not so huge. i don't think i'm going to include support for the psg. however, like the dac suggestion, i'll include the psg free of charge =P. what i'm going to do with the dac and psg is the same thing, i'm going to let the tracker decode your data into assembly language for the z80, so i don't have to modify the driver extensively. so it's like i'm going to use the psg for samples like the dac. i've also added my own suggestions too =P, i'm going to compact the notes into 12 bits, the old format used 16 bits per note. i thought it was worth it to do this, since if i were to increase the driver by 256 bytes of code, i'd have 7680 bytes for music. 12 bits per note, i'd get 5120 notes, compared to the old 3968! a very nice trade off =D also, i'm going to have a way to import the midi format into the tracker. i resolved the instruments issue with not using the instruments at all =P, you can import one track, or as many as you want. this feature will not let you just import, click, and play using the lazy man's way =P. at least, when you import a midi track, you get a start on what you'll be working on, and then you can modify it after that here's a screen shot of the tracker ide with the keyboard, playing sheet. i haven't added in all the goodies yet, but it'll be a piece of cake
|
|
|
Post by Tulio Adriano on Jan 19, 2005 6:34:22 GMT -5
WOW!!! That was a great advance, incredible... Seems my games will have FM sound finaly! One important note is something very common in Genesis game songs: Patch Changes. Many games changes the instruments in the same channel many times to get a "richer" music, with more instruments than channels. That's something very important! Hope there is time to include that fetature in the tracker (if it is not already included ;D ) Thank you very much, Cya!
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Jan 19, 2005 14:55:52 GMT -5
Aright, i'll include instrument patching also All the extra features: PSG Noise, PSG Sequencing, DAC Samples, and Instrument Patching will all turn into assembly language modules. So like, when its time for the noise to turn on, or for the tracker to play something on the DAC, the driver will actually jump out of itself and run that machine language to do whatever effect. While the z80 is running this machine language, its not doing anything with the YM2612 sequencing, so there may have to be adjustments for the delay, or you're going to have to "predict" how long a DAC sample/PSG sequence will play. If a sample plays too quick, it will start playing YM2612 sequencing immediately, if the sample's too slow, YM2612 sequencing may not sound right =P the only reason i don't make the special effects part of the driver is that some people may not use all these effects, and may just want the FM playing . also, doing this will make future add ons very easy without changing the driver at all, and keeping it less than 450 bytes ;P
|
|
|
Post by Tulio Adriano on Jan 20, 2005 7:44:54 GMT -5
Aright, i'll include instrument patching also All the extra features: PSG Noise, PSG Sequencing, DAC Samples, and Instrument Patching will all turn into assembly language modules. So like, when its time for the noise to turn on, or for the tracker to play something on the DAC, the driver will actually jump out of itself and run that machine language to do whatever effect. While the z80 is running this machine language, its not doing anything with the YM2612 sequencing, so there may have to be adjustments for the delay, or you're going to have to "predict" how long a DAC sample/PSG sequence will play. If a sample plays too quick, it will start playing YM2612 sequencing immediately, if the sample's too slow, YM2612 sequencing may not sound right =P the only reason i don't make the special effects part of the driver is that some people may not use all these effects, and may just want the FM playing . also, doing this will make future add ons very easy without changing the driver at all, and keeping it less than 450 bytes ;P It is nice to see all those features will be possible in the FM Driver. The fact is that I have scores for create gamemusic as good as Sonic songs, so what I am trying to do is point all the features I need to translate those scores into FM sound. I have a nice game project and I want to make it using BEX since it is very familiar to my "native" language (VB), instead of going to learn C and ASM only because of it. I hope I can handle the PSG Sequences and FM Music to work together, along with DAC. FM Effects are also planned, I hope there is a way to make them work while the song is playing (like 90% of the genny games). That's it, I am anxious to see next BEX release and next FM Driver release! ;D ;D ;D
|
|
|
Post by Tom Maneiro on Jan 21, 2005 16:41:08 GMT -5
i want to see piano lessons too ;D
|
|
oompa loompa
I AM THE GOVERNATOR
"Git 'Er Dun!"
Posts: 1,301
|
Post by oompa loompa on Jan 22, 2005 2:01:38 GMT -5
bah, jou don't need no piano lessons lol
|
|