Yes, there are boards available, but typically none of them are designed for minimal footprint. As you say, the LM3915/16 are EOL (but the linear LM3914 appears to be still current?) I bought something like 100 LM3915 chips (assuming they are not counterfeit) and there still seems to be a reasonable supply of them. Unless you are designing something for commercial sale in mass quantities.
If you are looking for multiple channels, here in 2018 using a small microcontroller is likely the best solution in terms of size. Appropriate microcontroller chips and shift-register LED drivers are available in very small packages. Even microcontrollers with multiple analog inputs and internal multiplexing. The largest components would likely be the filter capacitors for the audio input envelope detection circuits.
A low cost 30x90mm size could be achieved with 3 of these 16-pin 8x8 mini matrix (https://www.aliexpress.com/item/Best-Price-10-pcs-8x8-Mini-Dot-Matrix-LED-Display-Red-Common-Anode-16-pin/1679655587.html?spm=2114.search0104.8.4.181a5da2EKhDFv&transAbTest=ae803_5&priceBeautifyAB=0) LEDs
With what Richard said, it would likely require 3 stacked PCB's behind it though..
(https://ae01.alicdn.com/kf/HTB1T2SYLpXXXXbRXXXXq6xXFXXX2/8x8-8-8-Mini-Dot-Matrix-LED-Display-16-pin-20mmx20mm-1-9mm-Red-Common.jpg)
Even 4-bit resolution is adequate for 16-step linear display. 8-bit resolution is more than enough for logarithmic,10-step display. [...] The 10-bit resolution of even the cheapest Arduino is overkill for this application.
Vrms Vpp Vpk
Vref 0.615 1.740 0.870
dB
-12 0.154 0.437 0.219 Blue
-9 0.218 0.617 0.309 Green
-6 0.308 0.872 0.436 Green
-3 0.435 1.232 0.616 Green
0 0.615 1.740 0.870 Green
3 0.869 2.457 1.229 Yellow
6 1.227 3.471 1.736 Yellow
9 1.733 4.903 2.452 Yellow
12 2.448 6.926 3.463 Red
15 3.458 9.783 4.892 Red
db Vrms Vpk
-120 0.000 0.000 - 53dB (quiet conversation)
-100 0.000 0.000
-80 0.000 0.000
-60 0.001 0.002
-40 0.006 0.017
-20 0.062 0.174
0 0.615 1.740 - 113dB ( loud rock concert )
20 6.150 17.397 - 124dB (Dumb and dangerous! Not possible with the circuit I should add and it will be diode clamped much lower)
But we don't know what paulca is after, right?Right. @paulca has not revealed his application. For example, my application is to monitor recording levels for audio and video production. It is quite common in modern digital gear to put 0dB at the top of the range. Hence the term dBFS (deciBels Full Scale).
The decibel (symbol: dB) is a unit of measurement used to express the ratio of one value of a physical property to another on a logarithmic scale. It can be used to express a change in value (e.g., +1 dB or -1 dB) or an absolute value.
In the case of absolute value, it expresses the ratio of a value to a reference value; when used in this way, the decibel symbol should be appended with a suffix that indicates the reference value or some other property. For example, if the reference value is 1 volt, then the suffix is "V" (e.g, "20 dBV"), and if the reference value is one milliwatt, then the suffix is "m" (e.g., "20 dBm").
Source: https://en.wikipedia.org/wiki/Decibel
Simple fast-response analog rectification and basic filtering/integration would seem to be the most appropriate to produce a DC voltage that accurately represents the audio signal envelope.:--
You can do other things (like "ballistics", peak-indication, etc.) in software.:-+
The purpose is to show line level at different stages in a mixer circuit. Post pre-amp, post mixer amp, post master volume. Primary purpose is to flatten the gain structure to around 0dB.
Richard, if the db scale is not reference to an arbitary value, what exactly is it referenced to? Have I missed the point of dB completely?
@BrianHG, how we would get an accurate measurement of the audio envelope with only positive-responding inputs to an ADC in a uC? Especially when audio waveforms are notoriously asymmetrical. I completely agree that here in the 21st century we should as much as possible in software. But I am not seeing how to do that with your average DC ADC?
And, sampling the raw waveform would require a much higher sampling rate to accurately catch short peaks which would require a faster (more expensive) ADC and/or uC would it not?
The purpose is to show line level at different stages in a mixer circuit. Post pre-amp, post mixer amp, post master volume. Primary purpose is to flatten the gain structure to around 0dB.
This is standard in audio mixers. The most important test point is right after the preamp, before the fader, which is why the button is called "pre-fader listen" or PFL.
The purpose is to show line level at different stages in a mixer circuit. Post pre-amp, post mixer amp, post master volume. Primary purpose is to flatten the gain structure to around 0dB.
This is standard in audio mixers. The most important test point is right after the preamp, before the fader, which is why the button is called "pre-fader listen" or PFL.
This is exactly why I want these meters.
The Small signal audio design book uses resistor divider ladders, LEDs and BJTs. For 5 meters this will result in a board about 4" square. Much like a meter panel on a large desk.
I want it in 2" square or so.
Using "one" and PFL or "meter select" switches is an option, but LED bar graphs are fairly cheap and small.
@BrianHG, how we would get an accurate measurement of the audio envelope with only positive-responding inputs to an ADC in a uC? Especially when audio waveforms are notoriously asymmetrical. I completely agree that here in the 21st century we should as much as possible in software. But I am not seeing how to do that with your average DC ADC?
You have to drive the ADC appropriately. If the ADC has a 4 V span and a 2.0 V offset, your ADC driver has to level-shift the audio up 2 V while likely attenuating to fit within the span. Configure the micro's ADC to give you a 2's complement result, and then the standard absolute-value function gives you a positive result which you can average
@BrianHG, how we would get an accurate measurement of the audio envelope with only positive-responding inputs to an ADC in a uC? Especially when audio waveforms are notoriously asymmetrical. I completely agree that here in the 21st century we should as much as possible in software. But I am not seeing how to do that with your average DC ADC?
You have to drive the ADC appropriately. If the ADC has a 4 V span and a 2.0 V offset, your ADC driver has to level-shift the audio up 2 V while likely attenuating to fit within the span. Configure the micro's ADC to give you a 2's complement result, and then the standard absolute-value function gives you a positive result which you can average
Interesting. Can I just AC couple it with a cap and lift the ADC side with a virtual ground to +2V. I'm thinking Arduino 10bit 0-5ish volt ADC.
Is the difficult bit not then calibrating it? That virtual ground would need to be very accurate. to get accurate readings or am I over thinking it? If I make the virtual ground the AREF that might work.
@BrianHG, how we would get an accurate measurement of the audio envelope with only positive-responding inputs to an ADC in a uC? Especially when audio waveforms are notoriously asymmetrical. I completely agree that here in the 21st century we should as much as possible in software. But I am not seeing how to do that with your average DC ADC?Ok, step #1, looking at the source signals, the OP wants to analyze at least 4 stereo sources, line out, headphones out, line in gain, second line in, that 8 sources. (Ok, you may be forgiven that since I know this project is designed to fit into his pre-amp with headphone project...)
And, sampling the raw waveform would require a much higher sampling rate to accurately catch short peaks which would require a faster (more expensive) ADC and/or uC would it not?
Not a small VU-meter, not a suitable VU-meter for your project, but a beautiful VU-meter design nevertheless.Nice!
Using Soviet IV-9 neon bargraphs.
I include it here only as eye candy:
http://www.tubeclockdb.com/non-clocks/332-iv-9-vu-meter.html (http://www.tubeclockdb.com/non-clocks/332-iv-9-vu-meter.html)
Unfortunately the kit is no longer available.
Brian. You are always trying to tease me to the extremes.I didn't mean you had to go to extreme, but, feeding 8 audio lines through a 0.1uf cap with a resistor ad the ADC input to 1/2vdd to the 8 ADC inputs on the mcu, you can make the stupidest 4-5 paragraphs long meter software and it will still work. The ATMega may still be fast enough to do this as well. I was trying to get your component and PCB area and assembly cost down to 1 IC and 18 resistors and 9 caps. How you chose to read the inputs would be up to you, but, you would have 8 balanced equal loads on all your audio sources. No trimpots, no opamps, and a high enough sample rate that there would be no audible CPU noise fed back to your audio source.
I am too jaded by my career to be that kind of engineer. I know the 80/20 rules. 20% the effort gets your 80% the results. The other 20% takes you at least another 80% of your time and effort.
To be honest I don't think I even have the ability to detect the 20% difference.
This probably flies in the face the standard EE grey beard approach, but for a first iteration of a concept I just want "close". I don't want to create an audio reference meter that is +-0.5% across all temperatures and bandwidths, I just want to know if I have any signal, if it's a quiet signal, I'm at unity gain, pushing it a bit or flashing red warning lights.
Thus, sampling 3 mono inputs (left channel will do), one stereo master, gives me 5 channels and the sample rate will be whatever I can get an ATMega to do.
Cap with resistor to "ground" to AC couple and change the level.
However, realised the delay introduced by printing the serial values to the screen in the ADC interupt delays the next conversion, giving the ADC sample and hold circuit time to change, the actual sample rate, which was starting to error, was thus, much, much lower.
You only need 20khz/channel. 40khz is overkill and audio frequencies above 10khz are negligible VU meter wise in audio.However, realised the delay introduced by printing the serial values to the screen in the ADC interupt delays the next conversion, giving the ADC sample and hold circuit time to change, the actual sample rate, which was starting to error, was thus, much, much lower.
Hang on. I was delaying, then changing the channel and immediately reading. So the effective sample rate would not be that much lower at all.
Still full spectrum sampling digitally will require 352Ksps across the 8 channels, so it won't work on the AVR.
What happens if you accumulated 1000 samples, then do 1 print?
Isn't the print command way to slow anyways, I mean it has to convert binary numbers to base 10 decimal, then ascii, then all the serial port buisness. It may have been faster to convert a single set or all in sequence of the 0-256 to 8 levels, sent to 8 leds on an 8 bit io port, + a separate IO pin for a horizontal trigger & scope it & see it. If you have a high speed DAC output pin, just push the raw ADC value, you can make on your scope 8 vertical VU meters from left to right on your scope this way.
Also, no matter what system you choose, when feeding audio from your pre-amp to your digital PCB, if you will be using series resistors for noise isolation, place those resistors on your pre-amp board.You could use a virtual earth/ground IC, such as the TLE2426, or if there's a spare op-amp, that could be used to buffer a potential divider, then you only need one 1M bias resistor per input,
The 1/2 vdd v-ref bias resistors go on your digital pcb. (Note, the ADC in the MCU is configured to go from GND to VDD, I would place the 100k on your preamp board near the audio connector leading to the digital VU meter board. That resistor prevents backward noise and protects the input of your micro's ADC.)
vdd ------------------------
|
1meg
|
audio-100k --- 1uf ----*------ adc pin
|
1meg
|
gnd -----------------------
Acutally I'm not entirely sure the S0-S2 lines to the multiplexer will work with pull ups into constant current sink ports of the LED driver.
The 5V is coming through 10k. So 0.5mA. I could make them 100k and make it 50uA. When the LED driver opens that drain it will attempt to pull the current set by iREF, which is going to be orders of magnitude higher than the 50uA, so if that theory is correct, yes it will pull the S lines low.