Opdracht 5
Meerlaagse sequencer
Uitgedeeld op 26 nobember 2020
Deadline: aftekenen in de les, uiterlijk 17 december
Stap 1
Maak een nieuw project aan in je csdosc map met behulp van cp -r empty-example *naam-van-je-nieuwe-project
Stap 2
Maak een class aan die je SequencerTrack
noemt. Deze zal symbool staan voor 1 laag in je sequencer. Door de werking van een track in een class te beschrijven kun je er makkelijk meerdere aanmaken. Voor meer informatie over classes en hoe je deze maakt zie de syllabus.
Stap 3
In de constructor van de class maak je alles aan wat de SequencerTrack
class nodig heeft. Een onStates array en een een currentStep variabele. Gebruik this
om de class goed te laten werken. Geluid voegen we later toe aan de class.
Stap 4
Maak een functie om de SequencerTrack
te tekenen, noem deze iets als drawTrack()
. Reken hier de coรถrdinaten van alle stappen uit en teken deze op het canvas.
Stap 5
Maak een instantie van SequencerTrack
door iets te doen als:
seqTrack = new SequencerTrack();
Je kunt nu de drawTrack()
functie aanroepen met seqTrack.drawTrack();
Stap 6
Maak ook een functie om de SequencerTrack
naar de volgende stap (nextStep()
)te laten springen en eentje om de waardes in onStates[]
en stepNotes[]
in te vullen met een super creatief algoritme.
Stap 7
Zorg dat nextStep()
een het sample
afspeelt als de huidige stap actief is.
Stap 8
Zorg ervoor dat een SequencerTrack
een eigen sample
variabele heeft (gebruik this
). Zorg ervoor dat bij het aanmaken (in de constructor()
) van een instantie van de class je een sample inlaad in de sample
variabele. Geef het path
naar deze variabele mee bij het aanmaken van de SequencerTrack
als argument in de constructor.
Stap 9
Als je SequencerTrack
helemaal goed werkt kunnen we er meerdere maken. Maak hiervoor een lege array om alle SequencerTrack
s in op te slaan en een numTracks
variabele om bij te houden hoeveel tracks je wilt maken.
Maak in de setup zoveel tracks als dat je in numTracks
aangegeven hebt en teken deze in de draw functie.
Stap 10 (optioneel maar wel van harte aanbevolen)
Als het goed is heb je nu een werkende multi-track sequencer met meerdere verschillende geluiden. Ga los en maak je sequencer zo als jij dat wilt. Voeg extra functies toe om de sequencer interessanter te maken. Denk aan een manier om het tempo aan te passen, de samples omwisselen, maak de sequencer polyritmisch, voeg swing toe, voeg MIDI functionaliteit toe, etc. etc.