3 Subtractive Synth


Voor deze opdracht bouw je een Subtractive Synth. Een spectraal rijk geluid wordt gefilterd om de klankkleur te bewerken. Je gebruikt een sawtooth of squarewave-oscillator in combinatie met een lowpass-filter. Daarnaast ga je een ADSR gebruiken om met note-on en note-off messages te kunnen werken. Ook bouw je een LFO om de cutoff-frequency van het filter te moduleren.

Deadline: 13 maart

Belangrijke objecten in deze opdracht:




Belangrijk:

Gebruik de help-files (alt-click). Bekijk ook de Max Keyboard Shortcuts en Max CheatSheet.

Plaats comments om duidelijk te maken dat je snapt hoe iets werkt.

Maak je patch netjes en overzichtelijk voordat je hem laat beoordelen!




a. Saw Synth & ADSR

We beginnen met een variatie op de Simple Synth uit opdracht 1.

  1. Maak een [saw~] oscillator waarvan je de frequentie kunt bespelen met een [kslider] via [mtof].
  2. Laat een envelope genereren door het [adsr~] object met attack 5ms, decay 100ms, sustain 0.5 en release 500ms.
  3. Maak 4 [live.dial] of [live.slider]-objecten waarmee je de parameters van de ADSR kunt instellen.
  4. Het volume van de ADSR moet worden aangestuurd door de velocity van de kslider. Stuur hiervoor een waarde tussen 0. en 1. naar de [adsr~].
  5. Stel de [kslider] in de inspector in op touchscreen, zodat je note-on en note-off messages kan sturen. Of gebruik een extern midi-keyboard met [notein] of vanuit een m4l-device.

Let op:

Objecten: [kslider], [mtof], [adsr~], [saw~], [*~], [live.dial], [/], [gain~], [ezdac~]/[plugout~]


b. Lowpass Filter

  1. Voeg een lowpass-filter toe aan de output van je synth (vรณรณr de gain-slider). Gebruik [svf~] met de lowpass outlet.
  2. Zorg ervoor dat je het filter kunt aansturen met 2 [live.dial]'s (pas de ranges en namen aan via de inspector). De parameters van het filter zijn de cutoff-frequentie (0Hz tot 11kHz, inlet 2) en resonantie (0 tot 1, inlet 3).

Tips : [svf~], [live.dial]

Luistervoorbeeld B

* SVF staat voor State Variable Filter. Het is voldoende om te weten hoe je het toepast, maar zoek vooral op internet als je er meer over wilt weten.


c. LFO

Maak nu een LFO (Low Frequency Oscillator) die de cutoff-frequentie van het [svf~]-filter moduleert.

  1. Gebruik de amplitude van een [cycle~ 1] als basis.
  2. Vermenigvuldig deze met 300 op signal rate ([*~]) zodat de amplitude van -300 tot 300 gaat.
  3. Zet de frequentie output van de cutoff ([live.dial]) om naar een signaal (met [sig~]) en tel dat op bij het modulatie signaal. Dit signaal zal je nooit gaan beluisteren (veels te hard en DC-offset), maar gebruik je om de cutoff in het filter te moduleren.
  4. Zorg ervoor dat je de volgende parameters van de LFO met dials kunt aansturen:
    • LFO-Rate (0 tot 20Hz) bij de [cycle~]
    • Depth (0 tot 1000Hz) bij de [*~]
    • Offset (cutoff) (0 tot 11kHz) bij de [+~]

Tips : [cycle~], [*~], [+~], [live.dial], [scale~]

Luistervoorbeeld C

(voldoende)

Nog een tip: Gebruik een [live.scope~] om de LFO golfvorm te zien. In de inspector van de scope kan je de low en high range instellen naar 0 tot 11000.


d. Multiple Oscillators

Breid je synth nu uit met extra oscillators.

  1. Maak een extra [saw~] of [rect~] waarvan de frequentie nรฉt iets meer dan een octaaf hoger is (door bijvoorbeeld de grondtoon te vermenigvuldigen met [* 2.01]). Maak de detuning-factor ook variabel met een dial of slider en verzin een zinnige range met [scale].
  2. Maak ook een extra [noise~] of [pink~] die je optelt bij de andere oscillators.
  3. Zorg dat je het volume van de extra saw~ en noise~ zelf kan instellen (met bijvoorbeeld [*~] en [live.dial] of [gain~])
  4. Zorg dat als alledrie de oscillatoren aan staan, het totaal volume niet buiten -1 en 1 komt, dus normaliseren is belangrijk! Met een berekening kan dit verschil in volume gecompenseerd worden (zodat het geheel 3x zachter wordt).

Tips : [saw~], [noise~], [* 0.], [/~]/[*~], [gain~], [live.dial]

Luistervoorbeeld D

(goed)



UITDAGING

(zeer goed)

  1. Gebruik een extra adsr~ of line~ om de cutoff-frequentie van het filter te moduleren bij het bespelen van de kslider en voeg een portamento/glide toe aan de synth.

  2. Koppel Javascript code aan je synth via OSC-berichten. Gebruik bijvoorbeeld XY locatie van de muis om frequency en filter aan te sturen van de synth. Verzin wat interessante mappings!

  3. In plaats van het filter te moduleren met een LFO kun je ook de amplitude van je bron-klank moduleren. Op hogere frequenties resulteerd dit in Amplitude Modulatie (AM), of Ring Modulatie (RM).

  1. Gebruik patches uit het vorige semester om de synth algoritmisch aan te sturen. Kijk hierbij niet alleen naar de noten, maar gebruik ook de velocity, de cutoff-frequency van het filter en parameters in de adsr~!

  2. Probeer je synth polyfoon te maken. Bekijk eens de help-files van [poly] en [poly~].