Hey NESDev folks..
I had this idea and I was hoping you guys could help me out with some of the details
I would like like to make a "drum machine" using the PCM channel. at first i'll be happy with DPCM but eventually i would like to make writes directly $4011 for higher quality audio.
I want to store each sound in its own memory bank, and then just swap in the bank and load the sound on each beat. To program the drum machine I would make a table which contained a list of the different bank numbers to switch between
the loop would be
Get Sound Number
Change bank to Sound Number
Play sound
Wait until end of beat
The main questions I have are:
1. which mapper should I choose to most easily accommodate this plan? I want at least 8 sounds (so 8 banks), though 16 or more would be better.
2. How do I set up the timing to wait before firing the next sound? Is there an easy way? (like just going into a loop of NOPs or something?) ideally i would like variable timing. Will all my sounds need to be the same length for best results?
3. I saw in the documentation about the DMC channel that you can have it fire an interrupt when the sound is done playing.. how does one go about handling the interrupt? or is this even useful? it seems like this might be the easiest way to handle the timing.. just set the play length with $4013 and wait for the sound to end, the fire the next sound
thanks for any insight you could provide
I had this idea and I was hoping you guys could help me out with some of the details
I would like like to make a "drum machine" using the PCM channel. at first i'll be happy with DPCM but eventually i would like to make writes directly $4011 for higher quality audio.
I want to store each sound in its own memory bank, and then just swap in the bank and load the sound on each beat. To program the drum machine I would make a table which contained a list of the different bank numbers to switch between
the loop would be
Get Sound Number
Change bank to Sound Number
Play sound
Wait until end of beat
The main questions I have are:
1. which mapper should I choose to most easily accommodate this plan? I want at least 8 sounds (so 8 banks), though 16 or more would be better.
2. How do I set up the timing to wait before firing the next sound? Is there an easy way? (like just going into a loop of NOPs or something?) ideally i would like variable timing. Will all my sounds need to be the same length for best results?
3. I saw in the documentation about the DMC channel that you can have it fire an interrupt when the sound is done playing.. how does one go about handling the interrupt? or is this even useful? it seems like this might be the easiest way to handle the timing.. just set the play length with $4013 and wait for the sound to end, the fire the next sound
thanks for any insight you could provide