old demo that i want to try in mbed studio
Dependencies: mbed SDFileSystem_Copy_of_mbed_version I2S
Diff: NotchingDemo.cpp
- Branch:
- LargeFile_Tests
- Revision:
- 58:a174e7a8f5f2
- Parent:
- 57:0c76b15cabaf
- Child:
- 59:8e7c25a915a0
--- a/NotchingDemo.cpp Fri Sep 27 19:15:46 2019 +0000 +++ b/NotchingDemo.cpp Fri Sep 27 19:30:06 2019 +0000 @@ -141,14 +141,14 @@ }WAV_FILE_STRUCT;*/ -class PositionIndicators +class classPositionIndicators { public: int notch1_indicator, notch2_indicator, notch3_indicator, notch4_indicator; int notch5_indicator, notch6_indicator, notch7_indicator, notch8_indicator; int notch1_start_pt, notch2_start_pt, notch3_start_pt, notch4_start_pt; int notch5_start_pt, notch6_start_pt, notch7_start_pt, notch8_start_pt; - PositionIndicators() + classPositionIndicators() { notch1_start_pt = 44; notch2_start_pt = 220884+44; @@ -440,7 +440,7 @@ -void Play_WaveFileLoop(classSoundFile Sound1, classSoundFile Sound2, classSoundFile Sound3, FILE* wavfile1,FILE* wavfile2, FILE* wavfile3); +void Play_WaveFileLoop(classSoundFile Sound1, FILE* wavfile1,classPositionIndicators Positions); int main() { @@ -481,12 +481,13 @@ TickFadeOut.attach(&FadeOutIsr,10.0); - -//timer_interrupt.reset(); - fopen("/sd/); + classPositionIndicators Positions; + slice1 = 0; + FILE* wavfile1 = fopen("/sd/mydir/SoundDecoder_second/All_eight_notches.wav","rb"); + classSoundFile Sound1; + Sound1 = ReadFileInfo(Sound1, wavfile1); printf("about to play wav file\n\r"); - Play_WaveFileLoop(Sound1,wavfile1,PositionIndicators); - //Play_WaveFileDual(StartupWav,WavInfo_Startup); + //Play_WaveFileLoop(Sound1,wavfile1,Positions); printf("finished playing Wav file\n\r"); @@ -500,7 +501,6 @@ /************************************PLAY WAV FILE LOOP*******************/ - //Play_WaveFileLoop(Sound, NotchingSet); /************************************END OF PLAY WAV FILE LOOP*************/ @@ -529,61 +529,10 @@ return Sound; } -classSoundFile LoadFileStream(classSoundFile Sound, string filename) -{ - //Declare RootFolder and the directory for the appropriate file. - //How we index into filename[] from the outside of this class is another - //issue... - //printf("FileName: %s\n\r",filename); - //string RootFolder = "/sd/mydir/SoundDecoder/"; - //string Directory = RootFolder + "01.wav";// + filename[0]; - //printf("%s\n\r",Directory); - //const char* DirectoryChar = Directory.c_str(); - //Sound.FileInfo.WavFile = fopen(DirectoryChar,"rb"); - Sound.FileInfo.WavFile = fopen("/sd/mydir/645Engine/Startup.wav","rb"); - fseek(Sound.FileInfo.WavFile,20,SEEK_SET); - fread(&Sound.FileInfo.FileFormat,sizeof(Sound.FileInfo.FileFormat),1,Sound.FileInfo.WavFile); - printf("wav_format.sample_rate: %d\n\r",Sound.FileInfo.FileFormat.sample_rate); - fread(&Sound.FileInfo.FileData,sizeof(Sound.FileInfo.FileData),1,Sound.FileInfo.WavFile); - printf("wav_data.subchunk2_size: %d\n\r",Sound.FileInfo.FileData.subchunk2_size); - Sound.FileInfo.slice_buf = ( char *)malloc(Sound.FileInfo.FileFormat.block_align); - fread(Sound.FileInfo.slice_buf,Sound.FileInfo.FileFormat.block_align,1,Sound.FileInfo.WavFile); //This isnt actually required, its just a test - Sound.FileInfo.num_slices = Sound.FileInfo.FileData.subchunk2_size/Sound.FileInfo.FileFormat.block_align; - printf("Number of Slices: %d\n\r",Sound.FileInfo.num_slices); - return Sound; -} -classFade FadeDataInitialise(classFade FadeData) -{ - FadeData.DecayFactor = 1.3; - FadeData.FadeIteration = 1; - //FadeData.Denom = 11025*FadeData.DecayFactor; - FadeData.Denom = 11025*FadeData.DecayFactor; - FadeData.Natural_Exp = 2.7183; - FadeData.Length = 11025*FadeData.LengthSecs; - //FadeData.Natural_Exp = 2.7; - return FadeData; -} - -//Playing Files Code -/* -float FadeIn(void) -{ - powervalFadeIn = FadeIterationIn/denom; - FadeCoeffFadeIn -} -float FadeOut(void) -{ - powerval = -FadeIteration/denom; - FadeCoeff = pow(natural_exp,powerval); - FadeIteration = FadeIteration + 1; - return FadeCoeff; - -} -*/ void Play_WaveFile(FILE * my_wav, WAV_FILE_STRUCT FileInfo) { @@ -626,59 +575,6 @@ -void Play_WaveFileDual(FILE * my_wav, WAV_FILE_STRUCT FileInfo) -{ - while(slice<FileInfo.num_slices) { - if(FileSwitchFlag == 1) { - - if(temp == 1) { - printf("Does it go to this point\n\r"); - N3Wav = fopen("/sd/mydir/SoundDecoder_second/03.wav","rb"); - if(N3Wav == NULL) { - printf("Cannot Open testwav\n\r"); - } - fclose(StartupWav); - temp = 0; - } - fread(WavInfo_N3.slice_buf,WavInfo_N3.FileFormat.block_align,1,N3Wav); - data_sptr=(short*)WavInfo_N3.slice_buf; - } else { - fread(FileInfo.slice_buf,FileInfo.FileFormat.block_align,1,my_wav); - data_sptr=(short *)FileInfo.slice_buf; // 16 bit samples - } - for (channel=0; channel<FileInfo.FileFormat.num_channels; channel++) { - if(flag1 == 1) { - Buffer1[place_hold1] = data_sptr[channel]; - place_hold1 = place_hold1 + 1; - if(place_hold1 >= BufferLen) { - while(1) { - if(flag1 == 0) { - - break; - } - - } - } - - } else if(flag2 == 1) { - Buffer2[place_hold2] = data_sptr[channel]; - place_hold2 = place_hold2 + 1; - if(place_hold2 >= BufferLen) { - - while(1) { - if(flag2 == 0) { - - break; - } - } - } - } - - } - slice = slice + 1; - } -} - //***************************************************************************// //**************************************************************************// @@ -687,40 +583,30 @@ - +/* void Play_WaveFileLoop(classSoundFile Sound1, FILE *wavfile1, classPositionIndicators Positions) { while(1) { //might have to change this to a while(1) loop? - //New format!! This should be (roughly) the way that this is done, with the new structures and classes -//Block 1 of code. We need to pass in 3x classSoundFile objects, and 3x FILE* pointer objects. -//This will allow us to switch between the 3 different files (using "cross-fades") as needed. - /*Remember that these will need to be global varaibles to work properly*/ - - - //make sure we are reading in the correct "notch" here //Sound1======================================================================================= - if( slice == (PositionIndicators.notch2_start_pt) ) { + if( slice1 == (Positions.notch2_start_pt) ) { slice1 = 0; - fseek(Engine,notch1_start_pt,SEEK_SET); + fseek(wavfile1,Positions.notch1_start_pt,SEEK_SET); } fread(Sound1.FileInfo.slice_buf,Sound1.FileInfo.FileFormat.block_align,1,wavfile1); Sound1.data_sptr=(short *)Sound1.FileInfo.slice_buf; // 16 bit samples //============================================================================================= - /********************END OF DATA ASSIGNMENT SECTION*********************************************** + - /**********************************************************************************************************/ - /****************************DATA OUTPUT SECTION***********************************************************/ - /**********************************************************************************************************/ for (channel=0; channel<Sound1.FileInfo.FileFormat.num_channels; channel++) { switch (Sound1.FileInfo.FileFormat.sig_bps) { case 16: @@ -758,10 +644,10 @@ } } +*/ -