Skip to content

Synthesizers

Relanote includes built-in synthesizer support for creating custom sounds. You can use preset synths or define your own with full control over oscillators, envelopes, and filters.

Using Preset Synths

Apply a synth preset to a block using the voice function:

rela
scale Major = { R, M2, M3, P4, P5, M6, M7 }

let melody = | <1> <3> <5> <3> |

; Apply synth preset
let lead = melody |> voice Lead
let pad = melody |> voice SoftPad
let bass = melody |> voice FatBass

lead

Available Presets

Relanote includes 80+ professionally designed synth presets. See the Preset Reference for a complete list.

Piano & Electric Piano

PresetDescription
AcousticPianoWarm, natural acoustic piano
BrightPianoClear, present piano
RhodesWarm, bell-like electric piano
WurlitzerGritty, funky electric piano
ClavinetFunky, percussive

Bass Instruments

PresetDescription
WoodBassWarm upright bass
ElectricBassPunchy electric bass
SynthBassFat electronic bass
SubBassDeep sub-heavy bass
AcidBassSquelchy resonant bass

Brass Instruments

PresetDescription
TrumpetBright, cutting brass
MutedTrumpetSoft, nasal trumpet
TromboneRich, warm brass
BrassGeneric brass section
BrassSectionWide, powerful section

Synth Leads

PresetDescription
LeadClassic versatile lead
SuperSawHuge detuned trance lead
SquareLeadHollow, punchy lead
ResoLeadSquelchy filtered lead

Pads

PresetDescription
SoftPadWarm sustained pad
WarmPadRich, enveloping pad
StringPadOrchestral string pad
ChoirPadVocal, ethereal pad

Classic & 8-bit

PresetDescription
ChiptuneClassic square wave
NESNintendo-style sound
GameBoyNarrow pulse wave
PluckShort attack pluck
StringsSlow attack strings
OrganHarmonic sine organ

Drums (with Pitch Envelope)

PresetDescription
DeepKickSub-heavy kick drum
PunchyKickAttack-focused kick
TightSnareShort, punchy snare
FatSnareBig, roomy snare
ClosedHatTight hi-hat
OpenHiHatSizzling open hat
HighTom / MidTom / FloorTomPitched toms
CrashCymbal / RideCymbalCymbals

Percussion

PresetDescription
HandClapSnappy clap
CowbellPitched metallic
Conga / BongoLatin drums
Tambourine / ShakerRhythm instruments

Modifying Synth Parameters

Use pipe functions to adjust synth parameters:

rela
scale Major = { R, M2, M3, P4, P5, M6, M7 }

let melody = | <1> <3> <5> <8> |

; Filter cutoff (Hz)
let dark = melody |> voice Lead |> cutoff 800
let bright = melody |> voice Lead |> cutoff 4000

; Resonance (0.0 - 1.0)
let resonant = melody |> voice Lead |> cutoff 1500 |> resonance 0.6

; Detune (cents)
let detuned = melody |> voice Lead |> detune 15

; Custom ADSR envelope
let custom = melody |> voice Lead |> adsr 0.1 0.2 0.6 0.5

custom

Parameter Functions

FunctionParametersDescription
cutoff freqfreq: HzFilter cutoff frequency
resonance qq: 0.0-1.0Filter resonance/Q
detune centscents: numberDetune in cents
adsr a d s ra,d,r: seconds, s: 0.0-1.0ADSR envelope

Custom Synth Definitions

Define your own synth with the synth keyword:

rela
synth MyLead = {
  osc: Saw,
  env: { A: 0.02, D: 0.15, S: 0.7, R: 0.2 },
  filter: LowPass(3000, 0.3)
}

synth ThickBass = {
  osc: Saw,
  detune: 10,
  env: { A: 0.05, D: 0.2, S: 0.6, R: 0.3 },
  filter: LowPass(200, 0.5)
}

scale Major = { R, M2, M3, P4, P5, M6, M7 }

let melody = | <1> <3> <5> |
melody |> voice MyLead

Synth Properties

PropertyValuesDescription
oscSine, Square, Saw, Triangle, NoiseOscillator waveform
env{ A: s, D: s, S: level, R: s }ADSR envelope
filterLowPass(Hz, Q), HighPass(Hz, Q), BandPass(Hz, Q)Filter type
detunecentsOscillator detune amount

Oscillator Types

  • Sine - Pure sine wave
  • Square - Square wave (50% duty)
  • Saw - Sawtooth wave
  • Triangle - Triangle wave
  • Noise - White noise

Filter Types

  • LowPass(cutoff, resonance) - Low-pass filter
  • HighPass(cutoff, resonance) - High-pass filter
  • BandPass(cutoff, resonance) - Band-pass filter

Combining with Effects

Synth parameters can be combined with other effects:

rela
scale Major = { R, M2, M3, P4, P5, M6, M7 }

let melody = | <1> <3> <5> <8> |

let processed = melody
  |> voice Lead
  |> cutoff 2000
  |> resonance 0.3
  |> reverb 0.4
  |> volume 0.8

processed

Multi-Part Arrangements

Use synths in full arrangements:

rela
scale Major = { R, M2, M3, P4, P5, M6, M7 }

let song = section "Main" {
  part "Lead" {
    | <5> <6> <5> <3> | ++ | <1> <2> <3> <1> |
  } |> voice Lead |> volume 0.8

  part "Pad" {
    | [<1> <3> <5>] | ++ | [<1> <3> <5>] |
  } |> voice SoftPad |> volume 0.5

  part "Bass" {
    | <1> - <1> <5> | ++ | <4> - <4> <1> |
  } |> voice FatBass |> volume 0.7

  part "Drums" {
    | R - R - | ++ | R - R R |
  } |> voice Kick
}

compose([song])

MIDI Output

When rendering to MIDI, synth parameters are converted to MIDI CC messages:

ParameterMIDI CCRange
CutoffCC#740-127
ResonanceCC#710-127
AttackCC#730-127
DecayCC#750-127
ReleaseCC#720-127
Detune (as Modulation)CC#10-127

This allows DAWs and hardware synths to respond to your parameter changes.

Released under the MIT License.