SYSBAS1B/MAX Practicum
4 - FM Synthesis
Bij deze opdracht ga je een classis FM-synthesizer bouwen in Max. FM staat voor Frequentie Modulatie. Bij deze techniek moduleer je de frequentie van de grondtoon sinusgolf (de carrier) met de amplitude van een sinusgolf van een andere frequentie (de modulator). De frequentie van de modulator is een ratio van de grondtoon, en dit wordt ook wel de harmonicity genoemd. De amplitude van de modulator bepaald de modulation depth (hoeveel gaat de frequentie omhoog en omlaag), ook wel de index genoemd. De grondtoon wordt bepaald door een offset te geven aan de amplitude van de modulator. Lees hier meer.
Belangrijke objecten in deze opdracht:
Lees altijd even de Extra delen nadat je klaar bent. Mogelijk zit er iets interessants tussen dat je kunt gebruiken voor je eindopdracht!
a)
Maak een carrier en stuur de frequentie met een apart [sig~] object aan, stel de frequentie in op 220 Hz. Maak een modulator en stel deze in op 440 Hz. Moduleer de frequentie van de carrier met de modulator door het signaal op te tellen bij de grondtoon. Zorg dat de carrier moduleert tussen 110 en 440 Hz. Luister naar de output via een gain en dac.
Zorg dat de synth bespeeld kan worden met het [kslider]-object en maak gebruik van OF: het [adsr~] object zodat het om kan gaan met note-on en note-off messages OF: het [line~] object in combinatie met [function] zodat je complexe envelopes kunt genereren maar zonder sustain (dus geen note-off gebruiken).
Tip: cycle~, sig~, +~, *~, flonum, gain~, dac~, kslider, adsr~, line~, stripnote, function, slider/dial/multislider, scale
b)
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. Doe de gehele bereking in het signaal-domein. Bedenk een zinnige scaling voor de ratio. Plaats comments!
Tip: *~, sig~, flonum/slider/dial, scale
cijfer: 6
c)
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/slider/dial, scale
cijfer: 7
EXTRA (cijfer: 8, 9, 10, 10+ met eeuwige waardering!)