AVX based FIR VST, crossover / EQ / DRC and delay

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
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.
 

Attachments

  • AVX_running_LPF.png
    AVX_running_LPF.png
    125.8 KB · Views: 1,568
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
 

Attachments

  • newPC_photo2011-10-16 11.47.14.jpg
    newPC_photo2011-10-16 11.47.14.jpg
    122.3 KB · Views: 1,462
  • newPC_playing2011-10-16 11.46.50.jpg
    newPC_playing2011-10-16 11.46.50.jpg
    183.1 KB · Views: 1,437
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.
 

Attachments

  • 4Way Running.jpg
    4Way Running.jpg
    306.4 KB · Views: 1,398
  • exaU2I_4wayAmp.jpg
    exaU2I_4wayAmp.jpg
    394.1 KB · Views: 1,355
  • 4WaySpeaker.jpg
    4WaySpeaker.jpg
    155.2 KB · Views: 427
Last edited:
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.

Great work Koon,

what chip do I need to use to extract the I2S from HDMI without paying big bugs for the license?

Greets,
Klaus
 
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.
 
Last edited:
Great work Koon,

what chip do I need to use to extract the I2S from HDMI without paying big bugs for the license?

Greets,
Klaus

Hi Klaus
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.
 
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?

Hi qusp,
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:eek:
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/making-vst-plugin-from-scratch-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
• Support for Intel Core i3/i5/i7 processors with AVX is now available through the -march=corei7-avx and -mtune=corei7-avx options.
• Support for Intel Core i3/i5/i7 processors is now available through the -march=corei7 and -mtune=corei7 options.

and the link you showed for vst looks sound, although i would think making an AU/audio unit in obj. C would be cleaner

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.
 
Last edited:
Hi qusp
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
 
yeah i wondered about that, as the same release notes mentioned nothing about AVX on the darwin/cocoa notes further down. yes, the 13MHz usb clock is the main clock for mcu/DSP/USB, but with the 2 dedicated audio clocks for 22x and 24x integer audio clock and 8 x 32/192 opt 4 x 32/384 i2s out on RJ45 or pinheader.

it can act as slave or master, but different setup needed for each. its set to master by default, quite an impressive board (if a bit large due to fairly large number of dedicated choke input power supplies) i'll probably make a post in the weeks to come, I've only recently got the mac mini which enabled me to use it and NO, for others reading, i have nothing to gain from its sale, I was simply contacted due to having a fair number of sabre dacs and apparent knowledge to set them up

on that note, it really its incredible the powerhouses you can get for little money these days; traditionally i would buy somewhere in the mid-high end of the mac lineup, but i could not think of any justification for it this time around given i don't game and don't do so much 3d modelling/design anymore.
 
Last edited:
Yes it was the price ...
2 x PLParEQ is running at 30 % CPU at 16384 samples , 32768 samples is possible but at 60 % CPU it is not very stable.
Unfortunately im not able to program , i compared it at your plugin only some minutes and it seems more or less similar.
The x-over is at 200 Hz , the result of the comparaison could be different at other frequencies ...
 
Hi Koon.

I find all that Windows implementation pretty complex.

On a nice rt-Linux running brutefir lots of issues could be
much easier. Somebody would have to port brutefir into
Cuda-space though. But even that wouldn't be required. It's that fast.


The main problem under Linux is the multichannel interface.

If exau2i would support Linux even at lower sample rates and no DSD,
I'd place an order today. ;)

BTW: What do you prefer soundwise? Your sd-card player or the PC setup.


Cheers
 
Hi Soundcheck,
FFT based PC crossover setup on Windows is easy.
https://sites.google.com/site/koonaudioprojects/exau2i-FFT-crossover
maybe there will be another free VST (FFT EQ) and VST host.
bruteFIR is FFT based, algorithm O(N x log N). not required to be faster.
straight FIR algorithm is O(N x M), so large N,M requires much computing power.

for exaU2I now there is Mac driver, please ask exa065 for source or Linux.

? soundwise :confused:
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.