1. Purpose 2. SND file format 3. Examples 4. Development status 5. How to use |
6. Development ideas 7. Copying 8. Requirements 9. See also 10. Downloading |
SND version 3 file format: Position Length Description 0 4 Signature: "SND",26 4 1 Version of file format. We use 3. 5 1 Channelcount. For NES, 5. 6 1 Rate (unsigned integer) How many rows does it play in a second? General values are 50 and 60. 7 9 Unused, set to zero 0x10 n Events, see below Event format: Data Bytes Description 0xFF 1 Next row (submit this row) 0xFD x 2 Submit this row x times 0xFE c t 3 Set channel c (zero based) type: type 1: square type 2: noise type 3: triangle type 4: dpcm 0xFB n sl sh 2+s Redefine PCM sample number n (1-based) Size = sh:sl PCM data follows (bytes 0x60..0x9F) 0xdv c wl wh 4 Alter square wave on channel c: Set duty = d (2,4,8,12) Volume = v (0..15) Wavelen = wh:wl (0..0x7FF) c wl wh v 4 Alter channel c For triangle and noise: Wavelen = wh:wl (0..0x7FF) Volume = v (0..15) For dpcm: Sample number = v (set to 0 to stop sample) Wavelen = wh:wl (0..0x7FF) SNDv3 files are generated by nezplay (produced by a patch to nezplug) from NSF and GBS files. SNDv2 format was proposed to Martin Korth (no$gmb author) for Game Boy music logging, but he ignored the proposition. SNDv1 files were generated by older versions of iNES from NES gaming sessions. Note that SNDv3 files use wavelengths whereas SNDv2 and SNDv1 files use frequencies. Therefore this format isn't backwards compatible.The program converts the SND to MidiS3M with Adlib instruments.
nezplay
by giving it the -l
option on commandline (press L
to stop logging and save).instrument.cc
from sndtool2. Find the GM
and GP
parts, edit the numbers as you want.
The numbers correspond to General MIDI instrument numbers,
for example GM(1) is acoustic grand piano. You can find the
complete list of instruments in midi-gm.c
.make snd
./snd sndfilename.snd >/dev/null 2> tmptmp
- Short version:
./snd sndfilename.snd &> /dev/null
tmptmp
(less -SR tmptmp
to view),
a S3M file in test.s3m
and a MIDI file in test.mid
. (No logfile in case of the short version.) >/dev/null
part of the command is important to prevent
your terminal being flooded with binary data. The binary data is actually
PCM data: the program will resynthesize the song into stdout. If you want
to listen it, you can try this: ./snd sndfilename.snd 2>tmptmp | ecat -m
.
You can find the ecat
program here.
The 2> tmptmp
part of the commandline instructs the shell to
redirect the stderr
of the program into the specified file.
If the shell works properly, the program won't receive the "2" as a
commandline parameter.
You can acquire nezplay
by following these steps:
By the way... you almost certainly need an unix environment to do this all.
I guess Cygwin will do for Windows users.
Nezplay may require Linux, at least
if you want it to output audible sound. It can always output to a file however.
* No warranty. You are free to modify this source and to
* distribute the modified sources, as long as you keep the
* existing copyright messages intact and as long as you
* remember to add your own copyright markings.
* You are not allowed to distribute the program or modified versions
* of the program without including the source code (or a reference to
* the publicly available source) and this notice with it.
Generated from
progdesc.php (last updated: Thu, 25 Sep 2008 23:01:41 +0300)
with docmaker.php (last updated: Wed, 24 Sep 2008 12:27:32 +0300)
at Thu, 25 Sep 2008 23:01:41 +0300