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

Bassdrum tips

  • 808 and 909 kicks are based on envelope-filtered triangles
    • Deriving the upper harmonics from a short square ‘click’
    • As well as the triangle before it’s low-passed to almost a sine
    • Using a short, clipped pitch envelope for the punch
      • If you’re sick of Cpt. Hollywood territory, try that
  • Tame the subs: high-passing your kick with a filter around frequency setting 8-11 without resonance does some magic
    • TokyoDawnLabs Prism provides you with insights
      • It’s free—and made by cool folks with scene-related roots

How not to sound like a stereotypical 4kb intro

These are the things I avoided to get a more organic sound instantaneously-none of which being exactly rocket science 😙

  • Presets
  • The default reverb
  • Overcompression and limiting, at best everywhere
    • There’s no compressor in the fr-minus-210 track
      • Just conscious attack to sustain management
    • Srsly: We’ve got nKW PA’s and capable operators
    • -9db RMS are enough for everyone
  • Envelopes attacking in the nanoseconds range
    • Don’t “POCK” unless you really mean to!
  • Unmanaged low-end/sub information, see Bassdrum tips
    • As a rule of 👍: A 12db high-pass with freq between 8-11 doesn’t hurt
      • Especially before potential compression
        • And I’d unlikely use more than a ratio of 1:0.125 on the global

I’d like this to be understood as conversation-starter. If you’ve got any questions, ping me via fediverse, the Pouet thread or Discord (you’ll find me via the demoscene one).

If you’re working on a Sointu track, and could need production- or sound-design perspective, don’t hesitate to contact me. No matter who you are, which group you’re in, how much experience you have (or how bad you deem your music to be).

Operator specific background information

Known issues

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