diy Transfer Function app - just started

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

alexc

Well-known member
Joined
Sep 21, 2004
Messages
2,571
Location
Hobart
Hi All

Just started another long wanted diy prject - an audio tool.

A win app that can be used to chart the voltage in/out magnitude characteristic of a grey box as well as the phase characteristic.

I want it to analyse compressor functions on my many, many! diy comp/limiter builds.

Basically, it will play a stimulus file to audio outputs and record the response returned.

Some normalisation/sample+hold/sync processing  and whatnots,  to a plot of output voltage vs input voltage with corresponding phase plot.

SO - I'm using c/cpp/c# visual studio dev tool for the framework, asio for the audio api and an asio streaming lib for read/write audio-to-file functions

To be  running on my win notebook + maudio firewire interface.

Looks quite interesting to do, seeing as one can add plug-ins of the vst variety,  :)

I've been meaning to do it for ages and it is a hobby  return to my 'roots' of sw dev. It's been a decade since I last wrote code every day (to pay for the diy audio thing!).

I'll describe what  I find along the way - maybe of interest to some diy-ers.

So far, I've compiled up the asio sdk from steinberg, the asio streaming lib and setup my framework app.

Next is to get the read/write audio-file streams going.  ;))

Winter where I live is ideal for sw dev - a big TV, bunch of computers and a fireplace. 

That and a big pilates ball  :)



Cheers
AlexC
 
It seems to me that the real meat in this application is the creation of the stimulus file and the processing of the stimulus and recorded files. The streaming of the stimulus and the recording of the result can be done by any one of dozens of existing free  apps e.g. Audacity. So why reinvent the wheel and build another play/record app?  This is not a criticism, I am just curious. If I were doing this I would not want to spend my time on the boring bit I did not need to do.

Cheers

Ian
 
I don't have any tool that plots input vs output voltage.

Plenty I know of do output vs freq, or input vs freq  as well as of course all manner of time based plots.

But not input vs output voltage. 

It's not as simple as one might think - this is more akin to transfer charracteristic of a tube  ie. there's a settling time involved, to discard transition effects.

Do you know of any?
 
The file ops are pretty easy - the stimulus file is a simple stair case amplitude function with a variable time step. Quite coarse to negate 'time settling; effects.

Return file is also fairly simple streaming read.

The smarts is in the correlation of the two, to reasonable represent gain characteristic whilst removing transients.

Hopefully, one gains the same display as I see on my yamaha digital mixer compression curve display  :)
 
Audacity is a cool app but it's a daw - yes you can make a stimulus, yes you can record the return.
And you can look at the two one-on top but that's not a voltage transfer function.

What I want is to accurate display a compressor 'static' gain reduction characteristic. And maybe some phase info too.

Easily, like my RTA does for amplitude-frequency using 'sweeps'.

As I said, I don't have anything like that in my long serving collection of stuff. I can do it, but it requires post processing, using mathcad or excel or coding.
 
Oh yes, coding can be boring. But it can also have lots of benefit - like paying for my life!

Obviously you have not been a coder for a living  :)

ie, one piece of coding is just as boring or interesting as any other piece of coding

---

I'm just glad to have some neat asio file streaming libs. They can be quite tricky to do well. Thanks to the open source software community, I can simply download, link in and api-call away.
Vastly simpler than writing my own asio-audio api-file streaming ops. 

Instead, I only have to worry about my app framework - and most of that is visual studio facilities.
So, most of all the real work is already done for you.

I can just swan along and string the bits together for fun and while I'm watching old movies.
In the old days when I first started all the coding, things were very much harder  :)
 
alexc said:
Audacity is a cool app but it's a daw - yes you can make a stimulus, yes you can record the return.
And you can look at the two one-on top but that's not a voltage transfer function.
Using long enough sequences, like 1 second per level step, and choosing the right time scale, the envelope curves will show the transfer function. However, that would be on a linear amplitude scale, which is not adequate.
At the moment, I don't know any cost-effective solution to do this. I have bought a QA400 analyser on the premises that they would include that possibility but it never came out.
To my knowledge, the offer is limited to AP, NTI, Lindos & Agilent. there is definitely a need for use mere mortals who can't invest $ 10-20k in our hobby.
What I want is to accurate display a compressor 'static' gain reduction characteristic. And maybe some phase info too.
These are two much needed functionalities that are missing on most affordable gear.
Easily, like my RTA does for amplitude-frequency using 'sweeps'.
In fact, it is much easier technically to change the amplitude than changing the frequency of a generator.
Now it can be solved by playing back a .wav file, and measuring the amplitude is almost trivial. the difficult part is creating the GUI.

If you came out with such an app, I would be strongly interested.
 
Hi,

I only understand half of what you want but wouldn't baudline be a solution? It's free & linux only (and non opensource) but it seems it could fit your needs.
http://www.baudline.com/manual/channel_mapping.html
They talk about transfer function on this link.

It's all quite technical and even explained for non-tech (or half-tech) people.

Well of course, if you wanna code, that's another story.
 
alexc said:
Audacity is a cool app but it's a daw - yes you can make a stimulus, yes you can record the return.
And you can look at the two one-on top but that's not a voltage transfer function.

I think you misunderstand me. All I was suggesting is that, once you have the stimulus file in, say, .wav format, it is easy to get any play/record tool (like Audacity) to play the file and record the result as a .wav file. You now have two .wav files and all YOUR software needs to do is the analysis. It does not need to know how to stream audio. That is what I meant by eliminating unnecessary and hence boring coding.


And you are mistaken, I was a coder for a living for a long time, and soon learned not to take on unnecessary work.

Cheers

Ian
 
ruffrecords said:
And you are mistaken, I was a coder for a living for a long time, and soon learned not to take on unnecessary work.

My mistake - apologies.

As I said, I don't know of a tool that does this in 'quasi-human-time'.  ie. press a button, and a few seconds later, done.
Like an RTA but like I described.

You could do it with a daw and run batch files to post process and so on. I could use excel with visual basic - for sure no probs. 
As well as any scripting thing.

I like visual studio for stuff like this. As I said, there are cool free streaming libs out there for asio.

So. for those who like to futz about in software for audio, it's an interesting challenge.
 
If I get a little further, I'll describe some more. I'm just fooling about for now.

Hopefully I can get to where it's helping with measuring my diy limiters; if so, it will have some value to me.
Otherwise, sure, it's not so interesting. One can always do these things manually.

Then there's always Android stuff to play about with - these little media boxes are getting seriously useful these days. And for very few dollars. I have one digitally connected to a Finalizer then (analog!) tube amps and it is pretty good.
 
Upacesky said:
Hi,

I only understand half of what you want but wouldn't baudline be a solution? It's free & linux only (and non opensource) but it seems it could fit your needs.
http://www.baudline.com/manual/channel_mapping.html
They talk about transfer function on this link.

It's all quite technical
Indeed it is! I have looked at it and what they present as a "manual" is very brief and I had to google somewhat, just to understand what it is actually supposed to do.
My understanding - and I may be completely wrong - is that it's a nice coloring program for spectral analysis...and utterly useless for the OP's intended application.
 
Back
Top