::|CONTENTS
- Capabilities
- Quick set up
- Links for further development
- See also
SNESMOD is a .it to .spc convertor currently developed by its original creator mukunda and superctr, with contributions from botbrs
Augustus Blackheart and
KungFuFurby (see the snesmod-full release in
Quick set up,
Using a precompiled build).
This is a command line tool, running natively on Windows, macOS and Linux.
Capabilities
SNESMOD lets you compose SNES song in any .it compatible tracker like
Schism Tracker or
OpenMPT, using the first 8 channels of your .it module.
It uses the samples provided in your module, which means you don't have to convert them to BRR as SNESMOD will do it while converting your .it module to .spc. You can use up to 58kB of data for your samples,
AFTER they are converted to BRR.
Volume envelopes are also taken from your .it module, SNESMOD will try to reproduce the IT envelopes instead of relying on
ADSR envelopes like most SNES composing tools.
Echo is supported, it is configured in the module comments, then it can be enabled or disabled by using S0x effects.
There is currently no way to use the SNES white noise generator from SNESMOD.
Some IT features are not supported, including:
- Panning envelopes: you can still control panning using Xxx effects
- Pitch and filter envelopes
- New note actions (NNAs)
- Stereo samples
A much more detailed list of supported and unsupported features is available
here!
Quick set up
Configuration
This part will cover how to install SNESMOD on your computer.
Compiling SNESMOD from source
This consist in producing an executable file from the SNESMOD source code (ie: the code written by the devs). Then you will be able to use the executable file to convert your .it modules to .spc.
No programming knowledge is required to install SNESMOD this way :) If you have troubles, you are welcome to ask for help on the forum or in the Discord/IRC chats!
Getting everything ready
Since the SNESMOD source code is written in the
Go programming language, you first need to install
Go on your system. Go to the
Go download page, then choose and install the option corresponding to your operating system.
Then download the SNESMOD source code from the
SNESMOD GitHub page. If you chose to download it as a .zip archive, extract the files.
Search for a folder called
smconv and open it, you should see a bunch of files with "go" in their names. Now you need to open the
smconv folder in an application that can run command line prompts, like:
- Cmd on Windows
- Terminal on macOS
- On Linux: XFCE Terminal Emulator, Konsole, xterm...
If you are not very confident with these programs, on Windows 10 (and maybe 11) you can open smconv from the file explorer instead. Then type cmd in the bar at the top of the file explorer window, where the path to the current folder is written (replace the whole content of the bar with "cmd"). Now press enter, this will open Cmd right away in the
smconv folder, just as wanted!
Building smconv
Once you managed to open smconv from your command line application, write the following command and press 'Enter':
go build -o build/
It will perform these actions:
- Creating a folder called build within the smconv folder
- Creating the SNESMOD executable file and placing it in the newly created build directory
If everything went well, you should know see a directory called build, containing an executable file called
smconv, this is the SNESMOD executable!
To test if it is correctly working, first open the
build folder from your command line application. On Windows you can reuse the same trick as earlier, or you can make use of your Cmd window that is still opened in the
smconv folder and run the following command:
cd build
(cd stands for "Change Directory")
Then use this command:
smconv --help
If working correctly,
smconv should show you a message explaining how to use it.
You can now proceed to the
Composing section of this article to see how to convert .it modules!
Clean-up (optional step)
On Linux/macOS, after building
smconv you may notice a new folder called
go in your home directory. You can delete it as it is not required by smconv to work properly.
Note: check the GOPATH environment variable page for more information about this 'go' directory).
Actually, whether you are using Windows, macOS or Linux,
smconv is self-contained. So as long as you keep the
smconv executable file somewhere on your computer, you can delete all the other SNESMOD files and
smconv will still work.
In the rest of this article, we will always consider you are using the
smconv command from the same folder as the
smconv executable. If you are experimented with command line programs you can configure your system so that
smconv can be used from anywhere. For instance on Unix based OSes (like Linux and macOS), this can be done simply by copying the
smconv executable file to the
/usr/local/bin directory.
Using a precompiled build
Instead of building SNESMOD from source yourself, you can use a ready to use build made by someone else.
By doing so you will get a version of SNESMOD that is older than what you would obtain by compiling the source code from
GitHub. In addition the currently available builds are only for Windows, but you may be able to use them on a macOS or a Linux system with the help of
Wine.
A first option is a 2009 release of SNESMOD by mukunda, now called
SNESMOD Lite Edition (also called snesmodlite or snesmod-lite).
A more recent and more complete release is available. It is called
snesmod-full and it includes additional work from Augustus Blackheart and KungFuFurby. Take a look into the
doc folder to see what it is all about!
Composing
Converting a .it module to .spc
Before converting your module, you need to be sure it doesn't use any unsupported feature, especially:
- Set pitch slides to "linear" (Amiga pitch slides are not supported)
- In OpenMPT, "old effects" must be set to "off"
In addition to the supported/unsupported features listed above in the
Capabilities section, it can be worth to check the full list in the file called
snesmod_music.txt, from the documentation.
When your module is ready, open the folder containing the
smconv executable from your command line application and convert your .it song to .spc with the following command:
smconv -o song.spc song.it
with "song.it" being the name of your module and "song.spc" the name of the converted .spc file (you are not obligated to keep the same name as the .it module).
If any error is encountered during the conversion, it will be displayed as a text message. These can be really handy to figure out how to correct your .it module!
Before starting to convert your own modules, you can try to convert the
SNESMOD example modules first, as they are correctly written so as to not produce errors when used with smconv.
Obsolete command
When using 'smconv --help' to get information about how to use
smconv, you may be told to convert your .it modules by using this command:
smconv input.it
However this will produce an error with the most recent versions of SNESMOD, use 'smconv -o song.spc song.it' instead.
Usage recommendations
There will be significant differences between how your song sounds when playing the .it module and when you play the converted .spc song. As a consequence, try to convert your song quite often and listen to the .spc file, using for instance
SPCPlay. You should especially be cautious with:
- The SNES Gaussian filter, which is only applied to the .spc song
- The volume envelopes: complicated envelopes may not play well once the .it song is converted to .spc
Often converting your .it module is also interesting in order to ensure it doesn't contain anything that will produce a conversion error.
You can check the SNESMOD documentation for more information:
-
snesmod_music.txt: thorough composition related documentation
-
smconv README file: explains how to use the smconv command (you can also use 'smconv --help')
Links for further development
SNESMOD is still under development, you can check the dedicated
GitHub page!
See also
- The
spc (format) page from the lyceum for information related to SNES composing
-
damifortune's SNES Composing Guide: an extensive guide focusing both on the
C700 VST and SNESMOD
-
nesdoug's SNESMOD tutorial
All related Lyceum articles:
referencing to:
-
MODPlug Tracker
-
spc (format)
-
Schism Tracker
referenced from:
-
spc (format)