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 SequencerTracks 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.