While cluing-myself before I commit soldery on working electronics, I finally figured out what is going on with the Dynex dx-sc51 from earlier in this thread.... I was investigating whether I could perform my I2S-vampirism experiment on the soundcard least likely to cause sadness and loss at it's untimely departure -- my Dynex dx-sc51.... (see http://old.nabble.com/digital-upgrade-of-older-equipment-via-I2S-with-jitter-attenuating-S-PDIF-receiver-evaluation-board----td28997419.html ). Before I butcher the card any further -- which would be to add a stereo balanced out to the db50xg DAC that I've already tapped into -- I wanted to document where I'm at, and post some links to MIDI files rendered using the NEC XR385 (Yamaha db50xg/MU-10 clone) in a Terratec DMX6Fire -- from 2003 -- versus a Dynex dx-sc51 (from 2009) with worse noise specs, most of which appears to be DC-offset. However, please note, just with the trivial analog modification, there's a dramatic improvement in sound, with the analog-modded synth-card in the cheaper "consumer" dynex ($0.99 on ebay) sounding better than a "prosumer" Terratec DMX6Fire 24/96 ($20.00 on ebay). Noise be damned, because it's all DC-offset. Jnoisemeter says the terratec+yamaha have a -75db noise floor regardless of "DC" filter. At about the same estimated amplification level (+12db) the dynex+yamaha have -74.5db noise floor as long as DC filtering is on. But -34.5db without DC filtering and otherwise "flat" response (!). Despite the DC offset (which was also present, more asymmetrically between channels, before the modification), the sound improvement comes from getting rid of unnecessary analog buffering and decoupling -- I've bypassed THREE 10uF series capacitors, a BJT op-amp, numerous series resistors, several 0.1uF bypass capacitors -- no need since there's a known load and short connection needed between the DAC and the Codec of the soundcard. Replaced it all with a single 100uF capacitor. Now the bass thumps properly again, and the fundamental tone is back and back without a "rounded" attack. As bonus, removing the synth-card's output buffer op-amp solves the problem of outputting too much volume and making the sound less distinct and clear. Now I can make useful gain adjustments on the dynex's capture-gain in alsamixer -- the normal +9-+12db of gain to get the digital levels up to 0db is right in the middle of the 0-22.50db of analog amplification provided by the codec. Before I had to turn down the MIDI volume to prevent clipping. Now I can adjust the capture gain upwards of +9db if I want to see clipping on the loudest of publicly available MIDI files. So ultimately, the modification allows you to make optimum use of the dynamic range of the 16bit/44.1K digital source of the synth. The Dynex's analog section is predicated on something I didn't expect to find with a "modern" soundchip like the Via ICE VT1723 -- "Via ICE VT1616 6-Channel AC97 Codec with S/PDIF." -- AC97 means that the analog section is running at 48K, no matter what. The strange low-frequency artifacts presented in the .png's I posted earlier were perhaps the result of resampling from 44.1->48K (?), and a huge DC-offset that is either the result of a bug in alsa-driver-1.0.23/alsa-kernel/pci/ice1712/ice1712.c (used for snd-ice1724) or a leaky capacitor, or the need for a shunt resistor to ground (next mod, along with using -- http://www.rdlnet.com/pdf/Data_Sheets/sta-1.pdf -- sent into "floating" balanced output.). With intention to improve the sound, I completely bypass the NEC XR385's analog output section that decouples the DAC output with an op-amp ( http://www.datasheetcatalog.org/datasheet/nec/UPC4570.pdf ) delivering unnecessary gain, distortion, and clipping-potential to the synth's output. That is, the analog outputs of the AK4510 ( http://electro-music.com/forum/phpbb-files/ak4510_codec_683.pdf ) are connected to the cut-off, 8cm end of a shielded 4-pin analog-cd cable normally found in consumer pc's to connect the cd-rom sound -- bypassing the 10uF capacitors on both input and output side of the synth-card's uPC4570 opamp. On the Dynex card, I plug the 4-pin connector into the 4-pin analog-cd input. In the original design, the dynex's 10uF bypass caps fed into the codec; I replaced with the freshest 100uF 16v capacitor I had laying around that would fit. There was also an RC filter composed of microscopic surface-mounted 330 ohm resistor and 0.1uF to ground that I removed off the CD input. In summary, the synth's AK4510 outputs straight through 8cm shielded cable, to 100uF cap, and on to VT1616... . I left the 10uF ground coupling capacitor and it's 0.1uF bypass between the synth-card and the analog cd in. The original files were recorded at 44.1k: per spec-sheet AK4510 codec uses "11.2896Mhz" MCLK (@256fs), for an fs=44.1Khz, SCLK=1.4112Mhz (@32fs)" , where 11.2896Mhz * 3 = 33.8688Mhz: the crystal near the main Yamaha VLSI is == 33.868Mhz., meaning the Yamaha's sample rate is 44.1K. Recording at 48K, as was done on all files below named "*on-analog-modded-dynex*", is thus a waste of space. It was done to bypass any resampling that would happen by running the codec other than the prescribed AC97 48k.... so it's not a fair comparison, but also, I don't think a higher bit-rate is all that happened to the sound on the dynex -- it's also a combined reduction of all the op-amps and capacitors in the signal path. All files were encoded with "oggenc -q 10": http://nielsmayer.com/npm/Intelligent-Summer-on-analog-modded-dynex+12db.ogg http://nielsmayer.com/npm/Intelligent_Summer.ogg (orig http://www.megatrade.ru/Midi/Isummer.zip -> Intelligent Summer.mid) http://nielsmayer.com/npm/Is_god_-_Free_demo_Copyright_Yamaha_-on-analog-modded-dynex+12db.ogg http://nielsmayer.com/npm/Is_god_-_Free_demo_Copyright_Yamaha_-_XG.ogg (orig http://www.blueman.name/Jazz.php -> Is god - Free demo Copyright Yamaha - XG.mid NOTE: demo of the guitar sound capabilities extolled in http://en.wikipedia.org/wiki/Yamaha_XG ) http://nielsmayer.com/npm/Skyline_Herbie_Hancock_on_analog-modded-dynex+13.50db.ogg http://nielsmayer.com/npm/Skyline_Herbie_Hancock_TG300B.ogg (orig from http://www.blueman.name/Jazz.php -> "Skyline\ -\ Herbie\ Hancock\ -\ TG300B.mid" ) http://nielsmayer.com/npm/chpn_op53-on-analog-modded-dynex+13.50db.ogg http://nielsmayer.com/npm/chpn_op53_coggie.ogg (orig http://www.piano-midi.de/midis/chopin/chpn_op53.mid ) -- Niels http://nielsmayer.com PS: TODO: investigate whether alsa-driver-1.0.23/alsa-kernel/pci/ice1712/ice1712.c has a bug in that the following feature of the VT1616 codec ( http://www.datasheetarchive.com/pdf-datasheets/Datasheets-3/DSA-48587.pdf ) is being ignored: > "VT1616 codec has capability to remove DC offset: > Vendor Reserved Register (Index 5Ah) > > BPDC: ADC DC-offset Removal Control > The default setting of “0” ensures that the circuit is disabled at power up. When set to “1”, the DC- > offset cancellation circuit will be enabled. This helps to maximize recording quality by removing > white noise. > > DC: DC-offset Removal Capability > This read only bit indicates that the codec incorporates DC-offset removal hardware." _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/listinfo/linux-audio-user