4 Snooze
In deze opdracht ga je een snooze functie programmeren voor je wekker. Met de snooze-button kan je het alarm uitzetten en na een tijdje weer opnieuw laten afgaan.
Tip: Lees de hele opdracht door voordat je aan de slag gaat. Denk je systeem van tevoren uit, bijvoorbeeld op papier. Bedenk eerst wat er logistiek moet gebeuren en breek dit op in verschillende onderdelen. Er zijn meerdere manieren om dit systeem te maken, het kan daarom zo zijn dat objecten genoemd in deze opdracht niet allemaal gebruikt worden, of dat je objecten gebruikt die niet genoemd worden.
Maak eerst een backup van je wekker-patch!
Deadline voor deze opdracht: 7 november
Mogelijk 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!
a. Delay it!
Maak een [button]
om je snooze mee te starten.
- Zorg er eerst voor dat het drukken op de button het alarm uit zet (NB: het geluid, niet de klok, de tijd tikt door). Tip:
[trigger]
of(message)
. - Zorg er nu voor dat de
bang
van dezelfde button ervoor zorgt dat na een bepaalde tijd het alarm weer aan gaat. Gebruik hiervoor[delay]
.
b. Snoozetime
- Voeg een number toe zodat de gebruiker zelf de snoozetijd kan instellen. Je werkt voor de snoozetijd met seconden i.p.v. minuten, want wij (en jij) hoeven dan niet lang te wachten om te testen of de snooze functie werkt.
- Zorg dat je patch bij het opstarten een snoozetijd van 5 seconden heeft. Gebruik hiervoor
[loadmess]
.
c. Infinite snooze???
Mogelijk kun je nu oneindig snoozen door telkens op de button te drukken voordat de wekker weer afgaat (dit komt door uitstellen van de delay). Dit is niet de bedoeling.
- Maak het system zodanig dat zodra de snooze button is ingedrukt en de tijd is ingegaan, de snooze button zijn bang tijdelijk geen functie meer heeft.
- Zodra het alarm opnieuw afgaat na de snoozetijd kan de button weer een bang doorsturen zodat je opnieuw kan snoozen.
Handige objecten: [onebang]
of een [gate]
met [trigger]
.
(voldoende)
d. Alarm off = Snooze off
Als je de wekker nu uitzet terwijl de snoozetijd nog loopt kan het zijn dat je alarm alsnog afgaat nadat de snooze-tijd voorbij is.
- Zorg er voor dat zodra de wekker wordt uitgezet terwijl de snoozetijd nog loopt, de snooze ook gereset wordt.
Tip: Bekijk de [delay]
help-file.
(goed)
e. No Alarm = No Snooze
Als je alarm uit staat kan het zijn dat je wel de button van de snooze kan indrukken.
- Zorg ervoor dat de snoozeknop alleen effect heeft op het moment dat het alarm af gaat (dus wanneer er geluid klinkt).
- Dit voorkomt dat een willekeurige druk op de knop een alarm kan veroorzaken.
Handige objecten: [gate]
, [onebang]
.
(zeer goed)