Part of MicroGen4 Music Synthesizer Program. (But not test it yet.) I2S ,DMA ,Stereo ,16Bit Dac(PCM1781) See detail: http://www.geocities.jp/micro_diys/index2

Dependencies:   mbed

Now added generate Saw Wave to DAC function in generate(); You will hear Stereo saw wave sound now. /media/uploads/p_igmon/i2s_sample_test_audacity.png

more info: http://www.geocities.jp/micro_diys/i2s_test_sample/i2s_test_sample.html

Synthesizer.cpp

Committer:
p_igmon
Date:
2017-09-21
Revision:
1:48f506a7b488
Parent:
0:dc88722ab141

File content as of revision 1:48f506a7b488:

/*
    COPYRIGHT(c) 2014 p.igmon
*/

#include "synthesizer.h"

/* DMA WAVE BUFFER */
extern S16 DMA_Buffer[];
extern __IO BUFFER_StateTypeDef BufferOffset;

void wave_generate(void){
    u16 count;
    s16 rch,lch;// 16bit stereo
    volatile s16 *ptr0;

    if (bufferoffset == dma_fullcomplete){
        ptr0 = (s16 *)&dma_buffer[dma_buffersize>>1];// from half
    }else{
        ptr0 = (s16 *)&dma_buffer[0];// from top
    }    
    bufferoffset = dma_idle;

    count = dma_buffersize>>2;// 512samples
    while(count-- > 0){

        /* generate wave here */
        lch = ((s16)(count - 256))<<6;// Saw Wave Lch
        rch = ((s16)(256 -count))<<6;// Saw Wave Rch
        *ptr0++ = lch;
        *ptr0++ = rch;
     }
}