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

pwm_6_tone.h

Committer:
MTYarnell
Date:
2017-04-18
Revision:
0:bec3a12e79e7

File content as of revision 0:bec3a12e79e7:

/* 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 ---------------------------------------------------------*/