Sointu-sizecoding synth
- Published: 2024-09-06 14:18
- Updated: 2024-10-16 00:22
This is where I’m gathering things ‘I wish I knew’, general and specific patch-related information, and operator background info about Sointu—a stack-based, modular synthesizer and tracker. Aimed at the production of music for sizecoding/Demoscene projects. Developed by pestis. Building upon 4klang by gopher. It’s the synth I used for this 4.9kb intro.
Good to know¶
Sointu or Sointu-Native?¶
- Sointu-Native is the optimized assembler version which
- Gets used in intros and
- Can sound slightly different than the GO-based version
- Which can be considered as ‘in-development’ playground
- On Linux/MacOS, sample-based oscillators require Microsoft’s GM.dls to work
- Find it online and place it in the same folder as the standalone or plugins
Stack¶
- CTRL-D disables/enables a selection of multiple operators
- eg for muting all OPs tied to a complex modulation source
- The UI/icon only disables the selected operator (Not a 🐞!)
Tracker¶
- ‘A’ inserts Note-Off
- Tracks are not tied to instruments
- Adding, re/moving instruments or tracks may have behave unexpectedly
- Not a 🐞!
Parameter automation¶
- Create new instrument track
- Set to HEX
- Loadnote(OP) provides value
- Avoid 0x00—reserved for note off
- Avoid 0x01—reserved for note hold
- Send(OP) to user definable parameter
Patch/sound-design related hints¶
- Notes retrigger envelopes and oscillators
- Longer/continuous modulation needs to be initiated from a separate, or the global instrument
- “Natural“ envelope attack times start at around 2ms
- Faster/in the ns region leans toward harsh transients
- holdfreq as sample & hold:
- Noise > Holdfreq of ‘0’ generates new value at every trigger
- Enabling LP, BP, and HP on the filter = allpass mode
- 24db/oct filter: Two consecutive filter instances with identical parameters
- Embrace the GM.dls samples/type 4 waveform—Hashtag Wavetables
- Simplest compressor operation: followed by mulp
Synthesis tips for coders¶
I’m collecting some hopefully actionable patch-programming tips for coders. Who also make music for intros, and struggle with synthesis. You can find them here.
Operator specific background information¶
- compressor
- Sound-related information:
- RMS/power based design, w/ hard knee
- Ratio reference:
- 1:0 -inf/hard limiting
- 1:0.25 4:1
- 1:0.125 2:1
- 1:1 - disengaged
- Invgain = make-up gain
- Sound-related information:
- filter
- https://www.musicdsp.org/en/latest/Filters/23-state-variable.html
- 12db/oct
- 20hz to 20khz
Known issues¶
- The pitch of sample-based oscillators shifts with sustained notes
- Due to x86 assembly-related rounding errors