-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathAudioAnalyzerFFT.bi
39 lines (29 loc) · 1.49 KB
/
AudioAnalyzerFFT.bi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'-----------------------------------------------------------------------------------------------------------------------
' FFT routines for audio spectrum analyzers
' Copyright (c) 2024 Samuel Gomes
'-----------------------------------------------------------------------------------------------------------------------
$INCLUDEONCE
'$INCLUDE:'Common.bi'
DECLARE LIBRARY "AudioAnalyzerFFT"
FUNCTION AudioAnalyzerFFT_DoInteger! (amplitudeArray AS _UNSIGNED INTEGER, sampleDataArray AS INTEGER, BYVAL sampleIncrement AS LONG, BYVAL bitDepth AS LONG)
FUNCTION AudioAnalyzerFFT_DoSingle! (amplitudeArray AS _UNSIGNED INTEGER, sampleDataArray AS SINGLE, BYVAL sampleIncrement AS LONG, BYVAL bitDepth AS LONG)
END DECLARE
'-----------------------------------------------------------------------------------------------------------------------
' TEST CODE
'-----------------------------------------------------------------------------------------------------------------------
'$DEBUG
'CONST FFT_POW = 10
'CONST FFT_FRAMES = 2 ^ FFT_POW
'CONST FFT_HALF_FRAMES = FFT_FRAMES \ 2
'DIM buffer(0 TO FFT_FRAMES - 1) AS SINGLE
'DIM outp(0 TO FFT_HALF_FRAMES - 1) AS INTEGER
'RANDOMIZE TIMER
'DO
' DIM i AS LONG
' FOR i = 0 TO FFT_FRAMES - 1
' buffer(i) = RND - RND
' NEXT i
' PRINT USING "#####.#####"; AudioAnalyzerFFT_DoSingle(outp(0), buffer(0), 1, 10)
'LOOP UNTIL _KEYHIT = 27
'END
'-----------------------------------------------------------------------------------------------------------------------