A combination of 3 objects: table/alloc 16b sdram table/load string/indexed This version has also got Dr. Justice deglitcher implemented, which mutes all sound from the patch = no BLIIIIP when changing table content. 29-12-2017: Added drj/file/file_size object from Dr.Justice. 6-4-2018 add pow out Jaffasplaffa BSD tablehelp.axh 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Immediate Fade 0.02s Fade 0.10s Fade 0.50s ((0x08000000)/2) ((0x08000000)/60) ((0x08000000)/300) ((0x08000000)/1500) chibios/ext/fatfs/src/ff.h fatfs 0 ) { if( rem_sz > sizeof(fbuff) ) { err = f_read(&FileObject, fbuff, sizeof(fbuff),&bytes_read); if( bytes_read == 0 ) { break; } memcpy((char *)(&array[0]) + offset,(char *)fbuff,bytes_read); rem_sz -= bytes_read; offset += bytes_read; } else { err = f_read(&FileObject, fbuff, rem_sz,&bytes_read); memcpy((char *)(&array[0]) + offset,(char *)fbuff,bytes_read); rem_sz = 0; } } if( err != FR_OK ) { report_fatfs_error(err,filename); return err; } err = f_close(&FileObject); if( err != FR_OK ) { report_fatfs_error(err,filename); } return err; } //Filesize // int32_t start_sequence; int32_t old_inlet_trigfilename; int32_t file_size;]]> polyIndex][0]; for( int i=0;i 0 ) { // Fading in after trigger gain_coeff += fade_rate; if( gain_coeff >= 1<<27 ) { gain_coeff = 1<<27; fade_rate = 0; } } #endif outlet_volume = gain_coeff; Deglitchout = trig_pulse; //outlet_trig old_inlet_trig = LcOut; trig_pulse = 0; // Table/load if((LcOut>0) && !ntrig) { table_load_state = TABLE_LOAD_STATE_load; ntrig = 1; } else if( !(LcOut>0) ) { ntrig = 0; } //Filesize // // Use filename internally &c[0] // // outlet_fn = &c[0]; // NAME TO FEED TO FILESIZE OBJECT // if( start_sequence == 0 || inlet_trig != 0 && old_inlet_trigfilename == 0 ) { FIL FileObject; int32_t err; err = f_open( &FileObject, &c[0], FA_READ ); if( err != FR_OK ) { report_fatfs_error( err, &c[0] ); file_size = 0; } else { file_size = f_size( &FileObject ) >> 1; f_close( &FileObject ); } if( start_sequence == 0 ) { start_sequence++; } } /* Original if( start_sequence == 0 || inlet_trig != 0 && old_inlet_trig == 0 ) { FIL FileObject; int32_t err; err = f_open( &FileObject, inlet_filename, FA_READ ); if( err != FR_OK ) { report_fatfs_error( err, inlet_filename ); file_size = 0; } else { file_size = f_size( &FileObject ) >> 1; f_close( &FileObject ); } if( start_sequence == 0 ) { start_sequence++; } } */ old_inlet_trig = inlet_trig; outlet_fsize = file_size; outlet_pow = LENGTHPOW;]]> read from table, linear interpolated. THis is 2 X table/read interp and 2 X window, with an on/off switch for the windo function. Jaffasplaffa BSD table.axh >(27-attr_table.LENGTHPOW); y1[i] = attr_table.array[index[i]]<>4);} } // Output windowed table - Fixed it again it works now, the 13-10-18 23.21 if(inlet_on){ outlet_a = ___SMMUL(WindowOut[0]<<3, rr[0]<<2 <<2); // Outputs must be in for-loop outlet_b = ___SMMUL(WindowOut[1]<<3, rr[1]<<2 <<2); // Outputs must be in for-loop outlet_o = ___SMMUL(WindowOut[0]<<3, rr[0]<<2 <<2) + ___SMMUL(WindowOut[1]<<3, rr[1]<<2 <<2) ; // Outputs must be in for-loop } else{ outlet_a = rr[0]<<2 ; outlet_b = rr[1]<<2 ; outlet_o = rr[0]<<2; }]]> no 96 98 936 673