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.
- Maak een
[saw~]
oscillator waarvan je de frequentie kunt bespelen met een[kslider]
via[mtof]
. - Laat een envelope genereren door het
[adsr~]
object met attack5ms
, decay100ms
, sustain0.5
en release500ms
. - Maak 4
[live.dial]
of[live.slider]
-objecten waarmee je de parameters van de ADSR kunt instellen. - Het volume van de ADSR moet worden aangestuurd door de velocity van de kslider. Stuur hiervoor een waarde tussen
0.
en1.
naar de[adsr~]
. - Stel de
[kslider]
in de inspector in optouchscreen
, 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:
- Attack, Decay en Release zijn in milliseconden. Maak daarvoor dials met een range van 0 tot 1000 (integer).
- Sustain is een amplitude-waarde. Maak daarvoor een dial met een range van 0. tot 1. (floating-point).
Objecten: [kslider]
, [mtof]
, [adsr~]
, [saw~]
, [*~]
, [live.dial]
, [/]
, [gain~]
, [ezdac~]
/[plugout~]
b. Lowpass Filter
- Voeg een lowpass-filter toe aan de output van je synth (vรณรณr de gain-slider). Gebruik
[svf~]
met de lowpass outlet. - 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]
* 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.
- Gebruik de amplitude van een
[cycle~ 1]
als basis. - Vermenigvuldig deze met
300
op signal rate ([*~]
) zodat de amplitude van-300
tot300
gaat. - 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. - 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
[+~]
- LFO-Rate (0 tot 20Hz) bij de
Tips : [cycle~]
, [*~]
, [+~]
, [live.dial]
, [scale~]
(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.
- 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]
. - Maak ook een extra
[noise~]
of[pink~]
die je optelt bij de andere oscillators. - Zorg dat je het volume van de extra saw~ en noise~ zelf kan instellen (met bijvoorbeeld
[*~]
en[live.dial]
of[gain~]
) - Zorg dat als alledrie de oscillatoren aan staan, het totaal volume niet buiten
-1
en1
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]
(goed)
UITDAGING
(zeer goed)
-
Gebruik een extra
adsr~
ofline~
om de cutoff-frequentie van het filter te moduleren bij het bespelen van de kslider en voeg een portamento/glide toe aan de synth. -
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!
-
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).
-
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~!
-
Probeer je synth polyfoon te maken. Bekijk eens de help-files van
[poly]
en[poly~]
.