12345678910111213141516171819202122232425262728293031323334353637383940 |
- #include <Automaton.h>
- #include "musical_notes.h"
- // Playback 'Frere Jacques' with button trigger and speed control
- Atm_player player;
- Atm_button button;
- Atm_analog speed;
- int pattern[] = {
- _G4, _N04, 0, _A4, _N04, 0, _B4, _N04, 0, _G4, _N04, 0, // Frere Jacques
- _G4, _N04, 0, _A4, _N04, 0, _B4, _N04, 0, _G4, _N04, 0,
- _B4, _N04, 0, _C5, _N04, 0, _D5, _N04, _N04, // Dormez vous?
- _B4, _N04, 0, _C5, _N04, 0, _D5, _N04, _N04,
- _D5, _N08, 0, _E5, _N08, 0, _D5, _N08, 0, _C5, _N08, 0, _B4, _N04, 0, _G4, _N04, 0, // Sonnez les matines
- _D5, _N08, 0, _E5, _N08, 0, _D5, _N08, 0, _C5, _N08, 0, _B4, _N04, 0, _G4, _N04, 0,
- _G4, _N04, 0, _D4, _N04, 0, _G4, _N04, _N04, // Ding dang dong
- _G4, _N04, 0, _D4, _N04, 0, _G4, _N04, _N04,
- };
- void setup() {
- player.begin( 19 ) // A passive buzzer or speaker on pin 19
- .play( pattern, sizeof( pattern ) )
- .repeat( -1 );
- button.begin( 2 ) // A button on pin 2 toggles playback on and off
- .onPress( player, player.EVT_TOGGLE );
- speed.begin( A0 ) // An analog pot on pin A0 controls playback speed
- .range( 50, 300 ) // From 50% to 300% of original speed
- .onChange( []( int idx, int v, int up ) {
- player.speed( v );
- });
- }
- void loop() {
- automaton.run();
- }
|