Signal processing is an electrical engineering subfield that focuses on analysing, modifying and synthesizing signals such as sound, images and biological measurements. Electronic signal processing was first revolutionized by the MOSFET and then single-chip digital signal processor (DSP). Digital signal processing is the processing of digitized discrete-time sampled signals. Processing is done by general-purpose computers or by digital circuits such as ASICs, field-programmable gate arrays or specialized digital signal processors (DSP chips).
Hackaday has published an in interesting series of articles on signal processing, and here are some picks from it:
RTFM: ADCs And DACs
https://hackaday.com/2019/10/16/rtfm-adcs-and-dacs/
DSP Spreadsheet: IQ Diagrams
https://hackaday.com/2019/11/15/dsp-spreadsheet-iq-diagrams/
Sensor Filters For Coders
https://hackaday.com/2019/09/06/sensor-filters-for-coders/
DSP Spreadsheet: FIR Filtering
https://hackaday.com/2019/10/03/dsp-spreadsheet-fir-filtering/
Fourier Explained: [3Blue1Brown] Style!
https://hackaday.com/2019/07/13/fourier-explained-3blue1brown-style/
DSP Spreadsheet: Frequency Mixing
https://hackaday.com/2019/11/01/dsp-spreadsheet-frequency-mixing/
Spice With A Sound Card
https://hackaday.com/2019/07/03/spice-with-a-sound-card/
- check also A real-time netlist based audio circuit plugin at https://github.com/thadeuluiz/RTspice
Reverse Engineering The Sound Blaster
https://hackaday.com/2019/06/19/reverse-engineering-the-sound-blaster/
FM Signal Detection The Pulse-Counting Way
https://hackaday.com/2019/08/28/fm-signal-detection-the-pulse-counting-way/
DSP Spreadsheet: IQ Diagrams< https://hackaday.com/2019/11/15/dsp-spreadsheet-iq-diagrams/
Here is an extra, not from Hackaday, but an interesting on-line signal processing tool for generating sounds
https://z.musictools.live/#95
172 Comments
Tomi Engdahl says:
Samplerates: the higher the better, right?
https://www.youtube.com/watch?v=-jCwIsT0X8M
In this video tutorial, Dan Worrall explains when and why you should use higher samplerates for your recordings and mixing sessions, and more importantly… when you should NOT. Also, Dan goes in depth about oversampling vs. higher sample rates.
Tomi Engdahl says:
Comb filters have found use as powerline (50/60Hz) harmonic cancellation filters in audio applications, and form the basis of so called CIC (cascaded integrator–comb) filters used for anti-aliasing in decimation (sample rate reduction), and anti-imaging in interpolation (sample rate increase) applications. https://www.advsolned.com/fir-comb-filter/ #DSP #engineering #audio
Tomi Engdahl says:
What does the Laplace Transform really tell us? A visual explanation (plus applications)
https://www.youtube.com/watch?v=n2y7n6jw5d0
Viewer comments:
I’m seriously amazed that people from the 1700s figured this out while i could only understand it fully after seeing the 3D plots…
I am a retired engineering professor and taught this material for years. Yet I still find it very useful to see it presented by someone else since there is always some new perspective that I acquire. Excellent presentation!
Tomi Engdahl says:
https://hackaday.com/2021/09/30/fourier-transforms-and-more-using-light/
Tomi Engdahl says:
Applying the Laplace Transform in LTspice to Model Transfer Functions
Oct. 5, 2021
https://www.electronicdesign.com/technologies/analog/article/21177396/analog-devices-applying-the-laplace-transform-in-ltspice-to-model-transfer-functions?utm_source=EG%20ED%20Analog%20%26%20Power%20Source&utm_medium=email&utm_campaign=CPS210930010&o_eid=7211D2691390C9R&rdx.ident%5Bpull%5D=omeda%7C7211D2691390C9R&oly_enc_id=7211D2691390C9R
Transfer functions analyze how system output changes depending on the input. This article details how to implement a transfer function in LTspice, comparing ideal vs. modeled responses and presenting example scenarios.
Tomi Engdahl says:
Analog to Digital | Audio Laboratory | Captain Pikant | Thomann
https://m.youtube.com/watch?v=B3vihWLH9Sk&fbclid=IwAR0c7u7zdlKpGRFN7_xPYTlDGWpt2DOnIeFeS-p3gTV0FIX3yuruuQCzfI4
Tomi Engdahl says:
This is why you’re learning differential equations
https://www.youtube.com/watch?v=ifbaAqfqpc4
Tomi Engdahl says:
In signal processing, the need sometimes arises to nudge or fine-tune the sampling instants of a signal by a fraction of a sample. An FIR Farrow delay filter is typically employed to achieve this task, and may be combined with a traditional integer delay line in order to achieve a universal fractional length delay line. https://www.advsolned.com/farrow-fractional-delay-filter/ #DSP #algorithms #sensor #engineering #audio #iot
Tomi Engdahl says:
Pluto Spectrum Analyzer Uses Command Line
https://hackaday.com/2021/11/15/pluto-spectrum-analyzer-uses-command-line/
If you don’t care about shortwave frequencies, the PlutoSDR is a great deal. The device is supposed to be an evaluation board for Analog Device’s radio chips, but it does great as a software-defined radio that can receive and transmit and it even runs Linux internally. [SignalsEverywhere] shows how to use it as a spectrum analyzer that works from the command line
The software used is Retrogram. Despite the ASCII graphics, the program has many features. You can use simple keystrokes to change the center frequency, the sampling rate, the bandwidth, and more. You can run the software on a Linux host or compile a binary on the box or cross-compile using tools on the Raspberry Pi.
The Pluto connects via USB but looks like a network adapter.
We noticed on the GitHub site that plans are in the works for generic device support like the ubiquitous RTLSDR dongles. We’d love to see someone pick up that work. There are also plans for mouse tuning, waterfall displays, and HTML output.
Retrogram – A Command Line Spectrum Analyzer For The PlutoSDR
https://www.youtube.com/watch?v=2dJGL1rBlIo
Tomi Engdahl says:
Impulse Response | Audio Laboratory | Captain Pikant | Thomann
https://m.youtube.com/watch?v=d-1Zn1LvhB4&fbclid=IwAR0vAqxLrTXD6mxMa4W16X3rrW_azhwzCGQWrwG0VkTVwiKKo_7JKdaTRLY
In the last episode, we promised to show you another type of reverb. So spotlight on the impulse response (IR).
Tomi Engdahl says:
EEVblog #1213 – The Oscilloscope Interpolation Trap!
https://www.youtube.com/watch?v=W4twnd-YQQ4
Oscilloscope Sin X/x Interpolation can be a trap for young players, find out why.
https://www.eevblog.com/forum/blog/eevblog-1213-the-oscilloscope-interpolation-trap/
Tomi Engdahl says:
#305: Measuring Total Harmonic Distortion THD using an FFT on an oscilloscope
https://www.youtube.com/watch?v=s_cVP5gu4SY
This video shows how to use the FFT function on an oscilloscope to measure the relative amplitude of the harmonic distortion components of a signal, and then take those results and compute the THD, or Total Harmonic Distortion. Actual measurements are shown, and results are validated by a THD calculator in the scope as well as a THD measuring multimeter.
Tomi Engdahl says:
A Super Speedy Lightweight Lossless Compression Algorithm
https://hackaday.com/2021/11/30/a-super-speedy-lightweight-lossless-compression-algorithm/
Dominic Szablewski] was tinkering around with compressing RGB images, when he stumbled upon idea of how to make a simple lossless compression algorithm, resulting in the Quite OK Image Format, which seems to offer comparable file sizes to the PNG format but is so simple it runs up to 50 times faster for compression and up to four times faster for decompression. Implementation can be achieved with a miniscule 300 lines of C. Need a bit more detail on the real-world performance? Well [Dominic] has that covered too, with a complete set of benchmarks for your perusal.
QOI – The “Quite OK Image” format for fast, lossless image compression
https://github.com/phoboslab/qoi
Tomi Engdahl says:
Samplerates: the higher the better, right?
https://www.youtube.com/watch?v=-jCwIsT0X8M
In this video tutorial, Dan Worrall explains when and why you should use higher samplerates for your recordings and mixing sessions, and more importantly… when you should NOT. Also, Dan goes in depth about oversampling vs. higher sample rates.
Viewer comments:
Georgia Tech Professor of Electrical and Computer Engineering in the Digital Signal Processing Technical Interest Group here… This is the first explanation of sampling, aliasing, upsampling/downsampling, antialiasing filters, etc. I’ve seen/heard, in print or in video, in 20 years that (a) didn’t make me cringe at any point, and (b) completely blew me away with how illuminating it was.
I can say exactly the same!
I have designed and built a DSP guitar amplifier. I have seen a lot of videos and articles that are incorrect and / or misleading.
This one is superb!
This is, in my mind, the clearest and most informative demonstration and explanation of sample rates, aliasing, and the tricky bits of digital audio I’ve ever encountered. I’m also digging the Reaper mixer setup.
Aligns with my own experiences and lessons over the years: bandpass everything, all audio is bandpassed at some stage anyway so you better do it.. before it is too late and the signal encounters something that can’t cope with its demands. Distortion and heat will be the result of that and you will get degraded audio signal.
Also: Hi-res record releases are not meant for consumer consumption, you once again have to deal with bandpassing the signal before it hits your speaker. The end result is intermodulation distortion in the analog chain too. Most of it will be turned to heat but it is never a good idea to push too wide of a sausage thru a too small hole… A good speaker has ultra- and infrasonic filtering but one of the principles i have picked out is that it is far better to cut the signal before amplification than after. If for nothing else, components are smaller and the circuit design can be considerably better.
“If the song is good and the mix is good, no one will care about a bit of aliasing!” Phew … sanity is finally restored.
Tomi Engdahl says:
https://dsp.stackexchange.com/questions/68667/3-db-cut-off-frequency-of-first-order-iir-high-pass-filter
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwj8wf39l8D1AhXIS_EDHU_BCW4QFnoECCcQAQ&url=https%3A%2F%2Favesis.yildiz.edu.tr%2Fresume%2Fdownloadfile%2Fakoru%3Fkey%3Db501dae9-b72f-419f-8780-6cc61e719af5&usg=AOvVaw1FDa5YsQgMyLa9CZZg7s8O
Tomi Engdahl says:
Jetson Nano Convolution Reverb
https://hackaday.io/project/183681-jetson-nano-convolution-reverb
Turn your unused Jetsons into a real time audio effect modules with CUDA
E/S PronkE/S Pronk
Tomi Engdahl says:
Does Digital Create Analog Stairsteps? (Public)
https://www.youtube.com/watch?v=OwjHE1DQSyA
There are beliefs out there that digital creates “stairsteps” in the audio because digital can not grab the info in between samples.
Is info lost?
If so, would this “lost” info result in “stairsteps” and graininess?
What info would be lost and is the loss of info visible as stairsteps?
Is .999999 repeating actually exactly equal to 1?
I will answer some or most of these curiosities.
Cool cool !!
00:00 Intro
00:42 Logic behind stair stepping
01:52 Looking for stair steps
03:00 Sending stair steps into a console
04:40 Raising the frequency
05:20 Creating or eliminating stairsteps
05:55 Lost information
06:55 What info is lost
08:10 Summary
Viewer comments:
Yes, yes, yes! Digital audio is bandlimited. An instantaneous rise would require infinite bandwidth. Luckily, our hearing is limited as well though sadly it also deteriorates with age.
Btw, it’s not that frequencies above half the sample rate (e.g. above 24 kHz for 48 kHz sampling) are not “captured”. They are, but they fold back. A 24+1=25 kHz tone will fold back down to 24-1=23 kHz. Aliasing!
That is the “information loss” – once sampled you cannot separate aliased from the real stuff anymore. To prevent this all converters do filtering beforehand, to get rid of all the >24 kHz content before the sampling process. (Well actually you cannot get rid of it or aliasing, but when you attenuate far enough all the aliased stuff will drown in the noise floor.)
It’s also really interesting to understand how this filtering is implemented in converters. A naive approach would be to construct some complex analog lowpass filter. Too expensive, too high tolerances, hard to get good performance.
Instead you just take a very simple analog lowpass filter that operates way above the audio range, sample at very high frequencies (think MHz), filter digitally to cut stuff above 24 kHz and convert the signal down to the desired sampling rate.
In my DSP courses usually we just say the analog input (ADC) filter prevents aliasing and the output (DAC) analog filter is a “smoothing” filter. Oversampling allows us to use “softer” and cheaper analog filters on both ends.
You’re right at the boundary of audio and engineering, I love it!
Obviously the sample rate has the biggest impact on bandwidth. Are you able to investigate the bandwidth of the analog input and output circuits? It would be fun to see if you could inject a signal beyond the first Nyquist zone and see it fold back. It all depends on the analog filtering.
Not going to dive that far, trying to stay with useful practical info and myth busting
Hey Dave! Really enjoy your videos. I wonder if it’s possible to test the “smoothing” that you mentioned some consoles do for between samples in order to smooth out the waveform. Which consoles do it better than others…
The consoles do smooth. If the sample rate is 48k, then one may think there would be 48,000 little stair steps per second. But a 48k sample rate can only recreate sound up to 23Khz. Way way below the frequencies that would be needed to create 48khz stair steps.
The console can not create sample rate stair steps on it’s analog outputs. The stairsteps don’t need to be smoothed as they can not exist
Great video, as usual. Lots of ways of looking at this and you do a great job of explaining. Worth remembering that for undistorted operation every A/D converter must be preceded by a low pass filter and every D/A converter must be followed by a matching low pass filter. No matter what kind of equipment.
Tomi Engdahl says:
https://www.izotope.com/en/learn/digital-audio-basics-sample-rate-and-bit-depth.html
Tomi Engdahl says:
https://www.embedded.com/dsp-tricks-dc-removal/
Tomi Engdahl says:
Valentine’s day signals
https://www.facebook.com/groups/2600net/permalink/3238209066402196/
Tomi Engdahl says:
https://www.nti-audio.com/en/support/know-how/fast-fourier-transform-fft
Tomi Engdahl says:
Guide to the Sound Card
https://gist.github.com/Fingercomp/0773bb0714296c0cb00d70a696d39bb3
Tomi Engdahl says:
The Unreasonable Effectiveness of JPEG: A Signal Processing Approach
https://www.youtube.com/watch?v=0me3guauqOU
Chapters:
00:00 Introducing JPEG and RGB Representation
2:15 Lossy Compression
3:41 What information can we get rid of?
4:36 Introducing YCbCr
6:10 Chroma subsampling/downsampling
8:10 Images represented as signals
9:52 Introducing the Discrete Cosine Transform (DCT)
11:32 Sampling cosine waves
12:43 Playing around with the DCT
17:38 Mathematically defining the DCT
21:02 The Inverse DCT
22:45 The 2D DCT
23:49 Visualizing the 2D DCT
24:35 Introducing Energy Compaction
26:05 Brilliant Sponsorship
27:23 Building an image from the 2D DCT
28:20 Quantization
30:23 Run-length/Huffman Encoding within JPEG
32:56 How JPEG fits into the big picture of data compression
The JPEG algorithm is rather complex and in this video, we break down the core parts of the algorithm, specifically color spaces, YCbCr, chroma subsampling, the discrete cosine transform, quantization, and lossless encoding. The majority of the focus is on the mathematical and signal processing insights that lead to advancements in image compression and the big themes in compression as a whole that we can take away from it.
Tomi Engdahl says:
https://www.facebook.com/groups/2600net/permalink/3241557489400687/
The documentation that describes how the LTE signals are modulated
This contains 886 ms of data recorded at 30.72 Msps, and has much more than what we will be looking at here (in fact there is a PRACH right at the beginning). In this recording, the phone happens to be using Band 20. Specifically, a 10 MHz channel at 847 MHz. The demodulation is done in a Jupyter notebook using NumPy.
Demodulation of the LTE uplink
https://destevez.net/2022/02/demodulation-of-the-lte-uplink/
Tomi Engdahl says:
CTSD Precision ADCs (Part 3): Inherent Alias Rejection Made Possible
March 1, 2022
Part 3 looks at the design complexity of alias-rejection solutions and highlights the alias-free nature of continuous-time sigma-delta (CTSD) ADCs, which improves the immunity to interferers without any added peripheral design.
https://www.electronicdesign.com/technologies/analog/article/21234897/analog-devices-ctsd-precision-adcs-part-3-inherent-alias-rejection-made-possible?utm_source=EG%20ED%20Analog%20%26%20Power%20Source&utm_medium=email&utm_campaign=CPS220225022&o_eid=7211D2691390C9R&rdx.ident%5Bpull%5D=omeda%7C7211D2691390C9R&oly_enc_id=7211D2691390C9R
Tomi Engdahl says:
What is it About Audio Distortion? Understanding Nonlinearity
https://www.allaboutcircuits.com/technical-articles/what-is-it-about-audio-distortion/
Learn about how system nonlinearity creates distortion in audio signals that impacts the sounds we hear. We will examine sine waves, harmonics, and intermodulation distortion.
We spend a lot of time thinking and talking about distortion in audio, and even sometimes listening to it, but what is it really and why does it matter?
Tomi Engdahl says:
There are generally two types of distortion:
Frequency distortion—caused by insufficient bandwidth and non-flat frequency response between the bandwidth limits
Nonlinearity distortion—caused by nonlinearities in the hardware.
https://www.allaboutcircuits.com/technical-articles/what-is-it-about-audio-distortion/
Tomi Engdahl says:
From https://fb.watch/dgfe3Zr-q9/ comments
well what you need to use is some background subtraction technique. In your setup since the artist is moving you can compare frames and then filter out those changing. Now that’s just from the top of my head but if you check here for example https://github.com/topics/background-removal there are tons of ways to achieve background removal
Also seems like opencv may have a basic bg removal https://docs.opencv.org/3.4/d1/dc5/tutorial_background_subtraction.html the advantage maybe that it could be faster in comparison to the kinect which I believe is only 30fps
Thank you, but the algorithms you mention seem to work on rendered videos, not real time. Anyway if there are solutions reall time i dont need on the moment, as I don’t have another camera. Kinect is what i have, plus a phone that i need to document the installation with, so cant use.
Tomi Engdahl says:
#262: IQ Modulator Basics: Operation, measurements, impairments
https://www.youtube.com/watch?v=RHFZUqUM8DY
This video discusses the basics of an IQ modulator, discusses and demonstrates its operation, shows a few typical modulation types as well as the effects of various impairments. It also shows the basic SSB Suppression test. I use a combination of a few Mini-Circuits mixers (ADE-1ASK) for much of the video, and also show one of their IQ Modulator modules (ZFMIQ-10M).
Tomi Engdahl says:
DC removal
https://www.embedded.com/dsp-tricks-dc-removal/
https://dsp.stackexchange.com/questions/68667/3-db-cut-off-frequency-of-first-order-iir-high-pass-filter
https://www.dsprelated.com/showarticle/58.php
https://electronics.stackexchange.com/questions/564514/remove-dc-bias-without-phase-shift
https://dsp.stackexchange.com/questions/34267/removal-of-gradually-increasing-dc-component-offline-zero-phase
http://sam-koblenski.blogspot.com/2015/11/everyday-dsp-for-programmers-dc-and.html
https://dsp.stackexchange.com/questions/34267/removal-of-gradually-increasing-dc-component-offline-zero-phase
https://www.dsprelated.com/freebooks/filters/DC_Blocker.html
https://github.com/openenergymonitor/learn/blob/master/view/electricity-monitoring/ctac/digital-filters-for-offset-removal.md
https://opencpi.github.io/assets/DC_Offset_Filter.pdf
https://forum.arduino.cc/t/dc-removal/590726/18
https://dsp.stackexchange.com/questions/74237/how-to-implement-a-high-pass-filter-digitally-to-remove-the-dc-offset-from-senso
https://www.dsprelated.com/showarticle/58.php
https://flylib.com/books/en/2.729.1/dc_removal.html
Tomi Engdahl says:
https://physics-zone.com/sim/virtual-oscilloscope/
Tomi Engdahl says:
https://hackaday.com/2022/08/12/remove-a-speakers-voice-from-a-recording-using-ultrasound/
Tomi Engdahl says:
ADSL Router As Effects Pedal
https://hackaday.com/2022/09/08/adsl-router-as-effects-pedal/
Moore’s law might not be as immutable as we once though thought it was, as chip makers struggle to fit more and more transistors on a given area of silicon. But over the past few decades it’s been surprisingly consistent, with a lot of knock-on effects. As computers get faster, everything else related to them gets faster as well, and the junk drawer tends to fill quickly with various computer peripherals and parts that might be working fine, but just can’t keep up the pace. [Bonsembiante] had an old ADSL router that was well obsolete as a result of these changing times, but instead of tossing it, he turned it into a guitar effects pedal.
The principle behind this build is that the router is essentially a Linux machine, complete with ALSA support. Of course this means flashing a custom firmware which is not the most straightforward task, but once the sound support was added to the device, it was able to interface with a USB sound card. An additional C++ program was created which handles the actual audio received from the guitar and sound card. For this demo, [Bonsembiante] programmed a ring buffer and feeds it back into the output to achieve an echo effect, but presumably any effect or a number of effects could be programmed.
How to connect a guitar to an ADSL router?
https://bonsembiante.hashnode.dev/how-to-connect-a-guitar-to-an-adsl-router
https://github.com/bonsembiante/router-audio-dsp
Pedal-Pi, Simple Programmable Guitar Pedal
https://hackaday.com/2017/09/12/pedal-pi-simple-programmable-guitar-pedal/
Tomi Engdahl says:
https://www.electrosmash.com/forum/pedal-pi/207-basics-of-audio-dsp-in-c-for-rapsberry-pi-zero?lang=en
Tomi Engdahl says:
An Opensource Arduino Guitar Pedal
https://hackaday.com/2013/12/21/an-opensource-arduino-guitar-pedal/
https://hackaday.com/2013/12/21/an-opensource-arduino-guitar-pedal/
https://www.electrosmash.com/pedalshield
Tomi Engdahl says:
https://www.electrosmash.com/forum/software-pedalshield
Tomi Engdahl says:
Getting Started with the FV-1:
A first look into DSP
http://electric-canary.com/fv1start.html
Tomi Engdahl says:
Equalize Your Listening With HiFiScan
https://hackaday.com/2022/09/12/equalize-your-listening-with-hifiscan/
Audiophiles will go to such extents to optimize the quality of their audio chain that they sometimes defy parody. But even though the law of diminishing returns eventually becomes a factor there is something in maintaining a good set of equipment. But what if your audio gear is a little flawed, can you fix it electronically? Enter HiFiScan, a piece of Python software to analyse audio performance by emitting a range of frequencies and measuring the result with a microphone.
This is hardly a new technique, and it’s one which PA engineers have used for a long time to tune out feedback resonances, but an easy tool bringing it to the domestic arena is well worth a look. HiFiScan is a measuring tool so it won’t magically correct any imperfections in your system, however it can export data in a format suitable for digital effects packages.
https://github.com/erdewit/HiFiScan
Tomi Engdahl says:
https://www.allaboutcircuits.com/technical-articles/nyquist-shannon-theorem-understanding-sampled-systems/
Tomi Engdahl says:
https://hackaday.com/2022/11/23/the-fastest-fourier-transform-in-the-west/
Tomi Engdahl says:
Visual Analyser is a complete professional real time software, transform your PC in a full set of measurement instruments; no new hardware necessary (you can use the Sound Card of your PC) or you can use a specific external hardware
https://www.sillanumsoft.org/
Tomi Engdahl says:
https://kimmosaunisto.net/Software/Software.html
Tomi Engdahl says:
NTSC encoding/decoding in C89 using only integers and fixed point math. Can be used as an image filter for games or real-time applications
https://github.com/LMP88959/NTSC-CRT
Tomi Engdahl says:
https://hackaday.com/2022/12/25/encoding-ntsc-with-your-hands-tied/
Tomi Engdahl says:
https://www.facebook.com/groups/2600net/permalink/3505034019719698/
For my other totally original hack let’s consider that an ex girlfriend lived in an apartment complex that had a gate. In order to get in someone had to answer the phone and press 9. The callbox apparently was configured so you could not enter a code, but you could dial a resident or have a proximity card which I didn’t have. My ex girlfriend had a pc running windows xp at the time with one of those winmodems. This was probably the pinnacle of the pci modem back in 2005. So anyways I connected the dots and saw that her winmodem came with the ability to understand call waiting and that it could work as a voicemail system. The land line also had caller id. Her roommate was also constantly on the phone. So let’s assume I could program her voicemail software to answer the phone if the callbox called and to play the number 9 DTMF. If the roommate was on the phone the modem could also intercept the call waiting tone and switch over and play the 9 and switch back without annoying the roommate. We tried holding another phone up to the first phone and pressing the 9 but that didn’t work. So this is how I did it. We can use sox to create 2 wav files made from a sine wave. To get 9 we need 852 and 1477. The first 2 commands produce the 2 wav files and the third one mix them together. I’m sure you could script this to dial anything you wanted. I loaded the wav into the voicemail software and it worked perfectly for the remainder of her living in that complex. Her roommates were also pretty happy about it.
sox -s -w -t nul -r 44100 -c 1 /dev 852.wav synth 1 sine 852
sox -s -w -t nul -r 44100 -c 1 /dev 1477.wav synth 1 sine 1477
soxmix 1477.wav 852.wav 9.wav
Tomi Engdahl says:
https://www.edn.com/nines-complement-subtraction/?utm_source=newsletter&utm_campaign=link&utm_medium=EDNWeekly-20221215&oly_enc_id=2359J2998023G8W
Tomi Engdahl says:
https://www.edn.com/binary-elements-of-fractional-logic/?utm_source=newsletter&utm_campaign=link&utm_medium=EDNWeekly-20221215&oly_enc_id=2359J2998023G8W
Tomi Engdahl says:
https://www.allaboutcircuits.com/technical-articles/understanding-butterworth-filter-pole-locations/
Tomi Engdahl says:
https://hackaday.com/2023/02/07/count-leading-zeros-for-efficient-logarithms/
Ihsan Kehribar] points out a clever trick you can use to quickly and efficiently compute the logarithm of a 32-bit integer. The technique relies on the CLZ instruction which counts the number of leading zeros in a machine word and is available in many modern processors. Typical algorithms used to compute logarithms are not quick and have a variable execution time depending on the input value. The technique [Ihsan] is using is both fast and has a constant run time.
Tomi Engdahl says:
https://github.com/kehribar/log2