ForSyDe-3.0: examples/Equalizer_Shallow/TestEqualizer.lhs
\begin{code}
module TestEqualizer where
import IO
import Equalizer
import EqualizerTypes
import ForSyDe.Shallow
import AudioFilter
import AudioAnalyzer
audioIn = takeS (pts * 4) $ infiniteS (id) 1.0
bassUp = signal [Prst Active, Prst Active, Abst, Abst,
Prst Active, Prst Active, Abst, Abst,
Prst Active, Prst Active, Abst, Abst,
Prst Active, Prst Active, Abst, Abst]
bassDn = signal [Abst, Abst, Prst Active, Abst,
Abst, Abst, Prst Active, Abst,
Abst, Abst, Prst Active, Abst,
Abst, Abst, Prst Active, Abst]
trebleUp = signal [Abst, Abst, Abst, Abst,
Abst, Abst, Abst, Prst Active,
Abst, Abst, Abst, Abst,
Abst, Abst, Abst, Prst Active]
trebleDn = signal [Abst, Abst, Abst, Prst Active,
Abst, Abst, Abst, Prst Active,
Abst, Abst, Abst, Prst Active,
Abst, Abst, Abst, Prst Active]
overrides = signal [Abst, Abst, Abst, Abst,
Prst Lock, Abst, Abst, Abst,
Abst, Prst CutBass, Abst, Abst,
Prst Release, Abst, Abst, Abst]
bass = infiniteS id 0.0
treble = infiniteS id 0.0
dataflow = audioAnalyzer 2 (audioFilter lpCoeff bpCoeff hpCoeff bass treble audioIn)
testEqualizer = equalizer lpCoeff bpCoeff hpCoeff 2 bassUp bassDn trebleUp trebleDn audioIn
--testButtonInterface = buttonInterface bassUp bassDn trebleUp trebleDn
\end{code}
\begin{code}
lpCoeff = vector
[ 0.01392741661548, 0.01396895728902,
0.01399870011280, 0.01401657422649,
0.01402253700635, 0.01401657422649,
0.01399870011280, 0.01396895728902,
0.01392741661548 ]
bpCoeff = vector
[ 0.06318761339784, 0.08131651217682,
0.09562326700432, 0.10478344432968,
0.10793629404886, 0.10478344432968,
0.09562326700432, 0.08131651217682,
0.06318761339784 ]
hpCoeff = vector
[ -0.07883878579454, -0.09820015927379,
-0.11354603917221, -0.12339860164118,
0.87320570334018, -0.12339860164118,
-0.11354603917221, -0.09820015927379,
-0.07883878579454 ]
zeros = infiniteS id 0.0
audioFilterD = audioFilter lpCoeff bpCoeff hpCoeff zeros zeros
pts = 4
main = do
-- Test AudioFilter
putStr "\n-->Test AudioFilter \n"
filterInfile <- openFile "Test/AudioIn.mat" ReadMode
filterContents <- hGetContents filterInfile
putStr (show (audioFilterD (readS filterContents)))
writeFile "Test/audioOut.dat" (writeS (audioFilterD (readS filterContents)))
-- Test AudioAnalyzer
putStr "\n--> Test AudioAnalyzer \n"
analyzerInfile <- openFile "Test/audioOut.dat" ReadMode
analyzerOutfile <- openFile "Test/analyzerOut.dat" WriteMode
analyzerContents <- hGetContents analyzerInfile
putStr (show (audioAnalyzer pts ((readS analyzerContents) :: Signal Double)))
hPutStr analyzerOutfile (writeS (audioAnalyzer pts ((readS analyzerContents) :: Signal Double)))
--fftInfile <- openFile "audioOut.txt" ReadMode
--fftOutfile <- openFile "fftOut.txt" WriteMode
--contents <- hGetContents fftInfile
--putStr (writeS (((readS contents) :: Signal Double)))
--hPutStr fftOutfile (writeS (((readS contents) :: Signal Double)))
putStr "\nDone.\n"
\end{code}