Go Back   DriverHeaven.net > Forums > Hardware and Related Topics > Audio General and Technical Discussion

Notices

Reply
 
LinkBack Thread Tools Display Modes
Old Mar 30, 2007, 01:50 PM   #1 (permalink)
jiiteepee
DriverHeaven Addict
 
Join Date: Apr 2005
Location: FI
Posts: 380
jiiteepee is on a distinguished road

Turntable->PC (RIAA EQ done by software filter ..)

Hello!

Well, after many tries w/ not so good results in using EQ plugins for RIAA compensation, I have now implemented a solution of my own ... a RIAA reproduction filter to be used when turntable is connected into soundcard without hardware RIAA stage in signal path.

All I can say so far, is that the results I get are really qood but, since I have only one set of hardware to try it with, I would like you to evaluate this too. This 'demonstration' filter,



( .. Sorry 'bout the visual outlook but ... don't laugh, it should work)

which I have linked below, is prepared only for you. It is optimized for 44.1/48 kHz audio (any bit depth can be used) and it can be used through Cycling74 Max/MSP runtime enviroment only. ASIO, MME, DS, etc. are supported as well as Windows XP and MAC OS/X 10.3.9-> (there is a runtime for both systems available). For this "evaluation" version, I have included a rumble filter (Subsonic) w/ ability to set the cutoff frequency (5-30Hz) and Q (0.1-1.41). It's allways ON and not very well implemented (see below).

As mentioned, these filters are for 44.1 or 48 kHz data only. What it means is that the mathematical model is matched for amount of this much samples (sample accurate processing). Biquad method used in this filter uses three samples to get the new output value calculated (current sample and two previous samples). What happens if you set samplerate to other than 44.1kHz for 44.1kHz filter as for an example ... samples becomes processed wrong --> quality becomes bad.

44.1kHz version:

Here are the needed software:
RIAA Filter (for 44.1kHz) DEMO.rar (~16kB)
Mirror 1
Mirror 2


"Max/MSP 4.6.2 Runtime" enviroment (PC/MAC) (~4.5MB) -
Asio4All - http://www.asio4all.com (free)

48kHz version (improved functionality):


I prepared another evaluation version ... now it's fixed for 48kHz instead of 44.1kHz, it can be used without preamplifier too (in most cases) and it's possible to record the output to a 16-/24-/32-/32f-bit wav file (though, this needs another plugin being installed, see below).

I also added a "reset to defaults" button so It's possible to get everything working much easier. Subsonic filter is not improved ... it still cuts only 6dB/oct instead of 'required' 36dB/oct.

'bout recording the output:
You need to install Voxengo Recorder VST (free) plugin into the same directory where this RIAA Filter is placed into, to get the recorder working. Actually, you could use any plugin but it needs to be renamed equally to the voxengo recorder .dll. Set the "MME Device" to "Sound Mapper" .. otherwise you may hear some unwanted noises (those are not added into recorded file). Set the "Output To " -> "File". Name the file before recording. Set the bit-depth.

Here are links for the new version.
RIAA Filter (optimized for 48kHz) DEMO.rar
Mirror 1
Mirror 2

NOTE: Filename may become changed by the file service providers system.
-- 3 files included in rar packet (2 pictures (background images) and the filter .pat file)

A picture showing some of the needed settings.


Other possibly needed software:

SRC/dithering Voxengo r8brain (free) - http://www.voxengo.com/product/r8brain/
----------------------------------------------------------------------------------------------------

Setting everything up (Windows):
- connect the turntable into PC soundcard through a flat pre-amplifier (no RIAA satage in signal path)
- connect your output device (receiver/amplifier/active speakers/headphones)
- install the Max/MSP runtime enviroment
- extract the "RIAA Filter.rar" to your harddisk
- extract the Voxengo Recorder into same directory w/ the Filter softare
Start the RIAA Filter program either by
- starting the runtime enviroment and Open the "RIAA Filter (for 44.1kHz).pat" or double-clicking the "RIAA Filter (for 44.1kHz).pat" (through Windows Explorer -> .pat extention should be associated to Max/MSP runtime then)

In "RIAA Filter (for 44.1kHz)" screen:
- set I/O devices; ASIO recommended (if no sound, remember check settings in mixer software)
- adjust the Subsonic filter by dragging w/ mouse (Hz = 25Hz and Q = 0.71 are good to start from) (see below) or by pressing the "Reset to defaults" button (48kHz version)
- adjust Gain to somewhere near the 0dB mark (128)
- press the Play/Stop button to enable the playback through filter
- readjust the Gain by the signal you get

NOTE: If you can hear audio when Play/Stop is set "OFF" (there should be total silence) then you need to set something in your mixer softwre (maybe monitoring OFF, mute something, etc.) otherwise the unfiltered signal is summed into playback --> brighten sound.

Some notes:

Subsonic filter:
It's a low order highpass filter so the cut is not very sharp/steep ... you can use 25-30Hz as cutoff frequency w/o loosing much from above the 20Hz frequencies. Example on how # of orders effects (this is lowpass filter used in example) :
http://www.kwon3d.com/theory/filteri..._lpass_f02.gif

RIAA filter:
The original filter coefficients (15 decimal accuracy) gives quite accurate de-emphasis curve (±0.23dB (44.1kHz), ±0.15dB (48kHz)) even it's a 2nd order filter (4th order filter would give ±0.0006dB) .. as the Max/MSP enviroment seem to scale and round the given value into 6 decimal value, it may have some negative effect on accuracy. I have compared the orignal 15 decimal data against rounded 7 decimal data and those didn't differ very much by the results (sound/frequency response curve). Some other results from measurements:

Phase:



Harmonic distortion:




Software:
Gain, and Subsonic controllers resets to "0" when filter is loaded into runtime enviroment so, all these needs to be set every time after filter is loaded otherwise you get bad quality audio if at all. If you get rattle in audio, just toggle the Play/Stop or reassign your I/Os. The 48kHz version has a "reset to defaults" feature which makes things easier.
Hmm.. I hope there are no bugs since I can't test (or fix in realtime) because of I'm still using W2k and I do not have Max/MSP which also needs least XP being installed (even the runtime won't get installed in W2k SP4).

Hardware:
You need some pre-amplification for turntable output (in most cases) to get signal levels good enough for soundcard input. As you can gain the signal upto +17dB (44.1kHz version) - +38dB (48kHz version) software wise, it's possible that you can get everything working w/o additional flat pre-amplifier (I have tried this and it seem to work well but, it is card dependent ofcourse) but, also remember that the best connection impedance for cartridge is normally ~47kΩ (-100kΩ) and load capacitance less than 200pF (or by the cartridge specs). Pre-amplifier is recommended in any case.



If you try/use this software, remember to leave some comments here.

jiitee
__________________
VST/DX (effect) plug-ins with Winamp, MediaMonkey and Foobar 0.8.x-0.9.x - needed components :
Winamp and MediaMonkey: VST support -
VST Host DSP for Winamp, DirectX support - FFX-4 for WinAmp
Foobar: Bridge Plug-in for winamp DSP for Foobar 0.8.x-0.9.x or for Foobar 0.9.x + VST Host DSP for Winamp and/or FFX-4 for Winamp (see above)
Additional plug-ins: (use multiple plug-ins, etc.) Acon EffectChainer (DX/VST), CTAF MultiFXVST (VST), XLUTOP Chainer (VST), energyXTEffect (VST)
Output plug-ins: Foobar: ASIO and KernelStreaming (0.9.x), ASIO (0.8.x) ... Winamp and MediaMonkey: ASIO and KernelStreaming
3rd party ASIO drivers: Asio4All, (ASIOx , discontinued.?) ASIO2KS, USB-ASIO, FireWire-Universal and Ideal (+ OEM), ..... !!! ASIO Control panel

Last edited by jiiteepee; Apr 1, 2007 at 02:50 PM.
jiiteepee is offline   Reply With Quote
Old Mar 30, 2007, 06:47 PM   #2 (permalink)
dj_stick
DH's Latest Mac Convert
 
dj_stick's Avatar
 
Join Date: Jun 2003
Location: Basement of the first floor
Posts: 15,550
dj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to all
System Specs

this will be really useful with travelrec's hardware preamp - it requires a software EQ curve.

http://www.electricstart.de/site/liphoamp.htm
__________________
Chris - The Aussie Super Mod
Driverheaven Rules - Sig Request Thread
kX Website - kX Knowledgebase - kX Getting Started Guide

How you can help DriverHeaven by using Digg!

Driverheaven Super-Moderator - kX Knowledgebase Co-ordinator
dj_stick is online now   Reply With Quote
Old Mar 31, 2007, 10:49 AM   #3 (permalink)
jiiteepee
DriverHeaven Addict
 
Join Date: Apr 2005
Location: FI
Posts: 380
jiiteepee is on a distinguished road

.. and the resulting RIAA EQ reproduction magnitude is quite good even with these 44.1 and 48kHz filters I give away as a 'software' version. Especially the 48kHz version is fully usable because of added recording capability up to 32f-bit wav files.

(If you search commercial hardware RIAA stages as accurate as the 48kHz filter is (0.15dB (20Hz-20kHz)), you'll notice that you need to put some cash over the desk before getting as good as this is).

Are there any measured specs for that travelrecs pre-amplifier available?


jiitee
__________________
VST/DX (effect) plug-ins with Winamp, MediaMonkey and Foobar 0.8.x-0.9.x - needed components :
Winamp and MediaMonkey: VST support -
VST Host DSP for Winamp, DirectX support - FFX-4 for WinAmp
Foobar: Bridge Plug-in for winamp DSP for Foobar 0.8.x-0.9.x or for Foobar 0.9.x + VST Host DSP for Winamp and/or FFX-4 for Winamp (see above)
Additional plug-ins: (use multiple plug-ins, etc.) Acon EffectChainer (DX/VST), CTAF MultiFXVST (VST), XLUTOP Chainer (VST), energyXTEffect (VST)
Output plug-ins: Foobar: ASIO and KernelStreaming (0.9.x), ASIO (0.8.x) ... Winamp and MediaMonkey: ASIO and KernelStreaming
3rd party ASIO drivers: Asio4All, (ASIOx , discontinued.?) ASIO2KS, USB-ASIO, FireWire-Universal and Ideal (+ OEM), ..... !!! ASIO Control panel
jiiteepee is offline   Reply With Quote
Old Mar 31, 2007, 05:20 PM   #4 (permalink)
dj_stick
DH's Latest Mac Convert
 
dj_stick's Avatar
 
Join Date: Jun 2003
Location: Basement of the first floor
Posts: 15,550
dj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to all
System Specs

not that i am aware of - i think he designed the circuit - and hoped someone would be able to program an EQ for the kX DSP - though if i have the time i might build one, providing i can source the components

btw my turntables have their own preamp built in, so i can switch between line level and phono level out, to do a comparison in perceived quality
__________________
Chris - The Aussie Super Mod
Driverheaven Rules - Sig Request Thread
kX Website - kX Knowledgebase - kX Getting Started Guide

How you can help DriverHeaven by using Digg!

Driverheaven Super-Moderator - kX Knowledgebase Co-ordinator
dj_stick is online now   Reply With Quote
Old Mar 31, 2007, 06:42 PM   #5 (permalink)
jiiteepee
DriverHeaven Addict
 
Join Date: Apr 2005
Location: FI
Posts: 380
jiiteepee is on a distinguished road

Hope he noticed this thread - Need help with filter implementation

Do you mean you could route the line-level signal through PC to the same output device you have connected your turntables through normal way? If yes then, if you have some spare time to make few comparisons, I could e-mail you a better quality RIAA Filter either as a VST plugin + setting-up guide or as a similiar construction as those evaluation versions but w/ a step better quality. Maybe you should test if you get the above 48kHz filter working w/ your setup 1st.

jiitee
__________________
VST/DX (effect) plug-ins with Winamp, MediaMonkey and Foobar 0.8.x-0.9.x - needed components :
Winamp and MediaMonkey: VST support -
VST Host DSP for Winamp, DirectX support - FFX-4 for WinAmp
Foobar: Bridge Plug-in for winamp DSP for Foobar 0.8.x-0.9.x or for Foobar 0.9.x + VST Host DSP for Winamp and/or FFX-4 for Winamp (see above)
Additional plug-ins: (use multiple plug-ins, etc.) Acon EffectChainer (DX/VST), CTAF MultiFXVST (VST), XLUTOP Chainer (VST), energyXTEffect (VST)
Output plug-ins: Foobar: ASIO and KernelStreaming (0.9.x), ASIO (0.8.x) ... Winamp and MediaMonkey: ASIO and KernelStreaming
3rd party ASIO drivers: Asio4All, (ASIOx , discontinued.?) ASIO2KS, USB-ASIO, FireWire-Universal and Ideal (+ OEM), ..... !!! ASIO Control panel
jiiteepee is offline   Reply With Quote
Old Apr 1, 2007, 04:06 AM   #6 (permalink)
dj_stick
DH's Latest Mac Convert
 
dj_stick's Avatar
 
Join Date: Jun 2003
Location: Basement of the first floor
Posts: 15,550
dj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to all
System Specs

i meant playing a record i know well via line level, and then the phono output - preamp through the filter - i know it's not the most scientific method, but it's the best i have atm, and it uses the best possible piece of equipment we have - our ears
__________________
Chris - The Aussie Super Mod
Driverheaven Rules - Sig Request Thread
kX Website - kX Knowledgebase - kX Getting Started Guide

How you can help DriverHeaven by using Digg!

Driverheaven Super-Moderator - kX Knowledgebase Co-ordinator
dj_stick is online now   Reply With Quote
Old Apr 6, 2007, 12:48 AM   #7 (permalink)
jiiteepee
DriverHeaven Addict
 
Join Date: Apr 2005
Location: FI
Posts: 380
jiiteepee is on a distinguished road

Did you already tried the RIAA Filter in action?

In generally, when trying this RIAA Filter w/o pre-amp and you can't get levels high enough for decent playback then you could also try this:
- download the Max/MSP Trial software
- open the Filter into it, and switch to Edit mode
- drag those objects (background image, etc.) to get those two biquad~objects available




There are five numerical values stored in those biquad~ boxes, just after the ADC~ object, for both left and right channels ... by multiplying those 3 first values by
- 5 you'll get ~+14dB more gain from filter (filter gain i sthen ~27dB),
- 10 you'll get ~+20dB (filter gain is then ~+33dB),
- etc.,

... so, If you copy these (these are for 48kHz only)

biquad~ 10, -7.555521, -1.646257113 -1.7327655 0.734553444

values and paste them over those old values in those biquad~ boxes (check also that everything matches there) ... do you start get better output levels? If results are not good yet then just multiply those original w/ 15 etc., or if you start getting distortion then use smaller multiplier. NOTE: Adding gain worses the Harmonic Distortion level but, w/ +33dB gain it should still be well below -100dB.

You should also be able to save the changes you made (the Max/MSP trial is valid for 30 days but, after that you should be able to use the fixed Filter w/ Max/MSP Runtime w/o limitations).


jiitee
__________________
VST/DX (effect) plug-ins with Winamp, MediaMonkey and Foobar 0.8.x-0.9.x - needed components :
Winamp and MediaMonkey: VST support -
VST Host DSP for Winamp, DirectX support - FFX-4 for WinAmp
Foobar: Bridge Plug-in for winamp DSP for Foobar 0.8.x-0.9.x or for Foobar 0.9.x + VST Host DSP for Winamp and/or FFX-4 for Winamp (see above)
Additional plug-ins: (use multiple plug-ins, etc.) Acon EffectChainer (DX/VST), CTAF MultiFXVST (VST), XLUTOP Chainer (VST), energyXTEffect (VST)
Output plug-ins: Foobar: ASIO and KernelStreaming (0.9.x), ASIO (0.8.x) ... Winamp and MediaMonkey: ASIO and KernelStreaming
3rd party ASIO drivers: Asio4All, (ASIOx , discontinued.?) ASIO2KS, USB-ASIO, FireWire-Universal and Ideal (+ OEM), ..... !!! ASIO Control panel
jiiteepee is offline   Reply With Quote
Old Apr 6, 2007, 12:58 AM   #8 (permalink)
dj_stick
DH's Latest Mac Convert
 
dj_stick's Avatar
 
Join Date: Jun 2003
Location: Basement of the first floor
Posts: 15,550
dj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to alldj_stick is a name known to all
System Specs

i haven't had a chance to test yet, no pre
but i'm hesitant to test that method, as adding that much gain via software will boost the noise floor considerably - so any tests i do won't be a true perceptive test, as the added noisefloor will colour the sound and i won't be able to give an accurate comparison
__________________
Chris - The Aussie Super Mod
Driverheaven Rules - Sig Request Thread
kX Website - kX Knowledgebase - kX Getting Started Guide

How you can help DriverHeaven by using Digg!

Driverheaven Super-Moderator - kX Knowledgebase Co-ordinator
dj_stick is online now   Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump




 

 
Powered by: vBulletin
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
SporeHeaven skin by Allan "Zardon" Campbell, for Electronic Arts. vBulletin implementation by Craig '5320' Humphreys

All times are GMT -5. The time now is 08:31 AM. Copyright ©2008 DriverHeaven.net