Is it possible to build a program using Python that will run on somebody else's computer WITHOUT requiring that person to download Python libraries or DLLs or other stuff? I think this is called "fully static linking" and the last time I looked into Python, you couldn't do it. The computer that runs a Python program, must first install one or more helper libraries or environments or both. (Back when I investigated). You couldn't build a standalone .exe that would run on other diyAudio member's computers, UNLESS each and every person who ran that program, also downloaded and installed something like a DLL.
(Tcl/TK does offer this capability. I can send you an executable program that will run on your computer immediately. But Tcl/TK is terrible at numerical computation).
Do you really find that an impediment since everything is basically a few click download? You could checkout Welcome to PyInstaller official website which works for some people so I read.
Right now Anaconda Python downloads just about every dependency you could ever want, certainly more than enough for these problems. I don't see this any more of a hassle than having the right version of Javascript enabled.
Last edited:
Yes, unfortunately there exist a number of "ingenious fools" who always manage to screw up even the simplest operations. For these people the correct number of extra clicks is zero. Thanks very much for telling us about PyInstaller, it might just do the trick! It could possibly enable the widespread distribution of a new free app called something like Click Here To Make Error-Free RIAA Networks.
Murphy's Third Law according to Wikipedia:
Murphy's Third Law according to Wikipedia:
- It is impossible to make anything foolproof because fools are so ingenious.
Yes please Guru Johnson 🙂.. a new free app called something like Click Here To Make Error-Free RIAA Networks.
Doug, please include (with the Lipshitz eqns) in your new book a link to this most useful programme for arze hu neber wen 2 skul. 😀
In this quest for 0.1dB or better accuracy replay eq, just how accurate are the preemphasis curves of vinyl cutters used in the past 50 years ?.
Dan.
Dan.
It was a great relief when the Lipshitz eqns came out.
I wish I'd copied them down when I had access to JAES.
http://www.pearl-hifi.com/06_Lit_Ar...s/Lipschitz_Stanley/Lipshitz_on_RIAA_JAES.pdf
If you build an passive 75 uS and then active 3180/318 it is resonably easy to tweek the 3180/318. I haven't checked this calculator against others except to say it comes very close to my hand tweaked one. 25 dB 1kHz gain seems to be very common in good sounding amps of the 1980/90 as stage two. As good a place as any to start.
Active/passive RIAA online calculator | Crazy Audio
If a high grade calibration LP were made I suspect my way of doing this would sweep all the maths away as the only true way. Doubtless this would be equally wrong if assuming all LP's to be RIAA. Some say DMM are 50 uS. If so passive-active is the easier option and might be better in other ways. This disc if it existed would allow us to do the 75 uS using the cartridge inductance. It is not easy, try it yourself. It has advantages if it can be made to work.
Active/passive RIAA online calculator | Crazy Audio
If a high grade calibration LP were made I suspect my way of doing this would sweep all the maths away as the only true way. Doubtless this would be equally wrong if assuming all LP's to be RIAA. Some say DMM are 50 uS. If so passive-active is the easier option and might be better in other ways. This disc if it existed would allow us to do the 75 uS using the cartridge inductance. It is not easy, try it yourself. It has advantages if it can be made to work.
That approach isolates the pole/zero interaction somewhat and makes the design process and optimization easier. However, the tradeoff is noise and or headroom. You have placed the passive 2120 Hz pole in the first stage, followed by a high gain amplifier stage for the lower pole/zero's. If you then decide to raise the first stage gain and reduce the gain of the second stage to improve the noise performance, you lose headroom.
This approach is best suited to tube based designs where you have high supply rails and tens of volts headroom - solves the overload issue, but will never be as quiet as a solid state design.
For solid state designs on realistic supply rails, all-active is the way to go - ~30dB overload at 5mV input.
This approach is best suited to tube based designs where you have high supply rails and tens of volts headroom - solves the overload issue, but will never be as quiet as a solid state design.
For solid state designs on realistic supply rails, all-active is the way to go - ~30dB overload at 5mV input.
Yes, unfortunately there exist a number of "ingenious fools" who always manage to screw up even the simplest operations. For these people the correct number of extra clicks is zero. Thanks very much for telling us about PyInstaller, it might just do the trick! It could possibly enable the widespread distribution of a new free app called something like Click Here To Make Error-Free RIAA Networks.
Murphy's Third Law according to Wikipedia:
- It is impossible to make anything foolproof because fools are so ingenious.
Why don't you write something and put it up on the web? I'd certainly link to it from my website.
Fandom
Hi Mr Self (Douglas),
Inappropriate post I know, but it was a borrowed copy of your 'Small signal' book(I have my own now) that got me hooked just a few years ago.
Thanks for your energy in compiling such a library of knowledge, that ALL us Diy'ers benefit greatly from.
Steve.
Hi Mr Self (Douglas),
Inappropriate post I know, but it was a borrowed copy of your 'Small signal' book(I have my own now) that got me hooked just a few years ago.
Thanks for your energy in compiling such a library of knowledge, that ALL us Diy'ers benefit greatly from.
Steve.
Attached below are the three handwritten sheets in which I derived the equations for the 3 main RIAA time constants (3180usec, 318 usec, 75usec) in less than 8 minutes.In ten minutes? Do me a favour.
For a sanity check I plugged in the component values from the first two RIAA circuits in SSAD 2nd edition, and found that the "318 usec" timeconstants did not match. So I downloaded a copy of Lipschitz's typewritten manuscript from the web: (title page attached). It may be that the component values in the book were computed from the Lipschitz's first mention of "T4"

rather than the correct formula for the noninverting amplifier topology that he presents afterwards. (My derivation on yellow paper matches this formula)

I installed the yellow-paper equations into an existing numerical optimizer program written in C, and ran it to calculate the optimum component values to match the RIAA timeconstants 3180us, 318us, 75us. They are shown in the tables below. Notice that the TC (time constant) values in the 3rd column are closer to the RIAA ideal than the TC values in the 2nd column.
Attachments
In this quest for 0.1dB or better accuracy replay eq, just how accurate are the preemphasis curves of vinyl cutters used in the past 50 years ?.
Dan.
An excellent question.
I have no data on this, but I do know I am going to make my part of the chain as accurate as is reasonably possible.
For those fiddling around with RIAA software, I offer this teeny factoid that might make your programming a wee bit easier:
RIAA gain at 1.000 kHz is / should be exactly 19.9110 decibels less than the extrapolated gain at DC: (R1+R2+R3)/R3.
If, like Douglas Self, you prefer to compute component values which give precisely XXX decibels of gain at 1 kilohertz, this above factoid immediately becomes what optimization software calls an "equality constraint"
RIAA gain at 1.000 kHz is / should be exactly 19.9110 decibels less than the extrapolated gain at DC: (R1+R2+R3)/R3.
If, like Douglas Self, you prefer to compute component values which give precisely XXX decibels of gain at 1 kilohertz, this above factoid immediately becomes what optimization software calls an "equality constraint"
- (R1+R2+R3)/R3 ==exactly equals== [(XXX decibels) + 19.9110 decibels]
Mark Johnson, when you write your "RIAA networks for Dummies" programme, please allow the facility to specify Capacitors and then let the resistors take care of themselves.
When I did dis stuff for a living, this was important cos the sourcing of 1% caps. IIRC, only one of the 4 networks gives good matching with readily available cap values.
That's in addition to getting 1kHz gain and RIAA matching to better than 0.01dB and other trivial stuff of course. 🙂
When I did dis stuff for a living, this was important cos the sourcing of 1% caps. IIRC, only one of the 4 networks gives good matching with readily available cap values.
That's in addition to getting 1kHz gain and RIAA matching to better than 0.01dB and other trivial stuff of course. 🙂
please allow the facility to specify Capacitors and then let the resistors take care of themselves.
That would be over determined. The four constraints are the LF gain, and the time constants t1, t2, t3.
We need the values of five parts for the RIAA network (three resistors and two capacitors).
You can only choose the value of one capacitor, and then the other capacitor's value is determined,
along with the three resistors. With four equations (the constraints), we must have four unknowns
for a unique solution. Only one of the five parts (either an R or a C) can be specified arbitrarily.
There is no solution when two parts are arbitrarily chosen, then the system is over determined.
Last edited:
Thanks Guru Rayma but I know all that.That would be over determined. The four constraints are the LF gain, and the time constants t1, t2, t3.
We need the values of five parts for the RIAA network (three resistors and two capacitors).
You can only choose the value of one capacitor, and then the other capacitor's value is determined,
along with the three resistors. With four equations (the constraints), we must have four unknowns
for a unique solution. Only one of the five parts (either an R or a C) can be specified arbitrarily.
When dis was important to me, the sourcing of precision caps was difficult & expensive. Only one of the networks allows you to achieve better than 0.1dB match with standard cap values, sensible gain and good noise.
I'm sorry if 0.1dB matching is not good enough for yus Golden Pinnae 😱 I apologise for speaking with forked tongue in #215 when I mentioned 0.01dB matching 🙂
___________________
Guru Johnson, maybe for your "RIAA networks for Dummies" allow one cap to be specified .. along with gain bla bla ... and let it spew out the other values so cheapos like me can save $0.02 or more 😀
Then if we can enter real cheapo values, could it also plot the error? You don't need a full linear circuit analysis module for this as you will have already derived, as a 1st stage, the transfer function for the 4 circuits.
___________________
Could you also include the simple 6dB/8ve IEC 20Hz roll-off and an alternative 12dB/8ve roll-off in the common single OPA topology?
Linsley Hood did this for some of his non-inverting RIAA preamps and I analysed one to do this in Jurassic times. Butterworth 12dB/8ve will do .. at least near 20Hz.
It was the brain strain off doing dis really hard algebra stuff that led me to write my own Linear Circuit Analysis package.
I agree with Doug that its really the checking of the algebra that usually takes more time than dreaming up the eqns. 😎
Last edited:
maybe for your "RIAA networks for Dummies" allow one cap to be specified
along with gain spew out the other values
It's possible to specify the capacitor ratio C1/C2 as the independent parameter,
instead of one of their actual values. This can sometimes allow more convenient,
standard capacitor values. The gain may need to be adjusted somewhat to do this.
Last edited:
You can go a long long way with Excel and free software. Just today I discovered that Perl has a pretty extensive Complex Variables capability, and it's all free. I tried it out on RIAA calcs (Laplace / complex variables) and was pleased with the answers. Besides Perl, Scott W. vigorously recommends Python, which is also free, and which is newer and shinier than Perl.
The great thing about doing it yourself is: it's guaranteed to be done Your Way. Nothing to complain about.
The great thing about doing it yourself is: it's guaranteed to be done Your Way. Nothing to complain about.
Besides Perl, Scott W. vigorously recommends Python, which is also free, and which is newer and shinier than Perl.
The great thing about doing it yourself is: it's guaranteed to be done Your Way. Nothing to complain about.
I always found the Perl syntax hard to get used to. Nothing as bad as Don Lancaster who advocated using Postscript as a primary language so all you needed was a printer.
- Home
- Source & Line
- Analogue Source
- What would you want to see in a book on electronics for vinyl replay? Douglas Self.