Teensy Audio 24bit 48kHz qustions and more..

[...] software like Logic Pro X, or high end workstation-class PCs with, well, I know no idea what software does this sort of thing on the PC side - whatever runs all those VST plugins maybe?

Paul, I use Logic on Macs but I have limited awareness of other DAW software. However, I did run across a plugin that listed all the DAW software that it was compatible with, and the list was very eye opening for me. I'm making absolutely no comment about the plugin, just pointing out the list of Supported Hosts. I assume that the plugin developers are targeting the most popular ones for Mac and Windows.

Here's another list.
 
Paul, I use Logic on Macs but I have limited awareness of other DAW software. However, I did run across a plugin that listed all the DAW software that it was compatible with, and the list was very eye opening for me. I'm making absolutely no comment about the plugin, just pointing out the list of Supported Hosts. I assume that the plugin developers are targeting the most popular ones for Mac and Windows.

Here's another list.

this is pretty much the majority of all available commercial daw's..
VST is just a standard introduced by Steinberg. There is a SDK which you can use to develop your own plugins. If the DAW supports VST and you've compiled your app for your specific OS then you should be able to open your plugin from your DAW.
For mac it is called AU (Audio Unit). A little bit different. But there are good cross-compilation frameworks like JUCE, f.e. The most of the Audio developers nowadays are using it.
 
Just for fun I googled for samples, and all I found was 16Bits/44Khz. Ok, with more than 5 minutes googling I'll find >16Bits perhaps..
I found "professional" samples with 16Bit.

I understand the need of 24Bit in some cases, but.. for an instrument?
If you just want to output 24 Bit..or even32 bit (with the 16 bit shifted, and lower bits zero) to I2S that woul be pretty easy. 48Khz (or 96 if you want), too. Without needing to rewrite the whole library - just by editing the I2S output.

Soundquality: Maybe you had some bugs in your program? Or there exist bugs in the library-code for the effects? Can you please post a code-example with bad quality? I want to look at it, when I have some time.

ahh this is what you mean..
did you also found things like f.e the Vienna Symphonics Library https://www.vsl.co.at/de. this is perhaps a little bit more what a professional studio would use..
 
Last edited:
You've said you can hear the difference between 16 and 24 bits. Well, what sort of hardware are you using for those 24 bits you can hear differently?

There are *many* chips and products on the market that say 24 bits, and indeed they do use 24 bit, but the bottom 8, 9 or even 10 bits are all random noise. Even high-end chips are maybe at best 18 noise-free bits. But actually getting that to a useful analog signal is not cheap.

Then gain, there are plenty of products which say you get 24 bits. Maybe just claiming to be 24 bits is enough?
 
You've said you can hear the difference between 16 and 24 bits. Well, what sort of hardware are you using for those 24 bits you can hear differently?

There are *many* chips and products on the market that say 24 bits, and indeed they do use 24 bit, but the bottom 8, 9 or even 10 bits are all random noise. Even high-end chips are maybe at best 18 noise-free bits. But actually getting that to a useful analog signal is not cheap.

Then gain, there are plenty of products which say you get 24 bits. Maybe just claiming to be 24 bits is enough?

heh.. so you're telling me that people are spending tons of dollars on binary noise? quite funny actually :)
but I don't think so.
ok perhaps a sound card would be a good example. the cheapest one that I own is a RME Fireface. Take a look at it.
 
the cheapest one that I own is a RME Fireface. Take a look at it.

if I did the math right, those figures actually sound to me like a maximum of 16-18 bits . . . for a 1000$ sound card Firefox UCX

Dynamik AD: 110 dB RMS unbewertet, 113 dB(A)

THD AD: < -100 dB (< 0,001 %)

THD+N AD: < -98 dB (< 0,0012 %)
 
Is it this one?

http://www.rme-audio.de/en/products/fireface_802.php

Those specs look pretty similar to the very best ADC & DAC chips I've seen.

113 dB unweighted dynamic input range is almost 19 noise-free bits.

115 dB unweighted output range is pretty amazing, that 19th bit (claimed by the specs) makes it to real analog signal. Whether or not any headphone amp is really that good is another question.

I really do not believe PJRC will be able to offer an audio shield that matches this amazing 19 bit signal quality. Who knows, maybe we'll someday make a spendy board that gets into the 17-18 bits range, but even that is pretty tough and probably not something we can manage to sell that the expensive cost it would have.
 
Is it this one?

http://www.rme-audio.de/en/products/fireface_802.php

Those specs look pretty similar to the very best ADC & DAC chips I've seen.

113 dB unweighted dynamic input range is almost 19 noise-free bits.

115 dB unweighted output range is pretty amazing, that 19th bit (claimed by the specs) makes it to real analog signal. Whether or not any headphone amp is really that good is another question.

I really do not believe PJRC will be able to offer an audio shield that matches this amazing 19 bit signal quality. Who knows, maybe we'll someday make a spendy board that gets into the 17-18 bits range, but even that is pretty tough and probably not something we can manage to sell that the expensive cost it would have.

ok, thanks for the in depth clarification!
but I'm curious, what is it actually that makes it so expensive?
then with the current audio board, is it possible to to implement 48kHz or 96kHz? has the whole library to be rewritten?
 
btw. there is a tool for RME I just discovered:

http://www.rme-audio.de/en/support/techinfo/digicheck.php

scroll down to Bit Statistic & Noise
Here is what I'm getting:

Bildschirmfoto 2019-01-08 um 16.40.41.png

Is this somehow relevant to our discussion?
 
Maybe try recording a few seconds of silent input to a 24 bit WAV file? Make sure noise gating features aren't used. Then let's look at the data...
 
I'd just not use the Teensy or audio-shield for the in- and outputs. The audio-shield DAC is consumer grade.
Why not use a pure digital interface like SPDIF, ADAT or I2S ? Teensy can output all of them, and you can use I2S for input. I think the Teensy4 will have SPDIF-input, too (not sure if there is a dedicated pll+buffer to remove jitter@input (other chips have it)- would have to read the docs..)
All you need is a high-end DAC that you can buy for $$$. Something like this? http://www.rme-audio.de/products/adi_2-dac.php (perhaps still not good enough..)
is it possible to to implement 48kHz or 96kHz?
Yes if you don't use the Teensy-onboard ADCs/DACs.
has the whole library to be rewritten?
No.
 
Last edited:
I'd just not use the Teensy or audio-shield for the in- and outputs. The audio-shield DAC is consumer grade.
Why not use a pure digital interface like SPDIF, ADAT or I2S ?

Sorry for the delay in responding, I was kinda busy.

Frank B's comment is brilliant and I agree. If I were to purchase a higher-end audio board (and this thread makes me want to!! ;) ), I'd much prefer digital I/O. It is so very common for modern Pro and semi-pro audio equipment to have to have these interfaces available. Even USB, Firewire, or Thunderbolt would be useful.

Perhaps, I2S I/O to a separate board dedicated to converting to the other formats.

I know this is a long ways off. Just providing some food for thought and expressing my desires.
 
Last edited:
I actually didn't intend to start a general conversation about audio engineering. This is always pita...

about your question:
yes this is exactly where I ended up. using another synth.. and this is actually pity, because I was able to reproduce (well in theory) quite the same behavior of the ondes. but like I mention before - there where many issues regarding the sound quality (and not so much the performance), so I had to abandon the teensy as sound source.
besides, if you build something out of wood and metal with electronics in it, there is always an intention (at least for me) to be able to encapsulate the whole thing and make it so independent from other gear/software/etc.. as possible. then it becomes, what I consider as a instrument!

Seen this ? Nice MIDI Controllers :) https://forum.pjrc.com/threads/53581-Musical-Instrument-Collection-using-Teensy-Midi
 
Maybe try recording a few seconds of silent input to a 24 bit WAV file? Make sure noise gating features aren't used. Then let's look at the data...

ok, so how exactly should I record? should I ground the inputs? or just mute them/ set to minimum input gain?
 
I totally agree that 24bit/48k is the minimum for any prosumer audio gear--not because anyone can tell the difference, but just because it's the industry standard. You would be a marketing failure without 24/48. I make teensy based MIDI controllers, and I would love to break into the audio domain, but I feel the tools aren't there.

First and foremost, for serious audio, you need good clean audio in/out. I watched a YouTube video demonstration of the audio library and shield and while the library seems well thought out, my first impressions was that the sound quality was not going to cut it for pro audio. I also had questions about latency and the prospect of ASIO drivers, but those were not addressed in the video which tells me that Teensy audio just doesn't have its eyes set on that market.
 
I actually did some measurements on the sgtl5000 on this topic. It is on my own board, with some circuits in front of the codec. Just to get a wider dynamic input range(for guitars/bass). But the important thing is not the absolute value of the measured noise(which is my main goal to get as low as possible), but the difference between the settings.
I tried the latest library from chipaudette (tympan) with the floating point library. Changed the SGTL5000 driver to send 32 bits data and compared the following:
16bit -44.1k Fixed Point(standard audio lib)
16bit -44.1k Floating Point
32bit-44.1k Floating point
16bit -96k Floating Point
32bit-96k Floating point
Basically all the 44.1kHz looked similar and the 96k had about 2-3dB lower noise floor. I did not see any difference between the 16bit /32bit settings...
I tested the 96kHz on the standard library, but for some reason it got a lot worse. But I did probably something wrong in the setup..
As mentioned by others before, the powersupplies and layout has a HUGE role in getting below the noise level that is required to get any value from the extra bits.
I have made a new board with isolated power and the AK4558 chip. Have not measured it yet, but I can hear the improvement.
The sgtl5000 has a lot of features, but they can mess things up too. Remember to disable the sgtl5000.adcHighPassFilterDisable(); That helps a lot!
Anyway, here is the graphs. Don't mind the THD numbers etc.. Look at the graphs and compare.
16bit 44_1kHz tremolandoFIXEDPoint.PNG32bit 96kHz tremolandoFPU.PNG
 
Back
Top