4 Live Sampler
Voor deze opdracht maak je een live sampler waarmee je stukjes audio kunt opnemen en direct kunt bespelen met een keyboard. Door de spatiebalk ingedrukt te houden maak je een opname. Ook kan je het instrument polyfoon maken door met meerdere voices te werken.
Deadline: 26 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!
De file cello-f2.aif is een sample die standaard in Max zit. f2 is de toonhoogte (87.31Hz). Wanneer je de bestandsnaam als argument invult in een [buffer~], achter de buffernaam, wordt de sample automatisch geladen.
MaxForLive: Voor deze opdracht is het handig om een Max Audio Effect te gebruiken! Je hebt namelijk audio input nodig van de microfoon via [plugin~].
a. Loop de sample
- Zorg dat je de cello-sample als loop afspeelt met
[groove~]en dat je de afspeelsnelheid kunt instellen met een signal, aangestuurd vanuit een floatingpoint number[flonum]. - Maak een
[kslider]aan en implementeer de juiste berekening zodat def2-toets de sample in originele snelheid afspeelt, en alle andere toetsen in verhouding (dusf1een octaaf lager* 0.5,c3een kwint hoger* 1.498, etc.) - Gebruik
[adsr~]om een envelope te maken, en stel de parameters in met 4[live.dial]'s. - Zorg dat de
[adsr~]ook reageert op de velocity van kslider.
Handige objecten: [groove~], [sig~], [mtof], [kslider], [adsr~], [live.dial], [live.gain~], [/]
b. Record & De-click
- Gebruik
[ezadc~]/[plugin~]en[record~]om audio van een mic op te nemen in de[buffer~]. Laat het input-level zien in je patch en gebruik een gain slider om het volume te kunnen regelen. - Gebruik
[key]en de spatiebalk om ervoor te zorgen dat je de opname kunt starten en stoppen. - Het loopen van een sample kan klikjes geven wanneer van het einde naar het begin van de sample wordt gesprongen. Gebruik de sync outlet van
[groove~]om een fade-in en fade-out te genereren (window) die synchroon is met de loop. Dit kan op 1 van de manieren die in de les is laten zien, zoals met een function en shape~, met een buffer en wave~ of met berekeningen.
Tip: [adc~]/[plugin~], [ezdac~]/[plugout~], [record~], [cycle~], [wave~], [shape~], [*~], [live.gain~], [key], [trigger], [select]
c. Vibrato en Portamento
Vibrato is een zweving in de toonhoogte, portamento (of glide of glissando) is het geleidelijk veranderen van de toonhoogte van de vorige gespeelde noot naar de nieuwe.
- Gebruik een LFO gemaakt van
[cycle~]om de afspeelsnelheid te moduleren (vibrato). De modulatie moet rondom de gespeelde toon bewegen, en je moet de frequency en depth kunnen instellen met een slider of dial. Bepaal het bereik zelf met[scale]of via de inspector. - Met
[line~]interpoleer je van de vorige toon naar de nieuwe gespeelde toon. Zorg ervoor dat je de slide-tijd kunt instellen met een slider of dial, bepaal het bereik zelf met[scale]of via de inspector. Je kan zelf bepalen of de sliding plaats vind op de midi-noot, de frequentie (na mtof), of de ratio (na berekening met de grondtoon).
Objecten: [cycle~], [line~], [*~], [+~], [pack f f]
(voldoende)
d. Polyfonie
Je hebt nu een mono sampler. Om akkoorden te kunnen spelen moet je die polyfoon maken. Bij polyfonie gebruik je meerdere kopieΓ«n van dezelfde monofone klank.
Kopieer de patch van a, b of c om polyfoon te maken. Patches b en c hebben meer instellingen waar je rekening mee moet houden bij het opstarten en instellen van parameters, a kan dus wat makkelijker zijn om mee te beginnen.
- Zet de
[kslider]inpolyphonic mode(via inspector), en gebruik een combinatie van[poly 4],[pack i i i], en[route 1 2 3 4]zodat je vier toetsen kunt indrukken. De pitch- en velocitywaardes komen als lijsten uit aparte outlets van het[route]-object. - Bedenk welk deel van de patch gebruikt moet worden voor polyfonie, en gebruik subpatchers of abstractions om dat te doen (4x). Sluit de vier pitch- en velocitywaardes op de juiste manier aan.
- Zorg dat je met dezelfde 4 dials elke
[adsr~]van alle vier de voices kunt aansturen via[inlet]'s (tip: gebruik[pak]en[unpack]) of[send]/[receive]. - Optioneel: Indien je met vibrato en portamento werkt, zorg dan dat de subpatches met goede waardes opstarten en dat je ze kunt instellen voor alle kopieΓ«n tegelijk.
Tip: [poly], [pack], [route], [p] (subpatcher) (of abstraction), [inlet], [outlet], [send], [receive]
(goed)
Uitdaging (zeer goed)
-
Gebruik je Teensy om enkele parameters van de patch aan te sturen! Maak bijvoorbeeld een drukknop om de opname mee te starten, een drukknop om een noot af te spelen en een potmeter (of andere sensor) om de toonhoogte te bepalen. (Tip: Goed om te oefenen voor de eindopdracht)
-
Koppel je sampler aan de OSC-communicatie opdracht van JavaScript. Gebruik de y-positie van 1 touch om de toonhoogte te bepalen. Gebruik de x-positie om de vibrato/slide te veranderen. (Tip: Goed om te oefenen voor de eindopdracht).
- Het gebruik van subpatchers/abstractions is okΓ© voor polyfone patches met weinig voices, maar zodra je 8 of meer voices wilt spelen wordt het al weer veel patchwerk. Bekijk
[poly~](niet poly-zonder-tilde) en de(midinote)-message om efficiΓ«nter met polyfonie te werken en bouw je patch om.
