Brief

Any feedback? see DIYAudio Thread
http://www.diyaudio.com/forums/showthread.php?s=&threadid=127520

09/01/2008

GPUFIR_20080901.zip
Extract as C:\GPUFIR, C:\GPUFIR_Source
(1) Tiny GPU FIR player / controller.(VBDllTestAPP01)
(2) FIR Output process, with File read / buffer function (FIR_Out01.exe)
(3) ShareDLL, store command / responce and FIFO. (ShareDLL)
(4) Input Streamer. (InStream01.exe)
Requirement:
 VisualC++ redistribution package. (see below, User Mode Install )
 .NET Runtime 2.0


08/23/2008

GPUFIR_Source_20080822.zip
and this is how to build GPU FIR. many download and todo.
ForDevelopper_HowTo.html

08/21/2008

GPUFIR_20080821.zip
This is "User Mode" Package.
(1) Requires Microsoft VisualC++ redistributable packages
(2) Extract and copy to C:\GPUFIR\ folder.
(3) you need to run bat files in order.

Please see User_Mode_Install.html howto , for detail.


08/17/2008
Initial Downloadable Version. See bottom for detail.
GPUFIR_Stream_08182008.zip
(WinXP 32bit)
I could start this binary on Vista64, but I'm not sure about "runtime" environment of CUDA.
ZIP includes source and lib, dll, parameter sample. When you build, you need VisualStudio2005, PortAudio, CUDA.







08/03/2008

Now I am listening REAL FIRed 3way sound from generic AV amplifier, with Windows Media Player.
What a long way to come through here. I spent thousands and thousands dollers for multi amp audio, but now I have
$1,000 FanLess PC
$400 AV Amplifier
$400 Linn Component Speaker
OMG, the sound is completely stress free, flat and accurate.

Please refer to "CUDA REAL FIR" , for my FIR processing.
Or you can use anything other, which can make 8 channel extended wav file.

08/05/2008
AVAMP_LPCM_8CH_test.wav  (zip, 33KB - 4MB when extracted)
8CH_Wave_gen.cpp.txt
This wave file is test tone, CH1,2,3,4,5,6,7,8 = { 200, 400,600,800,1000,1200,1400,1600 Hz}
Play this wave file in Loop mode, then attach single full-range speaker to AV amplifier.
If everything goes well, you can hear each tone from each Speaker Terminal.

Configuration

This is when Channel 1,2 = Low, 5,6 = Mid, 7,8 = High.

I'm thinking to replace amplifier , and speaker.

Windows Setting

Installed Drivers
nForce_HDA_10.3.00.23_international.exe
nforce_winxp_18.11_english_whql.exe
175.19_geforce_winxp_32bit_english_whql.exe



GeForce 8200 Must be activated as display.



I changed to 1080p HD format.


 


Media Player Speaker Config.





Channel 3,4 are assigned to Center, and Sub. Just use same as Channel 1,2.






Wave Format must have 0x063F channel mask.
This mask activates FL, FR, Center, SW, SurroundL, SurroundR, Surround Back L, Surround Back R.

Now you can enjoy.






Multi Channel, 7.1 PCM, no Dolby.


Left, Right, Surround L, Surround R, Surround-Back L, Surround-Back R,  are used for
Low-L, Low-R, Mid-L, Mid-R, High-L, High-R


Very compact LINN Komponent, configurable as fully activ.

Thanks To avsforum!

http://www.avsforum.com/avs-vb/showthread.php?t=990188

Multi Channel WAVE file at MSDN
http://www.microsoft.com/whdc/device/audio/multichaud.mspx
http://www.microsoft.com/windows/windowsmedia/howto/articles/creating71audio.aspx
http://msdn.microsoft.com/en-us/library/ms713496.aspx

Development

08/09/2008

I studied PortAudio, Portable MIT-license multi platform Audio API.
http://www.portaudio.com

Really Great, Incredibly easy to use.
Build (pretty many SDK downloads), test sign wave, test wav file player, is too easy.

Now I don't need Windows media Player.
I made simple command line LPCM 8 channel wav file to HDMI player

Source Code: PATest03.cpp.txt

Screen Shot here. This player requires almost "0" % of CPU when playing.
Player copys whole WAV file into memory and lock to physical, then start playing.
you can see CPU peak and Memory usage glowth. Just only 220 MB. Any problem with today's 2GB - 4GB PC?



Next
 add stream output to FIR Converter
 add stream input to FIR Converter

This idea is pretty confusing. see below.



08/10/2008
 I tried GPU FIR engine - LPCM 8ch Linear buffer (for whole music) - Stream Callback, before implementing Ring Buffer.
 It works . Source is here - Warning : VERY DIRTY! not organized yet.
WaveX02_LinearPAOut.cu.txt changed to include PortAudio functions.
WaveX02_kernel.cu.txt Kernel is same as before.



Now I'm using GeForce 8400, it's a low end GPU today, but it processes 170917888 bytes / playing counter = 102891520 bytes.
So even if GeForce8400 can do real time 8192 Taps FIR, 4 way output.

08/14/2008
Output Buffer format was changed to float,
organizing source to add ring buffer, input streaming.

Video Card was changed to GeForce 9500GT, MSI N9500GT MD512Z.
Running 400MHz by MSI tool and it's very cool, about twice faster than GeForce8400.
Total power : 76W when running FIR.


08/17/2008
I implemented Stream Mode, now I can connect CD player - PC with GPU FIR - HDMI output.
This Full Digital Channel Cross-over's spec are...

8192 Taps real FIR, without FFT. (expandable)
over 200dB/Oct cutoff (at 8192 taps)
4 Way output (expandable)

Price: below $1,000
CPU: Athlon BE 2350 + Scythe Orochi cooler
VGA: GeForce 9500GT Falness
Mother: GeForce 8200
Power: Zen 400W Fanless
Storage: 32GB SSD
Complete fanless, motorless operation
Power usage: 76W

Fully customisable with source code
Input: SPDIF or WAV file (or what you like)
Output: HDMI Linear PCM 8ch (6ch available for AV amplifier) (or what you like)

DRC: Straight Phase Room EQ
Level: Channel Level Control, by dB offset
Delay: Channel delay control, 1/44100 sec









09/01/2008


Run VBDllTestApp01.exe.
GPU FIR Output process will be executed automatically.
File Mode. Drag & drop from Explorer, then press play.
GPUFIR output proigram has it's own Linear buffer for file.
This player reads all of data into RAM first, then start playing.
Pros: there are no hardware access to HDD while playing.
Cons: Slow when NAS connected by Wifi.



Stream mode. Check "Stream Mode" .
Input Streamer will run automatically.
There are 262,144 bytes FIFO between Input Streamer and GPU FIR output process.



return to home