VST: flexible multichannel audio plugins
Hi there,
great job so far, though i can't use it yet without that new GPU i want 🙂
have you ever thought about making a VST-plugin out of your solution?
Steinberg VST features high level multichannel input and output streaming.
It integrates perfectly into most professional audio editing programs on the market.
Howewer, VST3 has not as many host applications yet, so VST2.4 would be the better choice here. They provide nice SDKs for both and even for host application development and for ASIO-drivers.
You could use your code in a studio environments for music (DVD-) production as well as a digital mixer in a DJ-Setup.
I would love to see the massive power of CUDA integrated into my music production software.
Greetz
Toffer
Hi there,
great job so far, though i can't use it yet without that new GPU i want 🙂
have you ever thought about making a VST-plugin out of your solution?
Steinberg VST features high level multichannel input and output streaming.
It integrates perfectly into most professional audio editing programs on the market.
Howewer, VST3 has not as many host applications yet, so VST2.4 would be the better choice here. They provide nice SDKs for both and even for host application development and for ASIO-drivers.
You could use your code in a studio environments for music (DVD-) production as well as a digital mixer in a DJ-Setup.
I would love to see the massive power of CUDA integrated into my music production software.
Greetz
Toffer
Hi, I downloaded Steinberg SDK before, and found that we can not post source code. So I made my own programs.
I can not support each one user, so I throw whole source codes to www. (When I make VST plugin as binary, I have to modify and modify and version up and up..)
also I have poor experience on studio, audio professinal area.
I can not support each one user, so I throw whole source codes to www. (When I make VST plugin as binary, I have to modify and modify and version up and up..)
also I have poor experience on studio, audio professinal area.
FIR Coeff Gen
The FIR coefficient generator in your package is nice, thanks for sharing, I really like the EQ feature... however, I cant seem to make a filter with it that doesnt 'ring' horribly, changing kaiser window doesnt seem to do anything to the slope, as does reducing the target stopband attenuation, many attempts with different values of taps, alpha and attenuation all seem to result in increadibly steep cut off slopes... am I missing something obvious?
Many thanks.
The FIR coefficient generator in your package is nice, thanks for sharing, I really like the EQ feature... however, I cant seem to make a filter with it that doesnt 'ring' horribly, changing kaiser window doesnt seem to do anything to the slope, as does reducing the target stopband attenuation, many attempts with different values of taps, alpha and attenuation all seem to result in increadibly steep cut off slopes... am I missing something obvious?
Many thanks.
Illustration
Just a quick arta grab to show what I mean, the low pass had a kaiser alpha value of 8 and a target stopband atten of -60db, the high pass has a kaiser alpha value of 16 and a target stopband atten of -100db, the cutoff slope is exactly the same.... ??
Just a quick arta grab to show what I mean, the low pass had a kaiser alpha value of 8 and a target stopband atten of -60db, the high pass has a kaiser alpha value of 16 and a target stopband atten of -100db, the cutoff slope is exactly the same.... ??
Attachments
Hi you mean you want to have smooth filter slope?
I think you have to reduce TAPS to 128 or 64 or 32, to get slow-roll-down slope.
Kaiser is to get high stopband attenuation.
Long Tap FIR filter is to get steep filter, so maybe you should use IIR filter? Then you can get 6/12/24 dB/Oct smooth filter.
I think you have to reduce TAPS to 128 or 64 or 32, to get slow-roll-down slope.
Kaiser is to get high stopband attenuation.
Long Tap FIR filter is to get steep filter, so maybe you should use IIR filter? Then you can get 6/12/24 dB/Oct smooth filter.
Attachments
I thought kaiser window defined slope as well as stopband attenuation? I dont mind a 100db/octave filter, but the ones produced by your program seem to make filters with a much higher slope than that, moving 10-20db down within a few hertz.... I have searched through the source to find a variable to change to make the filter slope less sharp, couldnt find anything that worked....
Using DPS links, increasing the kaiser window alpha value not only increases stopband attenuation, but makes the curve less steep.
Have you not experienced 'ringing' with the filters from your program? To me its very audable.... but it could be something else wrong......
Using DPS links, increasing the kaiser window alpha value not only increases stopband attenuation, but makes the curve less steep.
Have you not experienced 'ringing' with the filters from your program? To me its very audable.... but it could be something else wrong......
I thought the number of taps in a filter affected frequency resolution, which allows for a steeper slope, but does not create it.....
I'l post back in a little while after creating some filters with much lower taps using your program.....
Btw, using filters based on the remez algorthim I get no ringing what so ever.... I have no 'mid speaker high frequency noise'...
I'l post back in a little while after creating some filters with much lower taps using your program.....
Btw, using filters based on the remez algorthim I get no ringing what so ever.... I have no 'mid speaker high frequency noise'...
ok, tried 1024 tap filter, you are indeed correct that with your program fewer taps produce a shallower slope, but I then tried listening to these filters, they sound HORRIBLE..... just cant listen to them, (though the ringing almost disapeared).
So is there anyway to reduce the slope of the filters it produces while keeping tap count the same???? 🙂
Thanks.
So is there anyway to reduce the slope of the filters it produces while keeping tap count the same???? 🙂
Thanks.
(1) Can you measure waveform and frequency spectrum of "ringing"?
(2) What is your FIR engine? my GPUFIR?
(3) You should modify CreateFres() function to get dull curve.
___|-----|___ -> ___/-----\___
But it will have no effect to signal quality.
(2) What is your FIR engine? my GPUFIR?
(3) You should modify CreateFres() function to get dull curve.
___|-----|___ -> ___/-----\___
But it will have no effect to signal quality.
Forgive me for coding knowledge = zero, but from looking at the CreateFres part of the program it seems the only thing to edit is the : gain = pow(10.0, DEFREDUCT / 20.0); terms, which deal with the gain in the pass and stop bands, nothing seems to affect the transition between the two.... 😕
I tried many cominations of the '10.0' & '20.0' terms above (different values) but none of them affected slope....
I'm using brutefir, maybe it creates ringing more readily with steep filters than your (excellent) GPUFIR program... would be using yours if I could lay my hands on an 8 series gpu....
I'm not sure my measurement technique is good enough to provide measured evidence, but I shall have a go soon....
Thanks again.
I tried many cominations of the '10.0' & '20.0' terms above (different values) but none of them affected slope....
I'm using brutefir, maybe it creates ringing more readily with steep filters than your (excellent) GPUFIR program... would be using yours if I could lay my hands on an 8 series gpu....
I'm not sure my measurement technique is good enough to provide measured evidence, but I shall have a go soon....
Thanks again.
CreateFres() function only works to make "ON"/"OFF", then modify FreqResR[] by EQ parameter, in pass band.
I mean you need your source code to make some "dull curve" in FreqResR[]...
I don't know inside of brutefir, but I think brutefir can work with FIR coeffs which is made by brutefir itself. I'm wondering about you are using EQ functionallity. you should try my Coeffs : without EQ, can work in brutefir first.
http://momiji.i.ishikawa-nct.ac.jp/dfdesign_eng/gfir/fir.shtml
here is some FIR filter analyzer, not made by me / not related to brutefir. So you can compare both (mine / brutefir) coeffs here.
I mean you need your source code to make some "dull curve" in FreqResR[]...
I don't know inside of brutefir, but I think brutefir can work with FIR coeffs which is made by brutefir itself. I'm wondering about you are using EQ functionallity. you should try my Coeffs : without EQ, can work in brutefir first.
http://momiji.i.ishikawa-nct.ac.jp/dfdesign_eng/gfir/fir.shtml
here is some FIR filter analyzer, not made by me / not related to brutefir. So you can compare both (mine / brutefir) coeffs here.
Originally posted by Theo404
I thought the number of taps in a filter affected frequency resolution, which allows for a steeper slope, but does not create it.....
You're right, there. With most window types, the number of taps is directly proportional to the "product" (I can't think of a better word for it) of the steepness and stopband attenuation. In the case of the Kaiser window, the (alpha) parameter allows you to pretty much just trade off one for the other. The length of the filter dictates how much slope/attenuation you get overall, but not the balance. It is perfectly possible, with lots of taps, to get a shallow filter with a lot of stopband attenuation.
Incidentally, I find that provided you use enough taps, you get a stopband attenuation of approximately 10 * beta. Using less taps than required gives less attenuation, and using more taps than required gives the same attenuation with a steeper slope. My normal method with the Kaiser window is to specify a parameter of 10-15 (for between 100dB and 150dB of stopband attenuation), then scale the number of taps to get the sort of slope I'm looking for.
I apologise for the wordyness of my descriptions, I don't think they are very good. If response graphs are wanted, I can make some some of those and post them up (don't have the time just now)
Theo404 said:I thought the number of taps in a filter affected frequency resolution, which allows for a steeper slope, but does not create it.....
I'l post back in a little while after creating some filters with much lower taps using your program.....
Btw, using filters based on the remez algorthim I get no ringing what so ever.... I have no 'mid speaker high frequency noise'...
Hi Theo404-
I think you are thinking of a FFT "spectrograph" when you say that more taps produce more accuracy, correct? The number of taps in a filter only determine its ultimate "shape" or steepness, if you will.
Perhaps you already know all this, but a very nice paper was written by K. Steiglitz called "METEOR - A Constraint-Based FIR Filter Design Program", which also details some of the mathematics behind the Remes algorithm and the Parks-McClellan approach to the design of filters. The paper is here:
http://www.cs.princeton.edu/~ken/meteor_article.pdf
Anyone else wanting a very in-depth look at the mathematics behind audio DSP in general might have a look at Steiglitz's book "A Digital Signal Processing Primer", I have found it invaluable as a resource! In it he gives a pretty thorough treatment of digital filter design using METEOR as the primary tool.
Believe it or not, Wiki has a pretty good explanation of "windowing functions", many of which I was not remotely familiar with:
http://en.wikipedia.org/wiki/Window_function
Also Koon3876, your work is most excellent! Thank-you again for inspiration... 🙂
Kindest Regards!
Hi Cliff thanks,
some progress:
Now I can play GPU FIR on ASUS N10Jc netbook (with GeForce 9300M GS). also programs are looks like more simple now.
And I found "Virtual Audio Cable" can connect between iTunes / WindowsMediaPlayer / or any, and my GPUFIR. maybe I will post "howto" next weekend.
http://www.ntonyx.com/vac.htm
some progress:
Now I can play GPU FIR on ASUS N10Jc netbook (with GeForce 9300M GS). also programs are looks like more simple now.
And I found "Virtual Audio Cable" can connect between iTunes / WindowsMediaPlayer / or any, and my GPUFIR. maybe I will post "howto" next weekend.
http://www.ntonyx.com/vac.htm
KOON3876 said:Hi Cliff thanks,
some progress:
Now I can play GPU FIR on ASUS N10Jc netbook (with GeForce 9300M GS). also programs are looks like more simple now.
And I found "Virtual Audio Cable" can connect between iTunes / WindowsMediaPlayer / or any, and my GPUFIR. maybe I will post "howto" next weekend.
http://www.ntonyx.com/vac.htm
Does that mean you have removed the process of splitting the audio into 8 wavs and saving them to disk?
Theo404 said:
Does that mean you have removed the process of splitting the audio into 8 wavs and saving them to disk?
That function is still available. but people wants to play on iTunes etc. So I looked for how to use iTunes.
VAC is a Sound Output Device -and- Sound Input Device.
iTunes outputs sound to VAC.
If there are no application, nothing sounds.
If some application receives sound stream from VAC, it can capture audio stream from iTunes.
See ntonix www and get trial version.
iTunes outputs sound to VAC.
If there are no application, nothing sounds.
If some application receives sound stream from VAC, it can capture audio stream from iTunes.
See ntonix www and get trial version.
good, but VAC isnt asio therefore i doubt it avoids windows KMIXER?. Theres another alternative (free!), JACK for windows. I had trouble with that one, namely, cant use more than 16bit / 44k , otherwise its "multiclient".
http://www.kvraudio.com/forum/viewtopic.php?p=3364270
http://www.kvraudio.com/forum/viewtopic.php?p=3364270
- Status
- Not open for further replies.
- Home
- Source & Line
- Digital Line Level
- nVidia CUDA GPU computing PC FIR