Banner
Views: 317,625,751
Time: 2014-10-20 09:07:40 PM
14 users online: o Desert-Fox, Fierce Deity Manuz OW Hacker, Fireblast124, FlamingRok, o grishnax, o imamelia, Jimmy52905, Koopster, o Quizler, RodAmaral, scooter102089, shyguyhex, superwiidude, TheDarkOnyx - Guests: 28 - Bots: 15Users: 25,733 (1,111 active)
Latest: ElmotheHacker
Tip: Check out the Current Contests & Events forum to participate in any hacking contests that may be going on.
Accurate SNES Instrument Emulation!
Forum Index - Donut Plains - Computers & Technology - Accurate SNES Instrument Emulation!
Pages: « 1 »
MP3 Sample of C700 in action:

http://bin.smwcentral.net/u/994/3Dworld%2BYI.mp3

(Courtesy of Jimmy52905. Thanks for sharing, dude!)

Hey guys, just thought I'd make this post to share my knowledge with you all! Here's a tutorial on how to make a convincing SNES instrument sound in your favorite (VST-supported) music editor! While this tutorial centers around FL Studio, this method should work for any VST-supported music program. This will not let you insert custom music into Super Mario World (unless you're looking at MSU-1 stuff), but it helps with making an MP3/OGG/WAV sound like a legit SNES chiptune.

No matter your DAW of choice, you can near-perfectly emulate BRR/SPC samples to create some accurate fakebit music with a single VST, though if you're interested in emulating SNES perfectly, this is quite a lengthy read.

The first thing you want to do is download C700 from the page: http://picopicose.com/software.html

No worries—the page is in Japanese, but the program itself is in English. Extract the C700.dll (not the one in the x64 folder. I've heard some people get many unexpected errors from the 64-bit edition) and put it in your VST folder (typically at C:\Program Files (x86)\Image-Line\FL Studio 11\Plugins\VST)

Open FL Studio and insert/replace a channel with C700:


^If you can't find "C700" on the list, make sure that you re-scan for any VSTs, and double-check that C700.dll is in the correct folder.

If you managed to get C700 to open, you should see this window:



Find an SPC with the instrument that you want. http://www.snesmusic.org/v2/ is a great resource for finding SPCs from particular games. (.rsn files act like .zip files, just extract the SPCs as if it were a .zip)

Open the SPC in SPC700 Player, and look at the sample number of the instrument (you might want to mute the other channels to find it).



Open up windows calculator (or any hex>decimal calc you prefer) and press ALT+3 (or View>Programmer Calculator). Convert the value from hex to decimal. (My value was 1F, so the calculator gave me back 31.)

Extract split700's /bin/ folder and move the SPC into it. Run the .bat and find the instrument BRR you need (The folder will get very messy!), then drag the BRR over the waveform in the C700 window:



Alternatively, if you dropped an SPC into the program, scroll up/down to find your instrument (my case was 1f, or 31 in decimal):



At this point you can already place notes, but we need to make the instrument's volume envelope (ADSR) sound even more accurate. Open the SPC up in SPC700 Player again and double-click on the window (or press left/right) to navigate to the ADSR menu. Find your instrument's ADSR:



So in my ADSR:
A = F
D = 7
S = 7
R = 00

If I convert each of those to decimal via calculator:
A = 15
D = 7
S = 7
R = 00

Which is how I would configure my ADSR here:



^While this is accurately converting, C700 treats Release differently in contrast to the standard N-SPC music engine. Un-check Sustain mode for best compatibility results.

Also, I wouldn't recommend controlling C700 directly in the VST, so use 8 MIDI Out ports (or if you use FL, check this out.)
I recommend making all your instruments "mono"phonic by checking the tickbox to the right of the waveform.

Now we have an accurate instrument, there's one last step, which is defining echo and ADSR.



Just find and convert each of these values to decimal, then put the data into C700. Don't forget to enable the echo box for the channels you want to have echo!



EDIT: Forgot to mention, if the value is over $7F, you'd be using negative numbers. $FF would be -1, $FE would be -2, and so on.
If I had $FB, I would use the following formula:

Hex -> Dec
$FB -> 251 = x

(255 - x)
(255 - 251) * -1
4 * -1
-4

Another note: I highly recommend hooking all of your MIDI channels to the VST, rather than having several C700 VSTs open at the same time.

EDIT: Need to change instruments mid-song in FL? Use this to control MIDI Program Changes with note colors: http://blake.so/articulate/

One last note: SNES has a max of 8 monophonic (one note at a time) channels, and echo values are global, and can only be enabled/disabled. You can change the global echo value in the middle of the song, though it is not recommended.

Also, "Drum" channels are just samples, and should be treated no differently than actual melodic ones. The same rules still apply.

Hope this helps everyone interested in non-MML SNES music! (If you're interested in creating MML SPCs, however, I would recommend checking out AddMusicK and PetiteMM, as they are very well-made tools.)
Last edited on 2014-09-26 01:02:57 PM by CrispyYoshi.
crispyoshi,
Thanks for sharing this tool! I have been using it a lot in the past couple of days and I was hoping you'd be able to answer a question about it since there is not a whole lot of info on this tool floating around the web. I have been using this VST to play samples from existing game soundtracks but would like to import my own samples (wav) as well.
When I export a sample in .WAV format from an SPC in SPC TOOL, the format is able to import into the VST. When I use any other .WAV sample that was not generated from SPC tool, the VST does not load the sample. I have tried converting the bitrate in Adobe Audition but I have had no success getting my samples to load.

What .WAV specifications will allow the sample to import?
Is there any tool out there for converting an existing .WAV into a .BRR?

Thanks again for sharing C700, I love it!
Originally posted by josephedward
crispyoshi,
Thanks for sharing this tool! I have been using it a lot in the past couple of days and I was hoping you'd be able to answer a question about it since there is not a whole lot of info on this tool floating around the web. I have been using this VST to play samples from existing game soundtracks but would like to import my own samples (wav) as well.
When I export a sample in .WAV format from an SPC in SPC TOOL, the format is able to import into the VST. When I use any other .WAV sample that was not generated from SPC tool, the VST does not load the sample. I have tried converting the bitrate in Adobe Audition but I have had no success getting my samples to load.

What .WAV specifications will allow the sample to import?
Is there any tool out there for converting an existing .WAV into a .BRR?

Thanks again for sharing C700, I love it!

Hey josephedward! I'm glad to see the SNES love spreading! I actually use SampleTool and a clean Super Mario World rom to import the WAV sample I have.

First, I open the rom in SampleTool. I import this blank bank by clicking "Import from file". After that, I click "Insert" and select my WAV (I recommend you use a lower bitrate like 44100, Uncompressed PCM, and make it mono. You can do whatever, but the sample will be significantly larger.)

Hopefully if the sample wasn't too big (if it was, shrink it!), I click "Play", then I steal the temp.brr file it generates. I open the .brr in a hex editor like XVI32 and add a "00 00" loop point header to the file. After that, I just drag/drop the .brr over C700 and it imports! Loop points can be defined within C700 itself.

Hope this helps!

EDIT: Forgot to mention that .wav start and end loop points must both be multiples of 16 (in decimal). This can be a huge pain, though, because the compression from .wav to .brr can potentially screw up the loop point, if only slightly, and the slightest offset can cause a pop, which could become more (or less) drastic if echo is applied. (That, or I'm just not very good at .wav editing hah)
Last edited on 2014-09-26 01:05:24 PM by CrispyYoshi.
This tool is AMAZING!!! but I have a question... well... for some reason, this tool won't show me the Kick, Snare, and Hi-Hat samples from Lufia and the Fortress of doom.

I've used SSOR95 to extract samples from roms... and I got those samples from using SSOR95... but I can't get them from C700.

Any idea why?

EDIT: Also... do you know if it's possible to convert a .xi / .brr / .smpl into a .wav? I wanna make a soundfont with the samples but it only takes .wav
Last edited on 2014-03-25 12:25:59 AM by Felix Flywheel.
I'm not really sure why it would be doing that, but it's definitely unfortunate.

As for dumping BRRs and converting them to .wav, there's a tool called Split700 which dumps all the .brrs from an existing .spc. In the /bin/ folder of split700 is the .bat you'd use to dump all the .brrs. After you find the BRR you need (by referring to SPC700 Player and the instrument number, explained in the first post) then you drag/drop the BRR file over brr2wav and it's instantly converted. (Credits to gocha for making the tools)
Really loved the VST, but i have a problem, using C700 now I can't use the MIDI OUT channel's pan and volume controllers, do you now how can I use those? I need to use the volume controller in order to make fade in and fade out effects.
Originally posted by alexjavier93
Really loved the VST, but i have a problem, using C700 now I can't use the MIDI OUT channel's pan and volume controllers, do you now how can I use those? I need to use the volume controller in order to make fade in and fade out effects.

I'm really sorry about the late reply, but C700 was recently updated on the download page with monophonic support, and using MIDI Out channels works well with channel pan and note velocity. There's also a Sustain Mode which emulates the standard SNES Release, and I've updated the tutorial to account for it.

Also, if you use FL, this is a great alternative to MIDI Out: http://blake.so/articulate/

It's basically MIDI Out, except you can use piano roll note colors to do things like instrument patching (By changing the Prog) on a single channel.
Last edited on 2014-09-23 05:08:34 PM by CrispyYoshi.
Originally posted by Felix Flywheel
EDIT: Also... do you know if it's possible to convert a .xi / .brr / .smpl into a .wav? I wanna make a soundfont with the samples but it only takes .wav

Whoops, I missed this. split700 includes a program called "brr2wav.exe", which is a simple drag/drop tool and also includes the loop start/end points in the .wav.
Last edited on 2014-09-26 01:11:11 PM by CrispyYoshi.
Thanks for making this tutorial! I have a question and sorry if you already explained it. I have the instruments from Megaman X loaded up and they sound good except there's no "wobble" effect, they sound flat. I want to replicate the effect used in the main synth of the intro stage for example.

What data do I need from the SPC for this or do I need to do something in my DAW?
Pages: « 1 »
Forum Index - Donut Plains - Computers & Technology - Accurate SNES Instrument Emulation!

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2014 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 27

Menu

Affiliates

  • Talkhaus
  • SMBX Community
  • GTx0
  • Super Luigi Bros
  • ROMhacking.net
  • MFGG