コード例 #1
0
ファイル: waves.c プロジェクト: bensteinberg/aleph
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 );

  

}
コード例 #2
0
ファイル: waves.c プロジェクト: duncanspeakman/aleph
void module_init(void) {
  int i, j;

  // 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->paramData = data->mParamData;
  gModuleData->numParams = eParamNumParams;

  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;

    slew_init((voice[i].ampSlew), 0, 0, 0 );
    slew_init((voice[i].cutSlew), 0, 0, 0 );
    slew_init((voice[i].rqSlew), 0, 0, 0 );

    slew_init((voice[i].wetSlew), 0, 0, 0 );
    slew_init((voice[i].drySlew), 0, 0, 0 );

    voice[i].pmDelWrIdx = 0;
    voice[i].pmDelRdIdx = 0;

    //    voice[i].pmDelBuf = data->pmDelBuf[i];
  }

  for(i=0; i<4; i++) {
    for(j=0; j<4; j++) {
      patch_adc_dac[i][j] = &trash;
    }
  }

  for(i=0; i<2; i++) {
    for(j=0; j<4; j++) {
      patch_osc_dac[i][j] = &trash;
    }
  }

  // cv
  /* slew_init(cvSlew[0] , 0, 0, 0 ); */
  /* slew_init(cvSlew[1] , 0, 0, 0 ); */
  /* slew_init(cvSlew[2] , 0, 0, 0 ); */
  /* slew_init(cvSlew[3] , 0, 0, 0 ); */

  // cv
  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 );



  // set parameters to defaults
  /// slew first
  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(  eParamWet0Slew, PARAM_SLEW_DEFAULT );
  param_setup(  eParamWet1Slew, PARAM_SLEW_DEFAULT );
  param_setup(  eParamDry0Slew, PARAM_SLEW_DEFAULT );
  param_setup(  eParamDry1Slew, PARAM_SLEW_DEFAULT );
  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_mode1,	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_mode0,	0);

  param_setup(  eParam_fwet0,	PARAM_AMP_6 );
  param_setup(  eParam_fdry0,	PARAM_AMP_6 );


  param_setup(  eParam_adc0_dac0, 	1 );
  param_setup(  eParam_adc1_dac1,  	1 );
  param_setup(  eParam_adc2_dac2, 	1 );
  param_setup(  eParam_adc3_dac3, 	1 );

  param_setup(  eParam_osc0_dac0, 	1 );
  param_setup(  eParam_osc0_dac1,  	1 );
  param_setup(  eParam_osc0_dac2, 	1 );
  param_setup(  eParam_osc0_dac3, 	1 );
  param_setup(  eParam_osc1_dac0, 	1 );
  param_setup(  eParam_osc1_dac1,  	1 );
  param_setup(  eParam_osc1_dac2, 	1 );
  param_setup(  eParam_osc1_dac3, 	1 );

  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 );
}
コード例 #3
0
ファイル: lines.c プロジェクト: Someone101/aleph
void module_init(void) {
  u8 i;
  u32 j;
  // init module/params
  pLinesData = (linesData*)SDRAM_ADDRESS;
  
  gModuleData = &(pLinesData->super);
  strcpy(gModuleData->name, "aleph-lines");

  gModuleData->paramData = (ParamData*)pLinesData->mParamData;
  gModuleData->numParams = eParamNumParams;

  for(i=0; i<NLINES; i++) {
    delayFadeN_init(&(lines[i]), pLinesData->audioBuffer[i], LINES_BUF_FRAMES);
    filter_svf_init(&(svf[i]));

    filter_1p_lo_init(&(svfCutSlew[i]), 0x3fffffff);
    filter_1p_lo_init(&(svfRqSlew[i]), 0x3fffffff);

    filter_ramp_tog_init(&(lpFadeRd[i]), 0);
    filter_ramp_tog_init(&(lpFadeWr[i]), 0);

    /* // we really need to zero everything to avoid horrible noise at boot... */
    /* for(j=0; j<LINES_BUF_FRAMES; ++j) { */
    /*   pLinesData->audioBuffer[i][j] = 0; */
    /* } */

    //    memset(pLinesData->audioBuffer[i], 0, LINES_BUF_FRAMES * 4);

    // however, it is causing crashes or hangs here, for some damn reason.

    // at least zero the end of the buffer
    /* for(j=LINES_BUF_FRAMES - 100000; j < LINES_BUF_FRAMES - 1; ++j) { */
    /*   pLinesData->audioBuffer[i][j] = 0x00000000;  */
    /* } */
  }

  // 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 );

  /// setup params with intial values

  param_setup( eParamFade0 , 0x100000 );
  param_setup( eParamFade1 , 0x100000 );

  param_setup( 	eParam_loop0,		PARAM_SECONDS_MAX );
  param_setup( 	eParam_rMul0,		0x10000 );
  param_setup( 	eParam_rDiv0,		0x10000 );
  param_setup( 	eParam_write0,		FRACT32_MAX );
  param_setup( 	eParam_pre0,		0 );
  param_setup( 	eParam_pos_write0,		0 );
  param_setup( 	eParam_pos_read0,		0 );

  param_setup( 	eParam_delay0,		0x4000 );

  param_setup( 	eParam_run_read0, 1 );
  param_setup( 	eParam_run_write0, 1 );

  param_setup( 	eParam_loop1,		PARAM_SECONDS_MAX );
  param_setup( 	eParam_rMul1,		0x10000 );
  param_setup( 	eParam_rDiv1,		0x10000 );
  param_setup( 	eParam_write1,		FRACT32_MAX );
  param_setup( 	eParam_pre1,		0 );
  param_setup( 	eParam_pos_write1,		0 );
  param_setup( 	eParam_pos_read1,		0 );

  param_setup( 	eParam_delay1,		0x4000 );

  param_setup( 	eParam_run_read1, 1 );
  param_setup( 	eParam_run_write1, 1 );

  param_setup( 	eParam_del1_dac0,		PARAM_AMP_12 );
  param_setup( 	eParam_del1_dac1,		PARAM_AMP_6 );
  param_setup( 	eParam_del1_dac2,		PARAM_AMP_12 );
  param_setup( 	eParam_del1_dac3,		PARAM_AMP_6 );

  param_setup( 	eParam_adc0_dac0,		PARAM_AMP_12 );
  param_setup( 	eParam_adc0_dac1,		PARAM_AMP_12 );
  param_setup( 	eParam_adc0_dac2,		PARAM_AMP_12 );
  param_setup( 	eParam_adc0_dac3,		PARAM_AMP_12 );
  param_setup( 	eParam_adc1_dac0,		PARAM_AMP_12 );
  param_setup( 	eParam_adc1_dac1,		PARAM_AMP_12 );
  param_setup( 	eParam_adc1_dac2,		PARAM_AMP_12 );
  param_setup( 	eParam_adc1_dac3,		PARAM_AMP_12 );
  param_setup( 	eParam_adc2_dac0,		PARAM_AMP_12 );
  param_setup( 	eParam_adc2_dac1,		PARAM_AMP_12 );
  param_setup( 	eParam_adc2_dac2,		PARAM_AMP_12 );
  param_setup( 	eParam_adc2_dac3,		PARAM_AMP_12 );
  param_setup( 	eParam_adc3_dac0,		PARAM_AMP_12 );
  param_setup( 	eParam_adc3_dac1,		PARAM_AMP_12 );
  param_setup( 	eParam_adc3_dac2,		PARAM_AMP_12 );
  param_setup( 	eParam_adc3_dac3,		PARAM_AMP_12 );


  param_setup(  eParam_freq1,	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_freq0, 	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(  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_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 );

  param_setup(  eParam_cvVal0, PARAM_CV_VAL_DEFAULT );
  param_setup(  eParam_cvVal1, PARAM_CV_VAL_DEFAULT );
  param_setup(  eParam_cvVal2, PARAM_CV_VAL_DEFAULT );
  param_setup(  eParam_cvVal3, PARAM_CV_VAL_DEFAULT );

}