SPC Echoes

Battle ended 2014-10-05 14:00:00

28 Entries

Info and Rules
Hear All
28 Entries
Level 27 Renderist
post #47459 :: 2014.08.29 9:53am
  Potentialing hæitd this
  JINTAKE, tothejazz, goluigi, mootbooxle, Zillah, raphaelgoulart, Savestate and kfaraday liēkd this
es pee see see see see see see see...
Level 26 Chipist
post #47460 :: 2014.08.29 10:25am
  Zillah liēkd this
i was expecting remix/allgear compo but this is good too
Level 27 Chipist
post #47462 :: 2014.08.29 11:32am :: edit 2014.08.29 12:57pm
  raphaelgoulart, b00daw, Savestate, goluigi and Zillah liēkd this

Oh, and I think now is the time to correct that filesize bug in the actual program. SNESMod makes .spc files that are 13,312 bytes too large, so simply replace file.ZeroFill( 65535 - (EndOfData - StartOfModule-MODULE_BASE) ); with file.ZeroFill( 52224 - (EndOfData - StartOfModule-MODULE_BASE) ); in it2spc.cpp and recompile.

And another note... I will be watching out for memory overflows caused by not realizing that echo actually consumes memory on the SPC700!
Level 27 Chipist
post #47463 :: 2014.08.29 1:10pm
Do you have any recommendations for proof testing whether it would play properly on a snes? (ie anything that emulates the soundchip really well, codes of practice, handy do's and don'ts etc)
Level 24 Chipist
post #47465 :: 2014.08.29 1:57pm
Level 27 Renderist
post #47466 :: 2014.08.29 2:42pm
  Moose liēkd this
b00daw will be giving free 7's to those using SPC generated noise, btw.
Level 18 Chipist
post #47467 :: 2014.08.29 2:46pm :: edit 2014.08.29 2:47pm
@gotoandplay I'm not sure, but I believe Audio Overload is a very accurate SPC player. It's obviously not perfect, but it's worth a shot unless someone here can render SPCs on an actual machine.

@b00daw YES.
Level 26 Chipist
post #47468 :: 2014.08.29 8:23pm :: edit 2014.08.29 8:32pm
@b00daw how does one even use spc generated noise with snesmod wowwww
also @kff could you please give me a fixed version of snesmod? i've no idea on how to compile stuff asklfsajlf im a n00b golgi already gave me, thx tho aslkfsjf
Level 27 Chipist
post #47469 :: 2014.08.30 2:16am :: edit 2014.08.30 2:19am
  Savestate, b00daw, raphaelgoulart, goluigi and cce liēkd this
@Moose: Audio Overload is acceptable under the condition that you're using a late enough version.

@raphaelgoulart: That requires a specially modified version of SNESMod. I have the binary on hand, but you'll have to hex-edit the file manually. Speaking of binary, here it is: https://app.box.com/s/dvdce0j9q853einjem7l

In addition to copying the binary to $500-$1AF6 in the .spc file, you need to put in a #$03 into $01F4, and a #$01 into $01F5. If you want to start anywhere other than order number zero, just modify $01F7 to be your desired order number.

All you need are these brand new effects (not used by Impulse Tracker):

S05 ~ Turn on pitch modulation for one channel
S06 ~ Turn off pitch modulation for one channel
S07 ~ Turn on pitch modulation for all channels
S08 ~ Turn off pitch modulation for all channels
S09 ~ Turn on noise generation for one channel
S0A ~ Turn off noise generation for one channel
S0B ~ Turn on noise generation for all channels
S0C ~ Turn off noise generation for all channels

S1x-S2x ~ Noise frequency (take away 10h to get your frequency)
Warning: Noise frequency applies to all channels that have noise on

S92 ~ Mute channel (but still give it an output for pitch modulation)
S93 ~ Unmute channel

These might overlap with unofficial add-on effects that have been applied since the original Impulse Tracker... but SNESMod doesn't support those effects in the first place. Thus, I use them for the bonus features instead. They might affect playback when you're originally making the song in an unintended fashion, just to note.
Level 26 Chipist
post #47470 :: 2014.08.30 6:07am
thanks a lot kff! doubt i'll use it tho, seems a bit complicated, but if my file end up being too big, i could use that to save a bit of space - pretty sure spc generated noise is smaller than hi-hat/crash samples :D
Level 27 Chipist
post #47471 :: 2014.08.30 9:35am
  raphaelgoulart liēkd this
Yeah. Just make sure you use looping samples if you intend on doing so to act as your "dummy samples". Otherwise, your noise can get cut short.
Level 26 Chipist
post #47494 :: 2014.08.31 3:05pm :: edit 2014.08.31 3:05pm
is there any example of a snes song that uses such noise generator?
Level 27 Chipist
post #47495 :: 2014.08.31 3:20pm
  Savestate and raphaelgoulart liēkd this
Try the Air Calvary soundtrack, found on SNESMusic.org, specifically "Good Luck and Good Hunting".
Level 10 Chipist
post #47528 :: 2014.09.02 6:43pm
So, I am also terribly new at writing .scps. I keep having notes disappear in the upper registers? Is there any way to work around this? And I would not say no if I could the edited version of snesmod =)
Level 14 Chipist
post #47540 :: 2014.09.03 12:37pm
  raphaelgoulart liēkd this
how do i maek the es pee cee

also sup kungfu
Level 26 Chipist
post #47542 :: 2014.09.03 2:14pm :: edit 2014.09.03 2:14pm
  Xenon Odyssey liēkd this
you can use openmpt to make an 8-channel .it file with specific limitations and use snesmod to convert it
on this specific compo you've gotta add spc echoes though (hence its name haha) but that's not difficult either
the limitations you gotta pay attention to when making the .it file and how to add echoes are in snesmod's readme file
there are other ways to do so (ex.: mml) but snesmod is the easiest, i think
Level 27 Chipist
post #47543 :: 2014.09.03 3:06pm
  raphaelgoulart liēkd this
@MrWimmer: You need to downsample your samples in order to use higher pitches. This is a hardware limitation. Best bet is to cut your lengths in half (make sure your loop points are also divisible by 32 or something that goes into 16 evenly for best results) so you can use those higher pitches... either that, or work around this upper pitch limitation.
Level 28 Chipist
post #47545 :: 2014.09.03 6:32pm :: edit 2014.09.03 6:32pm
  raphaelgoulart liēkd this
kungfufurby, can you make some sort of example module and spc with how your spc noise thing works?
Level 27 Chipist
post #47558 :: 2014.09.04 10:46am :: edit 2014.09.04 10:47am
  raphaelgoulart liēkd this
Ultimate Chip Adventure shall be the example .spc file, and this is its source .it file: https://app.box.com/s/mmkey96ubczei82lzgk5
Level 14 Chipist
post #47561 :: 2014.09.04 5:12pm
dunno if I'll have time to learn a new tracker but we'll see what happens
Level 26 Chipist
post #47566 :: 2014.09.04 9:08pm
openmpt is easy to use! you can get the hang of it in few days
Level 23 Mixist
post #47567 :: 2014.09.04 9:23pm
  raphaelgoulart liēkd this
openmpt is the easiest tracker/music making program I've used... so far.
Level 24 Mixist
post #47778 :: 2014.09.12 9:01am
  Dimeback, bazz, cce, gotoandplay, tothejazz and Moose liēkd this
hey i wanted to share a little technical something i stumbled onto lately with snes sound design.

i often run into problems using the more 'sophisticated' samples, aka more complex waveforms like flutes, strings, etc(stuff that's not simple chippy waveforms) in that they usually either sound too muddy or too thin for how i end up using them in my cramped 8 channel arrangement.

the problem is of course working with these lower sample rates. there's just not much harmonic content, so you have to really stick close to the notes where they were orginally sampled...but even then things can get muddy or thin.

i've read interviews, some of the old snes composers lamented over how difficult it was to get a set of samples that sounded good together. "once you finally found some that worked well together, of course you'd keep using them over and over in other games..."

anyway, i was doing a midi transcription of the snes rainbow road yesterday and discovered something really neat that happens soon after the intro:

when the xylo-sound first comes in, the melody D-E-F-G-D etc, it's set in the fifth octave. arrangement wise it belongs up there because all the brass stuff is happening an octave below, however i noticed my midi arrangment sounded quite thin and weak with it up there in the fifth octave.

there was something unique going on within the mariokart xylo sample itself, so i decided to take a closer look: https://www.dropbox.com/s/q28wy8vfhz6foca/snes_mariokart_xylo.png?dl=0

there's a subharmonic in there! when i applied the subharmonic with a similar ratio to my midi transcription, it sounded just right. there are also a lot of other very clever things they did with their samples, but i'll save that for another time.

so what does this mean?

it means that you can use acoustics to your advantage to further overcome the challenges of low fidelity and limited channels. there are samples that have a similar 3:1 or 5:1 ratio applied to the first octave above the fundamental to give it a bit more presence.

also it's good to keep in mind is that that overtones contain harmony within them! snes mariokart used this to their advantage as well, they did a lot of really clever things. when considering an arrangement and how to make it sound deep and full with samplerate-dictatedly dull samples and limited channels, you can use harmonics as a way to simultaneously augment your arrangement while adding harmonic excitement.

PRACTICAL BOTTOM LINE: if your sample is feeling a bit too thin, add a subharmonic an octave below. if it's too muddy, try layering a pitched up copy of itself an octave above. make sure to lower the volume of your added harmonic, a 3:1 fundamental to harmonic ratio is a good starting place.

you can do this with audacity: just layer two instances of a sample over one another, pitch one up/down an octave and then lower its volume. keep playing with the ratio and check how it sounds in your song until it sounds the way you want.

there's also ways you can muck with harmonics via loop points, but i prefer to just edit and resample. audacity does the trick. and of course the snes delay brings life to things as well...
Level 16 Mixist
post #47904 :: 2014.09.18 4:29am
  goluigi and raphaelgoulart liēkd this
This is very last minute, and I'm probably grasping at straws here, but smconv.exe refuses to open for me. It just opens then closes in less than a second. Can anyone help?
Level 28 Chipist
post #47905 :: 2014.09.18 4:34am
  raphaelgoulart liēkd this
jowlsucks, you're supposed to drag and drop the .it file to smconv.exe or use the command line to run it, it's not a gui application
Level 28 Hostist
post #47907 :: 2014.09.18 10:31am
  Xaser, Moose, raphaelgoulart, jowlsucks and tothejazz liēkd this
Derp, an extension appears!
Level 23 Mixist
post #47909 :: 2014.09.18 1:33pm
Level 16 Mixist
post #47910 :: 2014.09.18 1:50pm :: edit 2014.09.18 6:48pm
  raphaelgoulart liēkd this
goluigi, I have been attempting that, but the program keeps crashing before the SPC conversion can happen. Even in the command prompt, it refuses to cooperate.

also thanks for the extension puke

@shinyjiggly yes
Level 10 Playa
post #47912 :: 2014.09.18 3:07pm
  raphaelgoulart and KungFuFurby liēkd this
do you have the samples in instrument mode?
Level 27 Chipist
post #47913 :: 2014.09.18 3:27pm
Level 26 Chipist
post #47923 :: 2014.09.19 9:11am :: edit 2014.09.19 9:20am
i've had an idea
why dont we do an snes rom with all (or the top x) songs of the compo, after its finished? it would probably be interesting
even though im not sure all songs would work properly in an emulator or even real hardware or something idkkkkk im a n00b
edit: i found this http://www.alpha-ii.com/Download/SPC2R110.rar and it seems interesting (drag n drop the spc into this and open in yr fav emulator)
it worked perfectly with my golgicollab (i use snes9x btw)
Level 16 Chipist
post #47925 :: 2014.09.19 11:26am
  raphaelgoulart liēkd this
I was thinking about the same sort of thing but old school demoscene style. Like some sort of Battle of the Bits MegaDemo. I've converted some old demos to use ca65 here:

Level 27 Chipist
post #47926 :: 2014.09.19 11:39am :: edit 2014.09.19 11:57am
  cce, raphaelgoulart and goluigi liēkd this
You have three sound drivers to learn how to switch between them if you want to avoid having to reset the system to switch (these are the only ones that I know of that have actually been used): XMSNES, SNESMod, and the Super Mario World sound driver (or AddmusicK). My special SNESMod sound driver is backwards-compatible with the original, so that doesn't count... but that does mean you have to load that particular version for all of the songs. Shouldn't affect the end results.

Super Mario World's sound driver is probably the easiest (I think the SPC700's boot routine is used every time to load data if my recollection is correct). What helps is that I have personally dealt with locating the original routine that handles the bankswitching in the game itself, so I can doubly help you in that regard. The catch is that safe-cracking was required on the original bank modifier that I came up with. I'll even specify the instructions here... Simply store an $FF to $2141, then execute the routine that handles the boot ROM.

SNESMod is medium difficulty (you can switch back to boot ROM via a command ID that is programmed in SPC700 assembly already). The catch is that I don't think the corresponding 65C816 code was programmed... so you'd have to program that yourself.

XMSNES is by far the hardest because you have to invent all of the code to go back to the boot ROM (I found no native code to go back to the boot ROM). Therefore, this one requires a full blown hack in SPC700 ASM. Thankfully, it looks like you have free space in the actual code to do your magic to add such a command. Just remember... you have to program both the SPC700 assembly and the SNES portion to be able to switch sound drivers. This is also by far the least supported sound driver, because the developer discontinued it (this is the same person that went on to do SNESMod).

Worse, you have to work off of raw hex data for all of this stuff and manually sort out every single piece of data by category (especially when it comes to missing sources). That won't be fun.

And beware! The earliest song that I know of that's in .spc format on this site (Green Mountain) does overflow on the echo. I made a bugfixed version, but I was unable to keep all of the echo parameters intact due to insufficient memory. You also have memory relocations to deal with in this particular instance, which is easy to resolve by simply implanting some code with the SPC700 boot routine.
Level 16 Chipist
post #47931 :: 2014.09.19 12:08pm
I write all of my songs in .xm format* and convert them to .it using code from schimtracker (I also use this process to strip out any unsupported commands). It seems like it would be simpler, if given the source .xm files, to convert them to use snesmod.

*I use a modified version of SoundTracker for Linux.
Level 27 Chipist
post #47932 :: 2014.09.19 12:15pm
I'd rather use the original sound drivers, or at least versions that can be swapped on the fly without resetting the SNES. Thus...

- Super Mario World sound engine (Addmusic might qualify, as long as I can still load data the old fashioned way via the boot routine).
- A special version of XMSNES that has code to switch back to the boot routine.
- My special version of SNESMod with noise generation and pitch modulation.

It might also be a good idea to add a piece of code that simply clears all of the memory except for itself before loading the next sound driver. Loading methodologies should be as close to the original as possible (essentially loading per whatever defined fragment there is).

We have nearly 100 pieces of music to deal with here from a wide variety of artists, so original sources might be a no-go for every single one.
Level 16 Chipist
post #47933 :: 2014.09.19 12:28pm
Well, it will probably be a couple of weeks before I can even begin looking into this as I have other projects going on but I should have everything needed to get started.
Level 26 Chipist
post #47934 :: 2014.09.19 12:34pm :: edit 2014.09.19 12:35pm
  jowlsucks liēkd this
My idea was for this compo specifically, it's interesting to know it's possible! But I've no idea how to program stuff for the SNES (I barely know java!)
I don't think anyone used XMSNES in this compo so we'd only have to deal with the easy and medium difficulty situations.
And it'd be even more interesting if we managed to do a fully working SNES cartridge with the songs on this compo! My idea would be to make it kinda like the 2A03 Puritans Cartridge
, maybe even sell it, idk (I would certainly purchase one, even though I (still) don't have a SNES)
Level 16 Chipist
post #47940 :: 2014.09.19 11:57pm :: edit 2014.09.23 11:45am
  raphaelgoulart liēkd this
I was thinking for this compo only and working on the songs from other ones later if there is some interest.

here are a couple of example roms:
http://www.morganleahrecords.com/augustus/blackheart/rom/sf.sfc (640K)

http://www.morganleahrecords.com/augustus/blackheart/rom/snesmod2.smc (8.0M)
Level 19 Chipist
post #48103 :: 2014.09.28 5:08pm
  Lukas Eriksson and raphaelgoulart liēkd this
I love this major compo, fantastic! :)
Level 26 Chipist
post #48104 :: 2014.09.28 5:11pm
i'm excited with the possibility of us making a snes rom/cartridge with all the songs in it :D :D
Level 18 Chipist
post #48106 :: 2014.09.28 6:22pm
  jowlsucks and raphaelgoulart liēkd this
I have all the SPCs here and the good news is their total uncompressed filesize comes at under 2MB, which means we might actually be able to pull this off!

Unless I'm totally off the mark and each SPC needs a ~128k sound driver to work properly on a machine or something.
Level 26 Chipist
post #48109 :: 2014.09.28 6:36pm
we probably can pull it off even at larger filesize, one of the roms augustus linked is 8mb big
Level 28 Chipist
post #48113 :: 2014.09.29 12:33am
any ~~~~*@*@83woooOOOoOOOooooOO000000000000oooord~~~~ about that spc tracker some guy (i think ctrix) was making??
Level 16 Mixist
post #48114 :: 2014.09.29 4:27am
Maybe if there is a lot of rom room left, we could add .spc's from other compos!
Level 27 Renderist
post #48115 :: 2014.09.29 4:59am :: edit 2014.09.29 5:06am
  raphaelgoulart liēkd this
Moose: You could even use the SPC2 tools to compress them further so that they are even smaller!


SPC2 was designed by kevtris (same person responsible for NSF) to be playable by hardware and allow for a multitrack file. :)
Level 26 Chipist
post #48116 :: 2014.09.29 6:04am :: edit 2014.09.29 6:05am
the sp2 file http://puu.sh/bSyT2/96e7d3fa1f.sp2
now.....what does one do with that? lmao
Level 27 Renderist
post #48122 :: 2014.09.29 12:43pm
either play it on hardware or code an emulated player for it. :P
Level 26 Chipist
post #48149 :: 2014.09.29 8:26pm
i dont have a snes but how does one play it on hardware? just my curiosity here :P
does one need to put it on a rom, somehow?
as i already stated (i think) im a n00000000000b
Level 14 Chipist
post #48153 :: 2014.09.29 9:57pm
  raphaelgoulart liēkd this
I record my SPCs using an SD2SNES flashcart, which can play back SPCs in the file browser when selecting a game.

Also, from what I understand a ".sp2" (or any .spX, really) is just a renamed .spc file. That .sp2 fails to play back for me in SPC700 Player, though...
Level 27 Renderist
post #48166 :: 2014.09.30 5:21am
  raphaelgoulart liēkd this
Nah... It needs its own player. I'll get back to y'all in a bit when I ask the right people. SP2s are compressed by chopping up the SPCs into banks, dupe checks the banks, deletes the dupes, then orders them for replay. Almost the same as an SPC. :)
Level 27 Renderist
post #48376 :: 2014.10.06 6:25am :: edit 2014.10.07 6:20pm
  Moose and raphaelgoulart liēkd this
Congratulations to Moose and others!

An SPC2 SNES/SFC software player library is being drawn out and planned at the moment. *fingers crossed*

Unrelated, but kevtris (father of many (or most) chipmusic formats (including NSF and SPC2)) has also verified that the SNES Echoes .sp2 works on his FPGA spc/sp2 player. :)
Level 31 chipist
post #48884 :: 2014.10.21 3:23pm
  puke7, Moose, raphaelgoulart, jowlsucks and KungFuFurby liēkd this

LOGIN or REGISTER to add your own comments!