/**************************************************************** * * * Copyright (C) 1991-2003 Celoxica Ltd. All rights reserved. * * * ***************************************************************** * * * Project : PAL * * Date : 31 JAN 2003 * * File : reverb.hcc * * Author : Matthew Aubury (MA) * * Contributors: * * * * Description: * * Simple audio reverb. * * * * Date Version Author Reason for change * * * * 29 OCT 2002 1.00 MA Created * * * ****************************************************************/ #define PAL_TARGET_CLOCK_RATE 50000000 #include #include "pal_master.hch" #include "debug.hch" #include "fft.hch" /* * Forward declarations */ //static macro proc RunReverb (AudioIn, AudioOut); static macro proc RunFFT (AudioIn, AudioOut); static macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE; mpram //Multiport block RAM { ram signed 16 write[256]; rom signed 16 read[256]; } audio_buffer_in with { block = "BlockRAM"}; mpram //Multiport block RAM { ram signed 16 write[256]; rom signed 16 read[256]; } audio_buffer_out with { block = "BlockRAM"}; /* * Main program */ void main (void) { macro expr AudioIn = PalAudioInCT (0); macro expr AudioOut = PalAudioOutCT (0); /* * Check we've got everything we need */ PalVersionRequire (1, 2); PalAudioInRequire (1); PalAudioOutRequire (1); PalDataPortRequire (1); //PalSevenSegRequire (1); /* * Run */ par { PalAudioInRun (AudioIn, ClockRate); PalAudioOutRun (AudioOut, ClockRate); PalDataPortRun (PalRS232PortCT(0), PAL_ACTUAL_CLOCK_RATE ); seq { par { PalAudioInEnable (AudioIn); PalAudioOutEnable (AudioOut); PalDataPortEnable (PalRS232PortCT(0)); //PalSevenSegEnable (PalSevenSegCT (0)); } RC200AudioInSetInput(RC200AudioInLineIn); RC200AudioInSetGain(0,7,7); PalAudioInSetSampleRate (AudioIn, 44100); PalAudioOutSetSampleRate (AudioOut, 44100); RunFFT(AudioIn, AudioOut); //RunReverb (AudioIn, AudioOut); } } } #define M 4 #define N (1<