Offline
TSC wrote:

Bump because the front page currently sucks.

lol

Offline
Australia

Just to let you know that this is still in the works.  It's just taking time!  We've got USB dev carts that flash straight out of the compilers into the SNES now so we don't have to stuff around with copying binary files to the SNES.

Main issue at the start was that there was only ever hacked together assemblers for home-brew devs when it came to using the SPC700.  We've gone back to op code level and written our own assembler from scratch.  When you are making the tools so you can make the tools that ultimately make the program that sits on the hardware it gets a bit hectic!  That said - done and working - and the cool thing is we both look at the SPC700 chip architecture / block diagram now and hear every element in our heads as we look at those little pictorial little nodes ;-)  It's kinda a cute feeling.

It's a cool but strange chip kids.  It doesn't have a synth - it's all samples - but with the oddest limitations.  So it's a bit like the Paula on an Amiga, except with dedicated on board memory, double the channel count, a crude amp envelope, panning, a crude effects processor and no on-the-fly access to system ROM (or RAM) for samples.  So the sample length is actually super limited (it has super restrictive onboard RAM ... <64kb for sample data.  Maybe well under 32kb in certain situations - depending on the complexity of your tune.)  But these small samples is where the "SNES Sound" partially comes from.  It also has a really weird hardware CODEC for working with samples.  And a fuzzy-ish but almost etherial downsampling method - which is where the other half of the SNES Sound comes from (along with the iconic low quality DSP effects processor!)

Better still is the story behind the audio chip: It was basically created in secret by DSP genius / chip designer Ken Kutaragi at Sony labs.  I'd love to have the gaps filled in - but the story goes Nintendo had approached several chip manufacturers about making a new audio chip... Ken had bought his daughter a NES and loved the games but was disappointed in the audio.  He went over Sony's heads and agreed he'd have a go at designing a chip for them - developing the hardware in his spare time.  When the execs at Sony discovered what he'd been doing dev for Nintendo in secret they were super pissed off and the rumors are that Ken almost lost his job.  At the time Sony had very little interest in game consoles BUT he was so passionate about this being a vital chip for Sony to manufacture that he persuaded the Sony CEO to side with him.  He then went on to design a Super Nintendo CD expander (long story) but also formed a plan in his head to how he'd build his own gaming hardware.  When licences went pear shaped with Nintendo, he ended up heading the dev teams which designed the Playstation 1, 2 & 3. 

The core of the SNES audio system is probably the most renegade audio chip ever designed.  Probably even outdo-ing the SID / Paula chips for going "over the heads" of restrictions and executive red-tape.  Which, of course, adds to the fuel of us having our hearts set on completing this project to a usable state.  :-)

Last edited by cTrix (Feb 13, 2014 8:30 am)

Offline
Matthew Joseph Payne

ffffffffffffffff

Offline
Jelly Stone park, MD USA

Wow, Too Cool.
Sounds like you are beyond the initial stages but if anyone wants some background on the SPC700 there is a Midibox project wiki that has some info:
http://www.midibox.org/dokuwiki/doku.ph … x_snes_apu
There is a collections of links there also that could be useful.
  Can't wait to see a preview smile Great Progress!
Yogi

Offline
Milwaukee, WI

^__^

Offline
Montreal, Canada

Way cool if somehow there could be a way to directly compose / playback with a real hardware SPC700 - just because.

Also thx to this thread I tried out that awesome C700 plugin. Wow finally there is a real way to load raw sample rips from the roms (I use SPCTOOL) and load them to a dedicated soft sampler. Most of all the all important playback rate is preserved, loading the waves into any 'normal' sampler up samples them to your project so they sound kinda crappy. Also this messes with their loop points' smoothness. 96k is a heaps faster than its native 14-22k.

To boot it also has /that/ echo/delay which finally nails almost exactly the sound.

I do understand how the SNES SPC700 is not really a chip synth per se, more like a small playback only tracker. From what I understand from looking into how the music / sfx are steamed, high level its not much different from a 90s tracker. Just dedicated decoder, ram and DAC.

That echo/delay is cool in itself. Mostly because unlike almost every stereo delay, its 100% mono compatible. Pretty much every stereo delay / reverb uses phase shifts to achieve width whereas the SPC700 sounds equally good in mono or stereo. prolly to be sure its sounds okay on granny's b/w mono tv.

Agreed, most of the 'sound' of a SNES is down to, short samples, low bit rate (gives that muffled quality) and of course being limited to only 8 channels.

Man instead of loading them into EXS24 and using other effects as I've been doing, I'll be using this from now on!

Put me down for a trail run. I've got almost every ship synth (2A03,SID,OPL,AY3) with MIDI except for SPC.

Last edited by lain2097 (Feb 14, 2014 12:58 am)

Offline
Melbourne, Australia

Man, this makes me super excited. Can't wait to see what cTrix and Ferris can cook up.

Offline
Matthew Joseph Payne

There is already an arduinoboy shield that allows for SPC700 playback. Also a circuit that works via serial port.

Offline
.FILTHadelphia

Offline
Jelly Stone park, MD USA
kineticturtle wrote:

There is already an arduinoboy shield that allows for SPC700 playback. Also a circuit that works via serial port.

Is this the project?
http://www.caitsith2.com/snes/apu.htm
Just found this yesterday and went ahead and ordered a PCB. Sort of putting 'the cart before the horse' though; now I need to shop for a SNES donor wink
Would be very slick to send note data in real time to the APU but that would need a whole lot of SPC700 coding skillz.
Here's a demo from one builder
http://youtu.be/Dm9TLXRWUOY
Really liking the S/PDif mod!
Yogi

Offline
Australia
kineticturtle wrote:

There is already an arduinoboy shield that allows for SPC700 playback. Also a circuit that works via serial port.

Of course!  And the good news is you should technically be able to use this tool to export for this unit too.  We are allowing options for both ROM export and SPC export... in other words it takes care of all the SPC700 coding :-)  This is actually why it's taking a while to dev.  It's not just as simple as bang PCM in RAM and point to pattern data in system RAM like a MOD on an Amiga.  The pattern data is all stored on the SPC700 and actually takes a huge amount of RAM ... in fact 5*64*8=2560 or 2.5kb of RAM for each pattern!!  So a full tune, of say, 12 patterns would take almost half the sample RAM.  Once we get the basics going we'll look into a packer on the export side which which will shrink the size of the pattern data.  Probably some kind of delta compression with some a LUT system windowing at 16 rows... so if your tune has repetition it'll shrink down on export.  In that regard it'd be similar to LSDJ's chains and patterns except it auto implements on export.

Doing realtime note on / off via this unit might be possible with the right source SPC and if the SPC is already full of samples.  It depends what kind of DMA this little box has.  You gotta remember the chip does it's own processing so you can essentially bang it full of the right 0's and 1's then issue a "play" command and let it go.  The easiest way to issue a note command would be to use our tool (when it's done) to make some "shell" SPC files which are just samples and no pattern data... then trigger them with the right bitstream - similar to how the SNES might trigger a sound effect.  You'd loose a ton of the functionality though - and loose all the features you get from using a tracker.  Things like note slide, pitch bend, vibrato...  that's the point you'd need to look at some serious coding unless you were happy with just a simple note trigger.

Keep us updated about your thoughts on this lil box :-)

Offline
Milwaukee, WI

Yo, make a new thread for this project!  I want more info forevvverrr! smile

Offline
Matthew Joseph Payne

manI am so excited for this!

Offline

This may be a bit of an ahead of time question, cTrix and Ferris, but what would be looking at interface-wise for this kit? I'm sure it could be solely controller based but then there is the possibility of integrating the Mario Paint mouse which would provide cursor functionality. Again, this feels like an ahead-of-the-curve kind of question, but I'm just curious about what you guys had in mind for the general interface. Anyway, sounds like great work guys. I'm excited to see what comes out of this, it could be really big.

Offline
Canada

I'm sure a new thread will pop up once it's ready to be released, haha.
WAHMO! SNES goodness.

Offline
Australia
tothejazz wrote:

This may be a bit of an ahead of time question, cTrix and Ferris, but what would be looking at interface-wise for this kit? I'm sure it could be solely controller based but then there is the possibility of integrating the Mario Paint mouse which would provide cursor functionality. Again, this feels like an ahead-of-the-curve kind of question, but I'm just curious about what you guys had in mind for the general interface. Anyway, sounds like great work guys. I'm excited to see what comes out of this, it could be really big.

We want to keep it stock / accessible.  It'll be two controllers and the SNES... and that's it!  We don't really need cursor functionality for something that is just a live sequencer tool.  Remember - you aren't writing the tunes on the SNES with this workflow... rather doing that part in Win/OSX/Linux then hitting "compile ROM" to create something you can pop into a SNES to play at shows.  And heavily tweak around (well, is the idea!)

If any one is interested to where we are at:

- SPC700 assembler / compiler working
- Base ROM compile working...
- On tracker & ROM side : 1xx & 2xx commands (pitch bend U/D) and 3xx command (note slide / porta)
- Base timing (BPM) + per frame tempo as Fxx command.  Yes, we can shuffle! (essential cTrix feature)
- Sample import / export.  Still working on some BRR weirdness.  Occasionally I've seen it jam up to +0db and slam full DC voltage into my monitor speakers for no apparent reason.  (alpha's huh - it's why we don't release em!)
- Basic sample features such as envelope / panning.  But we haven't got per note volume working yet (technical reasons) and sample looping is also still to come.  It's step by step at this point.

- We have test tunes that work - albiet very basic ones.  Some pops and clicks, but it seems to be ok :-)

Will keep workin' on it.  See ya in a month or so with an update!!