From cbc07764a0f5685c7c7984683b1633e88a88218c Mon Sep 17 00:00:00 2001 From: vsariola <5684185+vsariola@users.noreply.github.com> Date: Mon, 19 Apr 2021 22:00:55 +0300 Subject: [PATCH] feat(instruments): add a few example instruments --- examples/instruments/bass-adam.yml | 37 +++++++++++++++++ examples/instruments/kick-adam.yml | 51 +++++++++++++++++++++++ examples/instruments/snare-adam.yml | 57 ++++++++++++++++++++++++++ examples/instruments/supersaw-adam.yml | 39 ++++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 examples/instruments/bass-adam.yml create mode 100644 examples/instruments/kick-adam.yml create mode 100644 examples/instruments/snare-adam.yml create mode 100644 examples/instruments/supersaw-adam.yml diff --git a/examples/instruments/bass-adam.yml b/examples/instruments/bass-adam.yml new file mode 100644 index 0000000..74e1522 --- /dev/null +++ b/examples/instruments/bass-adam.yml @@ -0,0 +1,37 @@ +name: Bass +comment: | + Author: pestis/bC!. Suggested note: F#1. Originally from: 4k intro Adam. + + Pretty standard sawtooth filter bass. + + Envelope: The attack and decay were adjusted so that the sound is out when triggered every row at 144 BPM. + Distort: The envelope becomes more bell shape than a triangle. + Filter 1: High pass filter to remove the low end. + Filter 2: Low pass filter, with the frequency modulated by the Send (starts high and drops low, for that snap). + Envelope-distort-send: Make the filter 2 frequency drop quickly from high to low, for the "snap". +numvoices: 1 +units: + - type: envelope + parameters: {attack: 48, decay: 63, gain: 128, release: 64, stereo: 0, sustain: 0} + - type: distort + parameters: {drive: 112, stereo: 0} + - type: oscillator + parameters: {color: 0, detune: 64, gain: 128, looplength: 1486, loopstart: 2536, phase: 64, samplestart: 250849, shape: 64, stereo: 0, transpose: 64, type: 1, unison: 0} + - type: mulp + parameters: {stereo: 0} + - type: filter + parameters: {bandpass: 0, frequency: 16, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: filter + id: 1 + parameters: {bandpass: 0, frequency: 22, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: pan + parameters: {panning: 64, stereo: 0} + - type: out + parameters: {gain: 128, stereo: 1} + - parameters: {} + - type: envelope + parameters: {attack: 0, decay: 64, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: distort + parameters: {drive: 32, stereo: 0} + - type: send + parameters: {amount: 79, port: 0, sendpop: 1, stereo: 0, target: 1} diff --git a/examples/instruments/kick-adam.yml b/examples/instruments/kick-adam.yml new file mode 100644 index 0000000..879fdba --- /dev/null +++ b/examples/instruments/kick-adam.yml @@ -0,0 +1,51 @@ +name: Kick +comment: | + Author: pestis/bC!. Suggested note: F#1. Originally from: 4k intro Adam. + + Envelope: Designed to be released after two rows so the kick is active approximately half a beat @ 144 BPM. + Distort: The envelope becomes more bell shape than a triangle. + Oscillator: Pure sine, but modulated (see below). + Filter: High pass filter to remove the low end. + Push-filter-delay-addp: Parallel process the low end to add some reverb & add back to the signal, to add some tail to the kick. Used the exact same coefficients as the main reverb, so they appear in the final .asm only once. + Envelope-distort-send 1: Quickly drop the pitch the oscillator from high to neutral. + Envelope-distort-send 2: A sharp spike ~ 11 ms after kick start, to drop the gain around mid range frequencies. +numvoices: 1 +units: + - type: envelope + parameters: {attack: 36, decay: 69, gain: 128, release: 32, stereo: 0, sustain: 0} + - type: distort + parameters: {drive: 112, stereo: 0} + - type: oscillator + id: 1 + parameters: {color: 128, detune: 64, gain: 128, looplength: 1, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 0} + - type: mulp + parameters: {stereo: 0} + - type: filter + parameters: {bandpass: 0, frequency: 14, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: push + parameters: {stereo: 0} + - type: filter + parameters: {bandpass: 0, frequency: 16, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: delay + parameters: {count: 8, damp: 64, delay: 1, dry: 0, feedback: 96, notetracking: 0, pregain: 32, stereo: 0} + varargs: [1116, 1188, 1276, 1356, 1422, 1492, 1556, 1618] + - type: addp + parameters: {stereo: 0} + - type: pan + parameters: {panning: 64, stereo: 0} + - type: out + parameters: {gain: 64, stereo: 1} + - parameters: {} + - type: envelope + parameters: {attack: 0, decay: 70, gain: 128, release: 70, stereo: 0, sustain: 0} + - type: distort + parameters: {drive: 5, stereo: 0} + - type: send + parameters: {amount: 101, port: 0, sendpop: 1, stereo: 0, target: 1} + - parameters: {} + - type: envelope + parameters: {attack: 48, decay: 58, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: distort + parameters: {drive: 64, stereo: 0} + - type: send + parameters: {amount: 32, port: 5, sendpop: 1, stereo: 0, target: 1, unit: 0, voice: 0} diff --git a/examples/instruments/snare-adam.yml b/examples/instruments/snare-adam.yml new file mode 100644 index 0000000..8177810 --- /dev/null +++ b/examples/instruments/snare-adam.yml @@ -0,0 +1,57 @@ +name: Snare +comment: | + Author: pestis/bC!. Suggested note: F#3. Originally from: 4k intro Adam. + + Main idea is to quickly drop the pitch of a triangle wave (that has harmonics) for the "tom", and add some noise for the "snares". + + Envelope-oscillator-mulp: The "tom". A trisaw, but transpose is modulated (see below). + Envelope-distort-noise: The "snare". + Filter: Only keep the very high end of the "snare". + Distort: Make it loud. + Delay: Add some reverb to make it sound little less synthetic. Used the exact same coefficients as the main reverb, so they appear in the final .asm only once. + Compressor: Tame the transient, boost the tail. + Envelope-distort-send: Quickly drop the pitch of the tom from high to neutral. +numvoices: 1 +units: + - type: envelope + parameters: {attack: 32, decay: 60, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: oscillator + id: 1 + parameters: {color: 64, detune: 64, gain: 128, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1} + - type: mulp + parameters: {stereo: 0} + - parameters: {} + - type: envelope + parameters: {attack: 32, decay: 64, gain: 64, release: 66, stereo: 0, sustain: 0} + - type: distort + parameters: {drive: 32, stereo: 0} + - type: noise + parameters: {gain: 64, shape: 64, stereo: 0} + - type: mulp + parameters: {stereo: 0} + - type: filter + parameters: {bandpass: 0, frequency: 106, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} + - type: addp + parameters: {stereo: 0} + - parameters: {} + - type: distort + parameters: {drive: 112, stereo: 0} + - type: delay + parameters: {count: 8, damp: 0, delay: 1, dry: 128, feedback: 40, notetracking: 0, pregain: 24, stereo: 0} + varargs: [1116, 1188, 1276, 1356, 1422, 1492, 1556, 1618] + - type: compressor + parameters: {attack: 51, invgain: 64, ratio: 112, release: 49, stereo: 0, threshold: 64} + - type: mulp + parameters: {stereo: 0} + - parameters: {} + - type: pan + parameters: {panning: 68, stereo: 0} + - type: outaux + parameters: {auxgain: 0, outgain: 64, stereo: 1} + - parameters: {} + - type: envelope + parameters: {attack: 0, decay: 60, gain: 128, release: 0, stereo: 0, sustain: 0} + - type: distort + parameters: {drive: 5, stereo: 0} + - type: send + parameters: {amount: 90, port: 0, sendpop: 1, stereo: 0, target: 1, unit: 0, voice: 0} diff --git a/examples/instruments/supersaw-adam.yml b/examples/instruments/supersaw-adam.yml new file mode 100644 index 0000000..6b19c34 --- /dev/null +++ b/examples/instruments/supersaw-adam.yml @@ -0,0 +1,39 @@ +name: Supersaw +comment: | + Author: pestis/bC!. Originally from: 4k intro Adam. + + Experimenting with the unison oscillators. Note that all units are in stereo. Try adding even more detune. + + Oscillators: Each oscillator is stereo and has unison of 3 oscillators. The unison oscillators are in addition to the standard oscillator so there altogether 4 oscillators per channel = 8 oscillators. Thus, with three oscillator units, there is a total of 24 saw tooth oscillators, 12 per channel. + Noise-filter: Add some high end hiss to the sound. + Filter: High pass filter to remove the low end. + Outaux: Assumes the aux channel is sent to global reverb. +numvoices: 1 +units: + - type: oscillator + parameters: {color: 2, detune: 48, gain: 16, lfo: 0, phase: 0, shape: 63, stereo: 1, transpose: 66, type: 1, unison: 3} + - type: oscillator + parameters: {color: 126, detune: 78, gain: 16, phase: 0, shape: 64, stereo: 1, transpose: 66, type: 1, unison: 3} + - type: addp + parameters: {stereo: 1} + - type: oscillator + parameters: {color: 2, detune: 59, gain: 16, phase: 0, shape: 64, stereo: 1, transpose: 66, type: 1, unison: 3} + - type: addp + parameters: {stereo: 1} + - type: noise + parameters: {gain: 6, shape: 64, stereo: 1} + - type: filter + parameters: {bandpass: 0, frequency: 128, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 1} + - type: addp + parameters: {stereo: 1} + - type: envelope + parameters: {attack: 50, decay: 64, gain: 96, release: 64, stereo: 1, sustain: 64} + - type: mulp + parameters: {stereo: 1} + - type: filter + parameters: {bandpass: 0, frequency: 32, highpass: 1, lowpass: 0, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 1} + - type: delay + parameters: {damp: 64, dry: 64, feedback: 64, notetracking: 0, pregain: 64, stereo: 1} + varargs: [9187, 9187] + - type: outaux + parameters: {auxgain: 128, outgain: 0, stereo: 1}