//---- main function int main() { FILE* out; int i, j; // write pointer u8* pwr; // data.paramDesc = desc; strcat(str, NAME); strcat(str, ".dsc"); fill_param_desc(desc); printf("\r\n %s_desc_build ... ", NAME); printf("\r\n filled param descripor table... \r\n"); out = fopen(str, "w"); pwr = buf; // pack the count of parameters pwr = pickle_32(eParamNumParams, pwr); // serialize the descriptors for(i=0; i<eParamNumParams; i++) { pwr = pdesc_pickle(&(desc[i]), pwr); } // write to file fwrite(buf, 1, (size_t)((size_t)pwr - (size_t)&buf), out); printf("\r\n wrote %d bytes... \r\n", (int) ((size_t)pwr - (size_t)&buf)); fclose(out); printf("\r\n done. \r\n"); return 0; }
void module_init(void) { u32 i; // init module/param descriptor // intialize local data at start of SDRAM data = (wavesData * )SDRAM_ADDRESS; // initialize moduleData superclass for core routines gModuleData = &(data->super); strcpy(gModuleData->name, "aleph-waves"); gModuleData->paramDesc = data->mParamDesc; gModuleData->paramData = data->mParamData; gModuleData->numParams = eParamNumParams; // fill param values with minima as default for(i=0; i<eParamNumParams; ++i) { gModuleData->paramData[i].value = gModuleData->paramDesc[i].min; } for(i=0; i<WAVES_NVOICES; i++) { fract32 tmp = FRACT32_MAX >> 2; osc_init( &(voice[i].osc), &wavtab, SAMPLERATE ); filter_svf_init( &(voice[i].svf) ); voice[i].amp = tmp; filter_1p_lo_init(&(voice[i].ampSlew), 0xf); filter_1p_lo_init(&(voice[i].cutSlew), 0xf); filter_1p_lo_init(&(voice[i].rqSlew), 0xf); } // oscAmp1 = oscAmp0 = INT32_MAX >> 2; /* osc_set_hz( &osc1, fix16_from_int(220) ); */ /* osc_set_hz( &osc0, fix16_from_int(330) ); */ /* ioAmp0 = FR32_MAX; */ /* ioAmp1 = FR32_MAX; */ /* ioAmp2 = FR32_MAX; */ /* ioAmp3 = FR32_MAX; */ // filters /* filter_svf_init(&(svf1)); */ /* filter_svf_init(&(svf0)); */ // allocate smoothers // amp1Lp = (filter_1p_lo*)malloc(sizeof(filter_1p_lo)); // filter_1p_lo_init( amp1Lp, oscAmp1 ); /* amp0Lp = (filter_1p_lo*)malloc(sizeof(filter_1p_lo)); */ /* filter_1p_lo_init( amp0Lp, oscAmp0 ); */ // dac filter_1p_lo_init( &(cvSlew[0]), 0xf ); filter_1p_lo_init( &(cvSlew[1]), 0xf ); filter_1p_lo_init( &(cvSlew[2]), 0xf ); filter_1p_lo_init( &(cvSlew[3]), 0xf ); // write descriptors /// FIXME: eliminate and move offline ! fill_param_desc(); // set parameters to defaults param_setup( eParamHz1, 220 << 16 ); param_setup( eParamHz0, 330 << 16 ); param_setup( eParamTune1, FIX16_ONE ); param_setup( eParamTune0, FIX16_ONE ); param_setup( eParamWave1, 0 ); param_setup( eParamWave0, 0 ); param_setup( eParamAmp1, PARAM_AMP_6 ); param_setup( eParamAmp0, PARAM_AMP_6 ); param_setup( eParamPm10, 0 ); param_setup( eParamPm01, 0 ); param_setup( eParamWm10, 0 ); param_setup( eParamWm01, 0 ); param_setup( eParamBl1, 0 ); param_setup( eParamBl0, 0 ); param_setup( eParam_cut1, PARAM_CUT_DEFAULT); param_setup( eParam_rq1, PARAM_RQ_DEFAULT); param_setup( eParam_low1, PARAM_AMP_6 ); param_setup( eParam_high1, 0 ); param_setup( eParam_band1, 0 ); param_setup( eParam_notch1, 0 ); param_setup( eParam_fwet1, PARAM_AMP_6 ); param_setup( eParam_fdry1, PARAM_AMP_6 ); param_setup( eParam_cut0, PARAM_CUT_DEFAULT ); param_setup( eParam_rq0, PARAM_RQ_DEFAULT ); param_setup( eParam_low0, FRACT32_MAX >> 1 ); param_setup( eParam_high0, 0 ); param_setup( eParam_band0, 0 ); param_setup( eParam_notch0, 0 ); param_setup( eParam_fwet0, PARAM_AMP_6 ); param_setup( eParam_fdry0, PARAM_AMP_6 ); param_setup( eParamHz1Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamHz0Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamPm10Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamPm01Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamWm10Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamWm01Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamWave1Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamWave0Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamAmp1Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamAmp0Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamCut0Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamCut1Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamRq0Slew, PARAM_SLEW_DEFAULT ); param_setup( eParamRq1Slew, PARAM_SLEW_DEFAULT ); param_setup( eParam_adc0_dac0, FRACT32_MAX ); param_setup( eParam_adc1_dac1, FRACT32_MAX ); param_setup( eParam_adc2_dac2, FRACT32_MAX ); param_setup( eParam_adc3_dac3, FRACT32_MAX ); param_setup( eParam_osc0_dac0, FRACT32_MAX ); param_setup( eParam_osc0_dac1, FRACT32_MAX ); param_setup( eParam_osc0_dac2, FRACT32_MAX ); param_setup( eParam_osc0_dac3, FRACT32_MAX ); param_setup( eParam_osc1_dac0, FRACT32_MAX ); param_setup( eParam_osc1_dac1, FRACT32_MAX ); param_setup( eParam_osc1_dac2, FRACT32_MAX ); param_setup( eParam_osc1_dac3, FRACT32_MAX ); param_setup( eParam_cvVal0, FRACT32_MAX >> 1 ); param_setup( eParam_cvVal1, FRACT32_MAX >> 1 ); param_setup( eParam_cvVal2, FRACT32_MAX >> 1 ); param_setup( eParam_cvVal3, FRACT32_MAX >> 1 ); param_setup( eParam_cvSlew0, PARAM_SLEW_DEFAULT ); param_setup( eParam_cvSlew1, PARAM_SLEW_DEFAULT ); param_setup( eParam_cvSlew2, PARAM_SLEW_DEFAULT ); param_setup( eParam_cvSlew3, PARAM_SLEW_DEFAULT ); }