In light of previous discussions about perceived barriers to the SNES homebrew scene and the samples included with Windows's built-in MIDI renderer not being the best:
Off and on I'm developing a music engine for the Super NES. Users of this music engine (or others such as SNES GSS) will need to produce music that respects the hardware's limits. Just as Bitbeam wrote a post documenting S-PPU limits, I'll document practical S-DSP limits.
With this in mind, how do tracked music composers find samples that are suitably short, sound good when looped, and are clearly free to use? Or should people on no budget be using squares, saws, Digitar plucks, and other things that can be synthesized as part of a game's build process?
Off and on I'm developing a music engine for the Super NES. Users of this music engine (or others such as SNES GSS) will need to produce music that respects the hardware's limits. Just as Bitbeam wrote a post documenting S-PPU limits, I'll document practical S-DSP limits.
- A song should use no more than 8 voices, without Impulse Tracker's "new note actions". This means some techniques like chorus and chords will need to be baked into samples rather than using up a whole bunch of voices. Designate two voices as expendable, as sound effects will stomp them.
- Samples that loop should loop on 16-sample boundaries. This is guaranteed if you resample middle C to a multiple of 4186 Hz or A440 to a multiple of 7040 Hz.
- Samples should total no more than 81920 samples for a particular set of songs that a game can switch among without a blank screen load. When converted to BRR, 81920 samples represent 45 KiB, or 70% of the Super NES's ARAM, leaving the rest for the player, sequences, and echo buffer. Make sure to include samples used by sound effects in this total.
With this in mind, how do tracked music composers find samples that are suitably short, sound good when looped, and are clearly free to use? Or should people on no budget be using squares, saws, Digitar plucks, and other things that can be synthesized as part of a game's build process?