Page 1 of 3

SPC700 Music

Posted: Thu Jul 22, 2010 7:57 am
by NESter
A little question for the chiptune-inclined (rushjet1, Memblers, et al):

For years there has been a burgeoning interest in original 8-bit chiptune music, with sites like 2a03.org and 2a03.free.fr (Chiptune Up!) acting as hubs for artists to share their work. But where is all the original SPC700 music? Why isn't there a SPC scene the way there is an NSF scene?

Obviously the 2A03 has a more distinctive, unique sound to it than the SPC700, but for the life of me I can't figure out why with hardware that has been hacked and documented almost as much as the NES', there aren't more people interested in producing original music in the same vein as Super Mario World, Mega Man 7, or any of the epic Squaresoft RPGs from that era. And I guess the same could be said for Genesis music as well. Am I missing something, or is no one interested in creating 16-bit chiptunes?

Thanks in advance to anyone who responds. :)

Posted: Thu Jul 22, 2010 8:32 am
by koitsu
It's pretty easy to define why there's no "SPC700 scene":

1) The SPC700 is a separate CPU and a lot of musicians really don't have the time/interest to learn its assembly (plus have to be semi-familiar with 65816 to upload their SPC700 code),

2) Documentation on the SPC700, historically, has been fairly lacking -- emulators still haven't gotten the audio completely correct, for example,

3) Lack of development tools. As I understand it, there are a limited number of SPC700 assemblers, and the only way to test your music is to assemble it into a .SMC or equivalent and try on an emulator (or SNES/SFC via copier (e.g. SWC DX)),

4) Lack of musician-friendly tools (read: sequencers, samplers, etc.). For example, doing NES music was basically non-existent until MCK/MML came out, and still wasn't that simple. Once FamiTracker came out we started to see an increase in home-made NSFs.

I realise I'm going to sound like a pompous jerk saying this, but I refuse to see it any other way -- those really are the reasons.

Posted: Thu Jul 22, 2010 8:41 am
by smkd
koitsu wrote:3) Lack of development tools. As I understand it, there are a limited number of SPC700 assemblers, and the only way to test your music is to assemble it into a .SMC or equivalent and try on an emulator (or SNES/SFC via copier (e.g. SWC DX)),
Since this is a decent place to ask, are there any viable SPC assemblers outside of spcas and the one included with WLA? I don't care for WLA's quirks and spcas is very limited. If spcas was on par with xkas feature set it would be great for larger projects. I've used spcas so far and it works, but it was for tiny SPC drivers where the lack of features isn't a big deal.

Posted: Thu Jul 22, 2010 10:01 am
by mic_
and the only way to test your music is to assemble it into a .SMC or equivalent and try on an emulator (or SNES/SFC via copier (e.g. SWC DX)),
Assembling into .SPC and playing it in winamp is a lot easier IMO.

Posted: Thu Jul 22, 2010 10:25 am
by tepples
smkd wrote:are there any viable SPC assemblers outside of spcas and the one included with WLA? I don't care for WLA's quirks and spcas is very limited. If spcas was on par with xkas feature set it would be great for larger projects. I've used spcas so far and it works, but it was for tiny SPC drivers where the lack of features isn't a big deal.
NovaYoshi mentioned an assembler for CHIP-8 (I think) that he wrote as a macro pack for ca65. I imagine that something similar might be possible for SPC700.

Posted: Thu Jul 22, 2010 11:48 am
by Dwedit
Once you have a wavetable synthesizer, you just don't care anymore. SNES, N64, GBA, MOD FILES, it's all the same. Unless you're making music for a homebrew SNES game, you don't need to make SPC700 stuff.

Posted: Thu Jul 22, 2010 3:58 pm
by Memblers
smkd: Another option is to use old Table Assembler. One of the SPC docs I think came with an spc700.tab file which works with it. That assembler works with anything. it doesn't have .incbin, and you also have to type any 16-bit address like !address, but it seemed good enough other than that, when I used it. something like what tepples said is probably better, as it's not all that different from the 6502. though there would be a pretty decent amount of setup work, heh.
Dwedit wrote:Once you have a wavetable synthesizer, you just don't care anymore. SNES, N64, GBA, MOD FILES, it's all the same. Unless you're making music for a homebrew SNES game, you don't need to make SPC700 stuff.
Yeah pretty much, you have to really know the SPC700 pretty well and be able to write code for it to take advantage of any of the unique features.. otherwise it is just an 8 channel MOD file but with compressed samples, limited sample memory (which is compounded by a really low resolution on setting sample loop points). It's challenging enough to make sample loop points that sound decent, but even worse when it has to be looped in blocks of 32 samples or whatever it ends up being (I'm not sure, anyone know off-hand?). If I was going to make my own samples, I would probably write a separate program just to weed out all the unusable loop points.

I tried converting some of my .XMs into SPC, some of them were small enough to fit, but many of them don't. I haven't released any because there aren't many that are all that good, it's all really old stuff and I can just listen to the better-sounding (and familiar to my ears) XM anytime.

Posted: Thu Jul 22, 2010 5:49 pm
by tepples
I seem to remember it's 16 samples (one BRR block). But the trick is to resample all your waves such that the period is a multiple of 16 samples. For example, resample them such that middle C plays at 4186, 8372, 16744, or 33488 Hz, and all your loop lengths will be a multiple of 16, 32, 64, or 128 samples respectively.

Posted: Thu Jul 22, 2010 6:11 pm
by KungFuFurby
I know of SNESMod by mukunda, which converts IT files into SPC files and usable music for your game. It was used in Skipp and Friends.

By the way, have you heard of SNESMusic.org? They do mainly game SPC sets.

And here's a little SNES music gift from me:
Download

This is actually an IT file. This should successfully convert to a real SPC file when run through SNESMod. I'm using the wrong OS to be able to properly see if it works... I'm using a Mac (it is not an Intel Mac).

I am one of the few that would be glad to make SNES music for a future SNES game... of course I don't know what that future SNES game is, so I'm making some music that might be able to come out one day and get used.

Posted: Thu Jul 22, 2010 7:44 pm
by psycopathicteen
Does a Snes tracker need to be just sampled instruments, or can somebody invent a synthesizer that can easily be emulated on the spc700 and use THAT to make music with?

The VGM to SPC conversion a pretty good idea and a step in the right direction, but I don't quite find SMS music the best fit for a Super Nintendo game. Something I always wanted to do was to use the echo delay as a phaser and make distorted sounds with that. I doubt anyone could make a Donkey Kong Country soundtrack just by sampling a bunch of random stuff. They made creative use of hardware features and gave the APU a little software work to do.

Posted: Fri Jul 23, 2010 12:26 am
by NESter
KungFuFurby wrote: By the way, have you heard of SNESMusic.org? They do mainly game SPC sets.

And here's a little SNES music gift from me:
Download
I never knew about SNESmusic.org. They seem to have a larger selection than Zophar's Domain, which is where I usually download SPCs. Thanks!

Oh, and the music---very Chrono Trigger-like! :)

Posted: Fri Jul 23, 2010 6:12 am
by KungFuFurby
psycopathicteen wrote:Does a Snes tracker need to be just sampled instruments, or can somebody invent a synthesizer that can easily be emulated on the spc700 and use THAT to make music with?
If you've heard of SIDMania, then they've done it, although by streaming the musical data. However, I personally prefer to use samples instead of a syntheizer.

I have a collection of pulse waves sampled at 16 different witdths, 32 length each (for a total of 512) in an IT file that should convert over fine, if you want some small samples to try to get that synth-sounding feel.

Posted: Fri Jul 23, 2010 7:00 am
by psycopathicteen
What does the pitch modulation feature on the spc700 do? Is it similar to FM synth on the Sega Genesis, or is it an LFO modulation? It sounds like you can make some cool synth sounds with that feature.

Posted: Fri Jul 23, 2010 8:09 am
by mic_
The Genesis' FM synth is much more than just pitch modulation. Each channel has 4 operators, which in turn can be configured individually and as a group with lots of different settings.

This is more like the PC-Engine's pitch modulation feature; channel N-1 modulates the pitch of channel N. So it shouldn't necessarily need to be an LFO, but simply an O. I guess you'll just have to experiment with it to see if it's useful for the style of music you'd like to create.

Posted: Fri Jul 23, 2010 10:32 am
by psycopathicteen
Dang it! I want to play with that feature!

Whoever said a Snes tracker can't be done? Have a program where you can take a WAV file or draw one, lets you manually squash it down as much as you like so everything can fit in 32k, and tells you how much memory you have left. Allow pitch modulation and echo delay as instrument parameters on every channel track and there you go!