summaryrefslogtreecommitdiffstats
path: root/FFT_Test
diff options
context:
space:
mode:
authorMarcel Lauwerijssen <paranoya@morphcore.com>2004-11-16 08:07:57 (GMT)
committerMarcel Lauwerijssen <paranoya@morphcore.com>2004-11-16 08:07:57 (GMT)
commit2550e155ac6b08475039b24d44f4e08d1d1c53fc (patch)
tree9309ea25660f9527877efd9e9b351edeebbb564d /FFT_Test
parent25979f64484be7c6ccd79feaecdb60a5ba165b40 (diff)
downloadTASS-2550e155ac6b08475039b24d44f4e08d1d1c53fc.zip
TASS-2550e155ac6b08475039b24d44f4e08d1d1c53fc.tar.gz
TASS-2550e155ac6b08475039b24d44f4e08d1d1c53fc.tar.bz2
Diffstat (limited to 'FFT_Test')
-rw-r--r--FFT_Test/runfft.hcc62
1 files changed, 22 insertions, 40 deletions
diff --git a/FFT_Test/runfft.hcc b/FFT_Test/runfft.hcc
index 7492095..e470b1e 100644
--- a/FFT_Test/runfft.hcc
+++ b/FFT_Test/runfft.hcc
@@ -26,14 +26,13 @@
#include "config.hch"
#include "debug.hch"
#include "fft.hch"
-#include "runfft.hch"
+#include "audio.hch"
#include "presets.hch"
/*
* Forward declarations
*/
-
static macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
#if HARDWARE_MULTIPLY
//input buffer
@@ -49,23 +48,7 @@ ram signed 16 audio_buffer_out[128] with { block = "BlockRAM"};
//EQ settings for the FFT
ram unsigned 4 EQ_info[128] with { block = "BlockRAM"};
//EQ settings received from the display
-mpram
-{
- ram unsigned 4 write[768];
- rom unsigned 4 read[768];
-}EQ_level with { block = "BlockRAM"};
-mpram
-{
- ram signed 7 write[256];
- rom signed 7 read[256];
-}fft_info with { block = "BlockRAM"};
-
-mpram
-{
- ram signed 6 write[256];
- rom signed 6 read[256];
-}ifft_info with {block = "BlockRAM"};
#if HARDWARE_MULTIPLY
signed 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
@@ -79,11 +62,10 @@ signed 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
signed 16 *audioptr_out1,*audioptr_out2;
#endif
-unsigned 10 active_preset;
shared expr preset_address = (active_preset << 7);
-void LoadPresets()
+void LoadPresets(audiodata_t * audiodata)
{
unsigned 16 temp;
unsigned 10 count;
@@ -97,10 +79,10 @@ void LoadPresets()
temp = presets[index];
index++;
}
- par { EQ_level.write[count] = temp[7:4]; count++; }
- par { EQ_level.write[count] = temp[3:0]; count++; }
- par { EQ_level.write[count] = temp[15:12]; count++; }
- par { EQ_level.write[count] = temp[11:8]; count++; }
+ par { audiodata->equalizer_levels.write[count] = temp[7:4]; count++; }
+ par { audiodata->equalizer_levels.write[count] = temp[3:0]; count++; }
+ par { audiodata->equalizer_levels.write[count] = temp[15:12]; count++; }
+ par { audiodata->equalizer_levels.write[count] = temp[11:8]; count++; }
} while (count<768);
}
@@ -108,7 +90,7 @@ void LoadPresets()
/*
* FFT routine
*/
-macro proc RunFFT (AudioIn, AudioOut)
+macro proc audio_main(AUDIOIN, AUDIOOUT, audiodata)
{
signed 18 sample;
unsigned 6 sample_count;
@@ -125,22 +107,22 @@ macro proc RunFFT (AudioIn, AudioOut)
active_preset = 2;
//pointers for double and quadruple buffering:
- audioptr_in1=&audio_buffer_in[0];
- audioptr_in2=&audio_buffer_in[64];
- audioptr_in3=&audio_buffer_in[128];
- audioptr_in4=&audio_buffer_in[192];
+ audioptr_in1 = &audio_buffer_in[0];
+ audioptr_in2 = &audio_buffer_in[64];
+ audioptr_in3 = &audio_buffer_in[128];
+ audioptr_in4 = &audio_buffer_in[192];
- audioptr_out1=&audio_buffer_out[0];
- audioptr_out2=&audio_buffer_out[64];
+ audioptr_out1 = &audio_buffer_out[0];
+ audioptr_out2 = &audio_buffer_out[64];
- displayptr1=&ifft_info.write[0];
- displayptr2=&ifft_info.write[64];
- displayptr3=&ifft_info.write[128];
- displayptr4=&ifft_info.write[192];
+ displayptr1 = &audiodata->ifft_info.write[0];
+ displayptr2 = &audiodata->ifft_info.write[64];
+ displayptr3 = &audiodata->ifft_info.write[128];
+ displayptr4 = &audiodata->ifft_info.write[192];
FFT_Sync=0;
- LoadPresets();
+ LoadPresets(&audiodata);
first = 1;
par
{
@@ -173,13 +155,13 @@ par
#if 1
for(i=0;i<NUMBER_OF_FREQUENCIES;i++)
{
- eqinfo = EQ_level.read[preset_address+(0 @ i)];
+ eqinfo = audiodata->equalizer_levels.read[preset_address+(0 @ i)];
EQ_info[i<-7] = eqinfo;
}
// set volume of each individual frequency bar (equalizer)
- equalize_audio(&EQ_info[0], &fft_info.write[0]);
+ equalize_audio(&EQ_info[0], &audiodata->fft_info.write[0]);
#endif // inverse FFT calculation
perform_ifft(audioptr_out1,displayptr1);
@@ -204,7 +186,7 @@ par
{
seq
{
- PalAudioInRead(AudioIn, &LeftNew, &RightNew);
+ PalAudioInRead(AUDIOIN, &LeftNew, &RightNew);
#if HARDWARE_MULTIPLY
audioptr_in1[sample_count] = LeftNew;//drop 2 LSB's
#else
@@ -229,7 +211,7 @@ par
}
for(;;)
{
- PalAudioOutWrite(AudioOut,(signed OW)(Output_sample @ 0),(signed OW)(Output_sample @ 0));
+ PalAudioOutWrite(AUDIOOUT,(signed OW)(Output_sample @ 0),(signed OW)(Output_sample @ 0));
}
}//end par
}// end function