Tomorrow is the deadline for the #libremusicchallenge, and I think my #synthwavefromscratch track is in a good enough place for it.
For those of you just joining in, for the past month, I've been making a synthwave track from scratch: no DAW, no plugins. Just C code and some scripting languages on top of that. In other words, I'm using my #sndkit and #gest projects.
The code for the song can be found here:
https://git.sr.ht/~pbatch/gest/tree/master/item/examples/synthwave.lil
...if you don't believe me, compile and render it yourself ;)
#gest #sndkit #synthwavefromscratch #LibreMusicChallenge
At this point in my #synthwavefromscratch track, I'm pretty much down to finishing up the sequencing and doing the final mixing.
The whole thing is written as a program that works with #sndkit DSP algorithms for sound synthesis and Gest doing the sequencing and automation.
When it's all done, the script to generate the whole track will be available in the Gest repository. The current iteration has ~500 lines of LIL code which is used to render a single WAV file.
I hope it's not cheating to use hard sync for the #libremusicchallenge. It's giving my bass sound some teeth in my #synthwavefromscratch track, so I'm keeping it.
#synthwavefromscratch #LibreMusicChallenge
lots of unexpected little bugs have been uncovered in #sndkit thanks to the #synthwavefromscratch challenge I've been making for myself.
Incredibly thankful for GDB and Valgrind. Also very thankful that I only have to troubleshoot single-threaded offline-rendering programs right now.
More progress with my #synthwavefromscratch track today for the #libremusicchallenge! (I am building a synthwave track without a DAW, using just low-level C code with a small scripting language on top.)
Starting to use my gesture sequencer to work out melodies and make automation curves. Also added some a delay-throw on the melody.
I'm up to a 8-16 bar loop now. Hoping to add a little bit more. Another section perhaps? I need to leave enough time to make sure I can publish all the source code before the deadline!
#LibreMusicChallenge #synthwavefromscratch
Here's a classic subtractive 3osc synth bass sound. #synthwavefromscratch #sndkit
set key 36;env [metro [expr (4 * 96) / 60]] 0.001 0.01 0.12;blsaw [mtof $key];blsaw [mtof [expr $key - 11.8]];add zz zz;blsaw [mtof [expr $key + 11.9]];add zz zz;mul zz 0.2;chorus zz 1.0 0.5 0.02 0.1;dcblocker zz;butlp zz 1000;butlp zz 1000;mul zz zz;wavout zz "synthbass.wav";computes 10;
hihat sounds! #synthwavefromscratch
env [metro 8] 0.001 0.01 0.01;mul [noise] 0.5;butlp zz 4000;buthp zz 8000;mul zz zz;wavout zz "hh.wav";computes 10;
synthesized snare with gated reverb. also for #synthwavefromscratch
metro 1;hold zz;regset zz 0;regget 0;env zz 0.001 0.07 0.07;mul [noise] 0.1;butlp zz 5000;peakeq zz 8000 8000 2;peakeq zz 200 1000 5;buthp zz 200;mul zz zz;dup;dup dup;bigverb zz zz 0.97 10000;drop;dcblocker zz;regget 0;env zz 0.001 0.08 0.1;mul zz zz;add zz zz;wavout zz "snare.wav";regget 0;unhold;computes 10;
synthesized kick drum sound using #sndkit and #LIL. This will be used #synthwavefromscratch track.
metro 2;hold zz;regset zz 0;gensine [tabnew 8192];regget 0;dup;expon zz 1 0.1 0.001;scale zz 60 500;tphasor zz zz 0;phasewarp zz 0.2;oscfext zz zz;mul zz 0.5;regget 0;env zz 0.001 0.1 0.1;mul zz zz;regget 0;modalres zz 3000 3;add zz zz;wavout zz "kik.wav";computes 10;regget 0;unhold zz;
#synthwavefromscratch #LIL #sndkit
Continuations on my Synthwave From Scratch project, where I build a Synthwave track from "scratch" without a DAW, using open source DSP code in C, with some scripting languages on top.
I've added an initial lead sound to my track, but I haven't programmed the melody so it's just a single note. The lead is a particularly distinct feature with the synthwave genre, so it's important to get this one right. Both in timbre and in feel.
It seems the base of this sound is typically a modulated pulse oscillator put through some kind of chorus. I have a really nice sounding bandlimited square wave oscillator that worked quite well, but it goes against the rules of this month's #libremusicchallenge (wavetable synthesis only). So, I went with a wavetable oscillator that uses phase distortion synthesis. It has a similar characteristic.
The way vibrato and pulse modulation behaves in the lead sound is key to getting it to feel right. This also influences the kinds of melodies that work. So actually sequencing will come next.
It also helps to dunk the lead in a very bright very large artificial reverb.
#synthwavefromscratch #LibreMusicChallenge