Hexi_Acceleromagnetic_Synth: Michael Yarnell, Alec Pierce, 2017 The program turns an NXP Hexiwear, its development board, and a Click buzzer collectively into an 'acceleromagnetic' synthesizer. That is to say that the synthesizer is controlled primarily via the on-board accelerometer and magnetometer units.
Dependencies: FXOS8700 Hexi_KW40Z NeatGUI PWM_6_Tone_Library
Diff: pwm_6_tone.h
- Revision:
- 0:bec3a12e79e7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwm_6_tone.h Tue Apr 18 16:06:38 2017 +0000 @@ -0,0 +1,97 @@ +/* Modified as part of "Hexi_Acceleromagnetic_Synth" + 2017 Michael Yarnell, Alec Pierce + Class Project: ECE49500 SP17 (MEMS/NEMS/IoT/Wearables) + IUPUI - Purdue School of Engineering and Technology + + Octaves 1, 2, and 6 were added after calculation based on 3, 4, and 5. + +** Includes ------------------------------------------------------------------*/ +#include "mbed.h" + +/* Private typedef -----------------------------------------------------------*/ +/* Private define ------------------------------------------------------------*/ +#define Do1 33 //C octave1 +#define Do1s 35 //C# +#define Re1 37 //D +#define Re1s 39 //D# +#define Mi1 41 //E +#define Fa1 44 //F +#define Fa1s 46 //F# +#define So1 49 //G +#define So1s 52 //G# +#define La1 55 //A +#define La1s 58 //A# +#define Ti1 62 //B + +#define Do2 66 //C octave2 +#define Do2s 69 //C# +#define Re2 74 //D +#define Re2s 78 //D# +#define Mi2 83 //E +#define Fa2 87 //F +#define Fa2s 93 //F# +#define So2 98 //G +#define So2s 104 //G# +#define La2 110 //A +#define La2s 117 //A# +#define Ti2 124 //B + +#define Do3 131 //C octave3 +#define Do3s 139 //C# +#define Re3 147 //D +#define Re3s 156//D# +#define Mi3 165 //E +#define Fa3 175 //F +#define Fa3s 185 //F# +#define So3 196 //G +#define So3s 208 //G# +#define La3 220 //A +#define La3s 233 //A# +#define Ti3 247 //B + +#define Do4 262 //C octave4 +#define Do4s 277 //C# +#define Re4 294 //D +#define Re4s 311//D# +#define Mi4 330 //E +#define Fa4 349 //F +#define Fa4s 370 //F# +#define So4 392 //G +#define So4s 415 //G# +#define La4 440 //A +#define La4s 466 //A# +#define Ti4 494 //B + +#define Do5 523 //C octave5 +#define Do5s 554 //C# +#define Re5 587 //D +#define Re5s 622//D# +#define Mi5 659 //E +#define Fa5 699 //F +#define Fa5s 740 //F# +#define So5 784 //G +#define So5s 831 //G# +#define La5 880 //A +#define La5s 932 //A# +#define Ti5 988 //B + +#define Do6 1045 //C octave6 +#define Do6s 1107 //C# +#define Re6 1173 //D +#define Re6s 1243 //D# +#define Mi6 1317 //E +#define Fa6 1395 //F +#define Fa6s 1478 //F# +#define So6 1566 //G +#define So6s 1659 //G# +#define La6 1757 //A +#define La6s 1861 //A# +#define Ti6 1972 //B + +/* Private variables ---------------------------------------------------------*/ +/* Private function prototypes -----------------------------------------------*/ +void Tune(PwmOut name, int period, int beat); +void Auto_tunes(PwmOut name, int period, int beat); +void Stop_tunes(PwmOut name); + +/* Private functions ---------------------------------------------------------*/