AVX based FIR VST, crossover / EQ / DRC and delay
I made some VST, using intel AVX technology on SandyBridge CPU.
Now I have FIR (without FFT) crossover / EQ / DRC, and Delay VSTs.
all of them are Phase-linear.
I tested on Windows7 Pro x64 SP1 / Core i7-2630QM.
Player: foobar + asio_out, to ReaRoute (component of Reaper)
VST Host: Reaper 4.10 32 bit Personal edition
Audio hardware: exaU2I + my 3 way active
If you have AVX enabled OS and CPU, please try.
and, Source code is very simple. please download and take a look.
modification is welcome.
attached image: very steep LPF
SSE / AVX FIR VST Channel divider (crossover), delay, EQ, DRC - koonaudioprojects
I posted summary, source code and VST DLL here.
Now I'm playing on new FanLess PC,
Core i3-2120T + Scythe Ninja 3 + MSI H61 ITX + PicoPSU-150-XT
No problem for CPU % and temperature.
foobar + asio_out -> ReaRoute (internal ASIO) channel 1/2
Reaper has 3 tracks,
Low (0-960Hz) -> exaU2I ch3-4
Mid (960 - 3200Hz) + 15.4mm delay -> exaU2I ch5-6
High (3200-22050Hz) + 23.1mm delay -> exaU2I ch7-8
4 way FIR crossover
I added BIC DV64 (8inch x2 + Passive radiator x2), passive network was removed.
Photo 1: 4 way crossover on PC. each track has AVX FIR filter.
track 1: -120 (DV84), track 2: 120-960 (104 Low)
Photo 2: exaU2I USB to I2S x4 + 4way amplifier
Photo 3: Linn Komponent 104(3way) + DV84
DV64 is cheap ($300 pair) but makes tight base, I was surprised.
Q: is limited to exaU2I?
A: No, this is VST, just a plugin. so you can use any VST host program, capable players, and any multi-channel audio interface.
If you have HDMI audio output from PC and 7.1ch AV amp, already you have multi-amp system for up to 3 way.
what chip do I need to use to extract the I2S from HDMI without paying big bugs for the license?
excellent and innovative work as always KOON!!
I spotted on your site for this project you are playing around with a mac book pro, does this indicate further work on mac support? or just because its a cool and rather powerful laptop?
i have a mac mini with core i5 (sandybridge), i would love to be able to run this, i have everything needed except software capability. my usb -> 32bit 8 x 192/4 x 384 i2s card does not have windows drivers, but runs natively in osx 10.6.1 onwards as its usb audio class 2.0 compliant, but windows still hasn't caught up in this regard and i'm not sure if bootcamp will give access to the mac audio hardware without having some sort of base level support for the transport.
it would seem from my reading that this is usually the case as bootcamp/parallels manuals seem to claim hardware being available to both, but whether i can have the interface loaded in Lion, with a crossover running as above or with allocator accessing the multiple streams running in windows via parallels and its an expensive experiment time wise, as otherwise i have no intention of running windows on my mac. i can get demos of parallels and your build above, or allocator to try, but buying windows and setting it up properly for audio won't be trivial.
i so want to run this or allocator, but it seems something always gets in the way.
Sorry.. I wrote "HDMI audio output from PC AND 7.1ch AV amp".
I tried GeForce - HDMI - Denon AV amp before.
Still we can not separate or pick I2S signal from HDMI.
I hope USB + FPGA I2S multichannel should be more cheaper, in near future.
I tried foobar - Reaper(contains my VST) - exaU2I,
on Macbook Air 2010(bootcamp) / MBP17 2011 (Parallels 7).
Both recognized exaU2I (USB I2S x 4 interface).
I'm using MBP17 as programming console, sorry:o
For actual listening, I'm using Core i3 + Win7 fanless PC.
What I'm not sure on Mac is
(1) how to build VST on Mac.
-> should be http://www.teragonaudio.com/2010/06/...atch-with.html
(2) how to enable AVX on Mac.
-> looks like very new issue, from GCC 4.6? I still can't find sure "how-to".
I posted source code, so someone who understands (1) (2) should be able to build VSTs for Mac.
Hey KOON, thanks for the reply, yeah i saw that you have EXA working in exactly the way i desire, i have another similar unreleased device (i'm beta field testing) that uses a similar but different chipset and pretty different implementation as uses top of the range xmos chip, so its native hires usb audio CLASS 2 compliant, but pc driver is still not forthcoming (and frustratingly windows still doesn't support CLASS 2 except by further plugins). I would be so bold as to say that i think its a better device hardware wise than the exa unit, which it seems is excellent in its own right and has further developed software for XO duties. Normally i would prefer 'driverless' support, but in this case its working against me
i find it ironic that i'm praying for windows support for something on my mac :boggled: usb class 2 that is. this one has separate clocks for 22.1x, 24x and also separate isolated high grade clock for USB. so should be a brilliant XO interface with the right software and sounds very well for regular stereo on my ackodac sabre
unfortunately i don't have the programming Fu to participate in development, but i would be a very happy paying customer/beta tester. its possible that it will just work with parallels, with the mac usb audio support piped over to win and the 4 or 8 x outputs made available in console and audio streams from mac played through it (this last step may be taking it a bit far when i should probably just use foobar on win), but its far from ideal. but then using the pure music crossover or logic audio with waves diamond in Lion is far from ideal too.
I checked your links, it does seem that x86 i5 2500K AVX is enabled in GNU (GCC 4.6 onwards) using
link GCC 4.6
i have no knowledge of the coding needed above, just a long standing and well rounded mac history that doesn't shun command line when needed.
i'll check with some friends to see if they can help, but i would think an intimate knowledge of allocator and the objective at hand would be desirable? that combo is less easy to find.
Yes GCC 4.6 can handle AVX, but I need sure how to about "XCode and AVX".
maybe it will take a while, until AVX is available on XCode4 (CLANG compiler??).
Then, someone can build Mac version VST AVX-FIR crossover, for Mac DAW softwares.
for USB audio Class 2.. I think we just need ASIO interface? (Less OS components)
with ASIO, I'm sure everything is driven by single clock, close to FPGA.
ASIO driver 'pull' next data from application.
I already have
(1) USB1.1 - FTDI 245R - (FIFO+CPLD) - I2S output,
(2) USB2.0 - Cypress - FPGA - I2S x 4 output.
Both case single 11.2896MHz controls audio flow.
And I could build my ASIO driver DLL, Reaper recognized it.
So Now I'm thinking about
(3) ASIO interface - FTDI D2XX - DLP-HS-FPGA2 (FT2232H + FPGA) - I2S x 6 output
|All times are GMT. The time now is 02:17 AM.|
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Copyright ©1999-2016 diyAudio