Skip to content

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

  1. Create new instrument track
  2. Set to HEX
  3. Loadnote(OP) provides value
    1. Avoid 0x00—reserved for note off
    2. Avoid 0x01—reserved for note hold
  4. Send(OP) to user definable parameter
  • 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

Known issues

  • The pitch of sample-based oscillators shifts with sustained notes
    • Due to x86 assembly-related rounding errors