I've created a very low-noise Teensy Audio Shield so I can assure you it can be done. Take a look here for full details, including the schematic: TGA Pro
For starters with PJRC Audio Board, you...
Type: Posts; User: Blackaddr
I've created a very low-noise Teensy Audio Shield so I can assure you it can be done. Take a look here for full details, including the schematic: TGA Pro
For starters with PJRC Audio Board, you...
Yes, can power from your PCB, or via USB but NOT at the same time. As long as you never do that you should be fine.
I also have made a Teensy guitar pedal and while it's not that difficult to get...
The SNR of the WM8731 codec is 90dB, but you'll never get that in a real guitar circuit. Every component in the entire signal chain add some kind of noise and the CODEC is the lowest source of noise....
You didn't mention what you are using it for? Line-level signals? Guitar signals? Microphone?
I have a Teensy shield that is optimized for low-noise and guitars but can also used with line level....
Hey Pio, for what it's worth, I think your existing approach to floats is the best compromised approach. Using floating point from end to end is wasteful of a lot of computation. 16-bit transport...
Looks pretty cool! I'll have to give this a try. What is the processor usage % on the T4?
That TI part you've selected looks pretty good based on what you're asking for. Personally, I'm partial to the WM8731, mainly because it's decently priced, comes in a TSSOP package (easier to solder...
If you're going to be using a SPI memory you probably want to be using DMA for transfers so that the CPU doesn't waste cycles busy-waiting. However, DMA only helps you if you've got something else...
You might also want to take a look at the TGA Pro Audio Board. I specifically designed it for handling both line-level or guitar signals and helping out people who don't want to deal with a lot of...
A few years ago forum user unicornpower did this using the JUCE framework. You might be able to leverage his work.
https://forum.pjrc.com/threads/46864-Developing-Teensy-Audio-effects-as-plugins
Not exactly ideal but if there are no other options available I will need them to weigh this option against a panel mount adapter cable.
Paul confirms in a similar thread that the loader will only work with USB1, it can't work with USB2.
https://forum.pjrc.com/threads/63956-Programming-from-the-USB-host-T3-6
I suspect that will be sufficient for USB functionality once the board is up and running, but my understanding is the the actual programming of the board over USB is accomplished by the code from the...
Thanks for the suggestion. This would in fact be the long term plan, but for initial few production runs they need to keep things simple and use Paul's board directly. If a software solution is...
Why would I want to do such a thing?
I've recommended the Teensy 4.1 to a company looking to make a commercial product. They will require a USB port on the enclosure for user programming and...
Any chance of getting that small addition to the platform.txt file? Similar changes have been made on other Arduino compatible boards to support the precompiled library feature.
Thanks, I'll try reaching out to Paul directly then.
Anyone know which of Paul's repos on Github is for the Teensyduino files with regards to the following file. I can't seem to find which one it is and I'd like to make a pull request to get support...
You can process the triangle or sawtooth with an IIR filter (look at the CMSIS biquads supported by teensy for accelerated filtering) or use the waveform approach. The latter is is certainly more...
Sorry for the very late reply, I missed this message a month ago. To answer you question, if you just want line in, the schematic in the datasheet is suitable. If you want really good noise...
The Teensy Audio library supports other codecs as well. Take a look at any of the control_* files. Those are your options without having to write your own stuff....
I've not tried C++17 yet, but I know for sure C++14 is supported fairly well by Teensyduino and for a while now so I would start with that to use something with some more maturity on Teensy. I use a...
Yes, the Teensy 4.1 should be pin compatible with the primary pins it shares with the Teensy 4.0. I've already ordered a few Teensy 4.1s so I'll be able to confirm everything works with the TGA Pro...
If I recall correctly, you also have a TGA Pro. I made an adaptor for people wanting to use the Teensy 4.0 with it.
https://www.tindie.com/products/Blackaddr/tga-pro-teensy-40-adapter/
That number actually sounds spot on to me. The SNR spec for the WM8731 is 90 dB on the ADC. Using the 6 dB-per-bit rule, this is 90/6 = 15 bits of usable noise-free bits in an ideal scenario. In...
I think you're being a little harsh on this CODEC. All codecs from reliable manufacturers can meet their datasheet specs, but rarely do in a system because it's the design of the system around it...
You are correct, the purpose of this is to fix the direct-DMA capability with the audio buffers which is only broken on the T4. There's no pressing need to make a similar change to the other...
Let me know if you have any problems with the PR and I'll look into it. If you also have any ideas on how to accomplish the same thing in a cleaner or more-portable, future-proof way I'd love to hear...
You are right. If we wanted AudioStream to be more future-proof, we need to have at least two objectives:
- separate the control information (meta data) from the audio data. This could be done with...
You can use my pull request for cores/teensy4 as-is and it should work for your user code, but you must also make a change in the Audio library, effect_freeverb.cpp to compile. There is a nasty bit...
It's more than just a speed difference. My particular issue is backwards comparability. Teensy 3.X permits to you DMA directly in and out of Audio buffer because that processer only as a 4-byte...
Hey Paul, I created a pull request to illustrate a potential solution to this problem. The method is to replace the audio data buffer array in audio_block_t with a pointer. This makes the change...
I spent a lot of effort designing my Teensy audio shield to be low noise, hi quality. It's a very difficult task to keep mixed signal (digital and analog) designs noise free on the analog side. You...
Can you use a USB midi dongle connected to the host? This will show up as an available USB MIDI device to JUCE, then talk to the Teeny over the usual MIDI connectors.
Example USB midi dongle
...
There is a way to restructure the metadata in a fairly backwards compatible way. I tried this out and it it worked on my setup.
1) Modify the audio_block_t to contain (int16_t*) instead of a fixed...
The aversion to memcpy is every single word copied takes multiple CPU instructions from the various load-stores. At 44 Khz, you're talking a couple hundred thousand instructions per second for a...
Thanks WMXZ for taking the time to read and comment, the help is appreciated.
I looked over the output_i2s.cpp, you're right WMXZ, the output_i2s.cpp creating a local 32-byte aligned i2s_tx_buffer...
You might want to create your own separate project thread for discussing your mixer design, it may get more views that way.
I don't think you're missing anything. Memory comes down capacity, latency and throughput (let's ignore power for now). So I guess it comes down to how much of your customer base needs something...
ISSI is probably the cheapest alternative (well, a little bit cheaper than Cypress) ignoring all the Chinese-only market stuff. You can get 64Mbit for about $5 USD in production quantities. Would I...
FORM FACTOR - keeping the T3.6 form factor would be great
RAM - adding a big chunk of reasonably fast ram would be ideal. A single HyperRAM chip on board would be my suggestion in 64Mbit or...
Once again, thanks for your time Paul.
- just to be clear, please note my suggestion is the AUDIO_BLOCK_SAMPLE sized audio data buffers (audio_block_t.data) must be be 32 BYTE aligned for DMA, not...
Hi Paul, thanks for the reply. I've looked at the cache functions in quite some detail as I've been investigating this issue for about 2 months so I'm happy to wait a few more weeks. I've also had...
Any developers who contributed to the Audio library or DMA development care to comment on this? I'd like to get some validation or discussion before submitting a bug report on github.
Once again,...
I've been looking at lot at the T4 memory structure lately as i've been having problems with cache coherency.
@defragster, perhaps you can clear up any misconceptions.
I'm pretty sure the TCM...
You can also use SPI ram for delay. My audio board uses 4Mbit chips. One of these chips gives about 6 seconds of single-channel delay, the equivalent of 2048 audio blocks. You can use the SPI...
Cool! In order to use the built-in allocate() and release() functions (which would let you avoid implementing a pool manager) you must inherit the AudioStream class, otherwise you'll need to hack the...
Okay, I was able to reproduce this issue with the Teensy Audio Shield. Maybe someone with a working Teensy 4.0 and audio shield using LINE IN left can give this a try?
The sketch is written to...
After months of struggling to get DMA SPI memory working with the T4 OCRAM I think I finally found the problem, and I think it's in AudioStream.h. Basically, I'm getting audio buffer corruption when...
SPI1 with DMA is only supported on 3.5/3.6/4.0