4 RM/AM/FM Synth
Bij deze opdracht ga je een classic RM/AM of FM-synthesizer bouwen in Max (optie 1 of 2). RM staat voor Ring Modulation, en AM voor Amplitude Modulation. Bij deze techniek moduleer je de Amplitude van een sinusgolf met de amplitude van een tweede sinusgolf. Lees hier meer. FM staat voor Frequency Modulation. Bij deze techniek moduleer je de Frequentie van een sinusgolf met de amplitude van een tweede sinusgolf. Lees hier meer.
Deadline: 11 maart
Belangrijke objecten in deze opdracht:
Lees altijd even de Uitdaging nadat je klaar bent. Mogelijk zit er iets interessants tussen dat je kunt gebruiken voor je eindopdracht!
Zorg ervoor dat je je patch goed kunt presenteren bij het aftekenen!
Dat betekent :
- Dat je patch netjes en overzichtelijk is
- Dat je in eigen woorden kunt uitleggen hoe het werkt, en waarom je bepaalde keuzes hebt gemaakt
- Dat er duidelijke comments (
c
) staan die uitleggen hoe onderdelen werken - Dat de patch automatisch met goede waarden opstart
- En dat je je best doet om hem muzikaal te laten klinken, het gaat niet alleen om de techniek!
a. (Optie 1) Simple RM
Maak een carrier (cycle
) en stel deze in op 200 Hz. Maak een modulator (cycle
) en stel deze in op 100 Hz. Moduleer het signaal van de carrier met de modulator en luister naar de output via een gain~
en ezdac~
. Je kunt het spectrum bekijken met [spectroscope~]
Tip: [cycle~]
, [*~]
, [+~]
, [flonum]
, [gain~]
, [ezdac~]
, [spectroscope~]
a. (Optie 2) Simple FM
Maak een carrier (cycle
) en stuur de frequentie met een apart [sig~]
object aan, stel de frequentie in op 200 Hz. Maak een modulator (cycle
) en stel deze in op 400 Hz. Moduleer de frequentie van de carrier met de amplitude van de modulator door het signaal eerst te vermenigvuldigen (modulation-depth) en vervolgens op te tellen bij de grondtoon voordat het de carrier aanstuurt. Zorg dat de carrier gemoduleerd wordt tussen 100 en 300 Hz. Luister naar de output via een gain~
en ezdac~
. Je kunt het spectrum bekijken met [spectroscope~]
Tip: [cycle~]
, [sig]
, [*~]
, [+~]
, [flonum]
, [gain~]
, [ezdac~]
, [spectroscope~]
b. Play it!
Gebruik de [kslider]
in 'touchscreen' mode om de frequentie van de carrier in te stellen en de velocity te gebruiken. Maak gebruik van OF: het [adsr~]
object zodat de synth kan omgaan met note-on en note-off messages OF: het [line~]
object in combinatie met [function]
zodat je complexere envelopes kunt genereren maar zonder sustain (dus geen note-off gebruiken). Gebruik user-interface objecten om de parameters te kunnen aanpassen, zorg dat de objecten een zinnige scaling krijgen die aansluit bij de waarde die ze besturen. Plaats comments!
Tip: [kslider]
, [adsr~]
, [stripnote]
, [/ 0.]
, [slider/dial/multislider]
, [scale]
(cijfer: 6)
c. Modulator Ratio
Zorg dat de frequentie van de modulator een ratio van de grondtoon is, en dat dit ratio ingesteld kan worden met een user-interface object. Bedenk een zinnige scaling voor de ratio. Gebruik eventueel het [preset]
object om settings voor je parameters op te kunnen slaan en zorg dat alles bij het opstarten een waarde krijgt. Plaats comments!
Tip: [*~]
, [* 0.]
, [flonum]
/[live.slider]
/[live.dial]
, [scale]
, [preset]
(cijfer: 7)
d. (Optie 1) RM > AM Modulation Depth
Maak een toevoeging waarmee je de hoeveelheid modulatie kunt instellen met een user-interface object (modulation-depth). Bij depth = 0
moet de modulatie uit staan en hoor je alleen nog de carrier (grondtoon), bij depth = 1
is de modulatie volledig. Voor deze toevoeging kan het handig zijn om de modulator eerst unipolair te maken.
Tip: [*~]
, [!-~]
, [-~]
, [sig~]
(cijfer: +1)
d. (Optie 2) FM Modulation Index
Zorg dat de modulation-depth (index) een ratio is van de Frequentie van de modulator. Voer de berekeningen uit in het signaal domein. Gebruik een user-interface object om de modulatie mee in te stellen en verzin een zinnige scaling.
Tip: [*~]
, [sig~]
, [flonum]
/[live.slider]
/[live.dial]
, [scale]
(cijfer: +1)
UITDAGING (cijfer: 8, 9, 10, 10+ met eeuwige waardering!)
-
Combineer de AM en de FM synth, maak bijvoorbeeld een AM die de Modulation Index van de FM aanstuurt. Veel opties mogelijk! Experimenteer!
-
Maak een Uni-polaire LFO met dezelfde technieken als de AM-Synth. Voeg deze toe als extra effect onderin de chain. Probeer eens verschillende waveforms zoals phasor~, train~ en triangle~.
-
Maak extra envelopes met
[line~]
of[adsr~]
om de modulation ratio, modulation depth, harmonicity, index van de AM of FM aan te kunnen sturen. -
Maak een complexere fm-synth door meerdere carriers en/of modulators toe te voegen (denk aan hoe Native Instruments' FM8 werkt of bijvoorbeeld de classic Yamaha DX7, op internet zijn wel zogenaamde FM Algorithms te vinden, schematische weergaves van hoe carriers en modulators aan elkaar verbonden zijn).
- Maak de synth polyphonic (verdiep je in het
[poly~]
object en het maken van abstractions).