SNES music program

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
psycopathicteen
Posts: 2904
Joined: Wed May 19, 2010 6:12 pm

SNES music program

Post by psycopathicteen » Fri Jul 20, 2018 9:51 pm

This weekend I started working on my own SNES music program. It's going to use the Mario Paint mouse and will have 3 main sections:

-SPC700 parameters (volume, ADSR, echo enable, etc)
-software synthesizer
-music tracker

The software synthesizer lets you create your own samples from scratch using a combination of additive synth and FM.

My "synthesizer specs" include, up to 4 operators per channel (maybe even 8 operators in the future). Operators can be a selection of waveforms (pulse, square, saw, triangle and sine) with detuning, FM modulation and ADSR settings (though you would have to be careful not to clash with the hardware ADSR).

There would be 5 sample loop settings:
-no loop
-single cycle loop (no detuning)
-multi cycle loop
-single cycle loop with attack (no detuning)
-multi cycle loop with attack

93143
Posts: 1109
Joined: Fri Jul 04, 2014 9:31 pm

Re: SNES music program

Post by 93143 » Sat Jul 21, 2018 5:26 pm

Sounds interesting.
The software synthesizer lets you create your own samples from scratch using a combination of additive synth and FM.
Do you mean offline processing? Are you going to try to do an optimizing BRR encoder?

psycopathicteen
Posts: 2904
Joined: Wed May 19, 2010 6:12 pm

Re: SNES music program

Post by psycopathicteen » Sun Jul 22, 2018 10:00 am

I found out using the Mario Paint mouse is harder than I thought. I thought the directions you move the mouse work the same as the D-Pad, and the 2 buttons are A and B, but I guess I was wrong.
93143 wrote:Sounds interesting.
The software synthesizer lets you create your own samples from scratch using a combination of additive synth and FM.
Do you mean offline processing? Are you going to try to do an optimizing BRR encoder?
I never heard of offline processing before, but it's going to attempt to compute the BRR samples with the 65816 as soon as parameters get changed, then feed them to the SPC700.

tepples
Posts: 21746
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: SNES music program

Post by tepples » Sun Jul 22, 2018 10:14 am

The buttons are X and A, and the cumulative distance is in the sign-and-magnitude of the next 16 bits after the autoreader finishes. For more info, see "Mouse" on NESdev Wiki.

Need code examples? My NES programs with Super NES Mouse support include Controller test, Thwaite, Action 53 menu, and the sound effects editor that comes with Pently. NovaSquirrel has Sliding Blaster. The controller interface on the Super NES controllers works exactly the same way, except that the autoreader has already read the first 16 bits for you.

psycopathicteen
Posts: 2904
Joined: Wed May 19, 2010 6:12 pm

Re: SNES music program

Post by psycopathicteen » Sun Jul 22, 2018 11:17 am

So it's basically

lda $4016
lsr
ror {joypad}

8 times in a row, for 2 bytes.

93143
Posts: 1109
Joined: Fri Jul 04, 2014 9:31 pm

Re: SNES music program

Post by 93143 » Sun Jul 22, 2018 11:19 am

psycopathicteen wrote:I never heard of offline processing before, but it's going to attempt to compute the BRR samples with the 65816 as soon as parameters get changed, then feed them to the SPC700.
What I mean by "offline processing" is essentially just the opposite of "real-time" or "on-the-fly". As in, encoding to BRR once the user has designed the waveform and pushed the RENDER button, rather than live while the track is playing (or, I suppose, while the user is designing the waveform - I can't figure out what you mean by "parameters get changed"). I was wondering if you were going for an optimizing encoder, which I imagine would be easier to pull off without the rigid time constraints of real-time playback.

psycopathicteen
Posts: 2904
Joined: Wed May 19, 2010 6:12 pm

Re: SNES music program

Post by psycopathicteen » Tue Jul 24, 2018 7:22 pm

Got a piano working. Right now it's doing NES style square waves. I'm using hand coded samples that are 64 samples long, with a simple (-.5, 2, -.5} sharpening filter manually applied. I had trouble with aliasing on high notes, so I rounded the values to the nearest 64000/x Hz frequency.
music program.zip
(21.23 KiB) Downloaded 467 times

Erockbrox
Posts: 312
Joined: Sun Nov 23, 2014 12:16 pm

Re: SNES music program

Post by Erockbrox » Tue Jul 24, 2018 11:58 pm

I'm about to download this. I hope that I can plug in my MIDI keyboard and use it with the program. I also hope that the program is has GUI and I can actually understand how to use it.


*crosses fingers*


[edit]

Okay, All I got was this strange SNES rom which had a blue screen and an arrow that just flickered diagonally across the screen. So ???

93143
Posts: 1109
Joined: Fri Jul 04, 2014 9:31 pm

Re: SNES music program

Post by 93143 » Wed Jul 25, 2018 1:53 am

You have to put the mouse in port 2. Gamepad in port 1; it's used to manipulate parameters.

The graphics (other than the mouse pointer) don't work in Snes9X. Gotta use something else.
Last edited by 93143 on Wed Jul 25, 2018 2:02 am, edited 2 times in total.

Nicole
Posts: 218
Joined: Sun Mar 27, 2016 7:56 pm

Re: SNES music program

Post by Nicole » Wed Jul 25, 2018 1:58 am

Erockbrox wrote:Okay, All I got was this strange SNES rom which had a blue screen and an arrow that just flickered diagonally across the screen. So ???
Gotta read the original post a little more closely:
psycopathicteen wrote:This weekend I started working on my own SNES music program. It's going to use the Mario Paint mouse
In other words, this isn't a Windows program for making SNES music. This is a SNES program for making SNES music. Or, at least, it will be eventually, I guess.

psycopathicteen
Posts: 2904
Joined: Wed May 19, 2010 6:12 pm

Re: SNES music program

Post by psycopathicteen » Wed Jul 25, 2018 7:21 am

93143 wrote:You have to put the mouse in port 2. Gamepad in port 1; it's used to manipulate parameters.

The graphics (other than the mouse pointer) don't work in Snes9X. Gotta use something else.
Oh yeah, I forgot. Snes9x is retarded.

EDIT:

Tested it. It's working on Snes9x correctly on my computer.

Erockbrox
Posts: 312
Joined: Sun Nov 23, 2014 12:16 pm

Re: SNES music program

Post by Erockbrox » Wed Jul 25, 2018 11:35 am

I used ZMZ emulator.

Okay so you need an SNES mouse then? Okay I will try it out on real hardware once I get an actual mouse.

User avatar
Fisher
Posts: 989
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: SNES music program

Post by Fisher » Thu Jul 26, 2018 7:21 am

Good idea!
Seems promising!
I'll keep an eye on it.

User avatar
Drew Sebastino
Formerly Espozo
Posts: 3503
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: SNES music program

Post by Drew Sebastino » Thu Jul 26, 2018 7:08 pm

Very interesting idea and certainly ambitious. Do you plan on adding any capability for samples too? That would be great, but I have no idea how you'd get this to work for a multitude of reasons...

KungFuFurby
Posts: 259
Joined: Wed Jul 09, 2008 8:46 pm

Re: SNES music program

Post by KungFuFurby » Fri Jul 27, 2018 7:12 am

My instinct on adding custom samples would require the SRAM to be used and will likely require an external program to put them in there.

Post Reply