Simple FM Sound Synthesis with touch screen and accelerometer control, based on STM32F746G-DISCO

Dependencies:   ADXL345 AUDIO_DISCO_F746NG BSP_DISCO_F746NG LCD_DISCO_F746NG SDRAM_DISCO_F746NG TS_DISCO_F746NG mbed-dev

Fork of Workshop_5 by Stefano Fasciani

sinth.h

Committer:
stefanofasciani
Date:
2017-01-01
Revision:
3:cd1cb0003a3d
Parent:
2:a1330350c32e

File content as of revision 3:cd1cb0003a3d:


// Author: Stefano Fasciani - stefanofasciani@stefanofasciani.com
// Date 7/8/2016
// FM Sinth for DISCO_F746NG and ADXL345


#include "mbed.h"
#include "AUDIO_DISCO_F746NG.h"
#include "SDRAM_DISCO_F746NG.h"
#include "LCD_DISCO_F746NG.h"
#include "TS_DISCO_F746NG.h"
#include "ADXL345.h"
#include <math.h>

#define AUDIO_BLOCK_SIZE    1024
#define TABLE_SIZE          2048

typedef enum{
    BUFFER_OFFSET_NONE = 0,
    BUFFER_OFFSET_HALF = 1,
    BUFFER_OFFSET_FULL = 2,
}BUFFER_StateTypeDef;

float map(float x, float out_min, float out_max);
void sint_osc();
void copy_buffer(int offset);
void init_sin_table();
float get_touch_horizontal();
float get_touch_vertical();
float get_acc_horizontal();
float get_acc_vertical();
void display_keyboard();
float get_note_pitch();
uint8_t SetSysClock_PLL_HSE_200MHz();


extern float table[];
extern int16_t out_buffer[];
extern float osc_buf[];
extern __IO uint32_t  audio_out_buffer_state;
extern float idx_1;
extern float idx_2;
extern float filt_old_samp;
extern float frqTL;
extern float two_pi_48k;
extern int acc_readings[];
extern int update_round;
extern float amplitude;
extern float pitch;
extern float modrate;
extern float moddepth;
extern float filter;
extern TS_StateTypeDef TS;
extern LCD_DISCO_F746NG lcd;