Most information can be found on this thread, and that's the ideal place to go for support as any answers I give will be fairly easily found by future Seekers of Knowledge. The thread started out with me checking I wasn't about to re-invent the...
I know a bit more now, so maybe I can figure out a way to destroy I/O objects completely, though it probably has very little practical use...
For ordering, I took the fairly simplistic approach that it becomes defined between any two objects...
I've just glanced over my code to refresh my memory - it's been a long time!
So ... the cores changes are confined to AudioStream.cpp and .h, and almost entirely about:
dealing with the ordering problem
keeping track of stale pointers, e.g...
No, I've not put in a PR for my all-singing all-dancing updates, partly because they are so far-reaching, and partly because even minor changes weren't being pulled. I know Paul is aware of my changes, and keeps a close eye on the forum, so I'm...
Believe me, if I thought a more modest approach would work, I'd've adopted it! Well, to be fair, I did, to start with. But then the shortcomings became increasingly apparent, until I arrived at what exists today.
pushing the contract to...
What Paul said ... trying to jump straight in with "your application" is a poor way of familiarising yourself with the Teensy audio system. The Design Tool is just one part of that.
As you don't say what your application is, I can't express an...
Ah ... I missed that i2s2_2 is an AudioOutputI2S2 object ... it's all a bit confusing to start with :unsure:
The audio adaptor uses AudioInputI2S and AudioOutputI2S, not the I2S2 ones. If you start from a blank Design Tool and place one of...
Hard to say without more detail of your intended application. It's correct for processing a mono signal, though you're not doing any processing apart from anything the SGTL5000 is doing internally, and outputting your mono signal on two outputs...
You're right. This is entirely my fault, I fixed setting breakpoints on T4.x with TD 1.59, and broke T3.x :eek:
I've put in a pull request, but in the mean time, if you modify the code around line 1182 of TeensyDebug.cpp like this, you should...
Here are some bugfix PRs:
https://github.com/PaulStoffregen/Audio/pull/464
https://github.com/PaulStoffregen/Audio/pull/462
https://github.com/PaulStoffregen/Audio/pull/426
https://github.com/PaulStoffregen/Audio/pull/407...
Also, it might be worth investigating the internal PLLs. Certainly the one used for I²S / TDM is capable of generating 24.576MHz (i.e. 256x 96kHz), and I'd expect it'd go up to 32MHz. You'd need to check the Reference Manual...
Hi Chip
I've put a bunch of effort into this, with results at https://github.com/h4yn0nnym0u5e/Audio/tree/features/dynamic-updates and https://github.com/h4yn0nnym0u5e/cores/tree/feature/Audio/dynamic-updates, and a forum thread for support and...
I've not played with the filters much, but I'd certainly expect more stages = steeper rolloff. Note that the biquads each contain 4 stages, of which you've so far only used one.
I just picked one of your examples, since they were basically...
I want to apologize and close the loop on this one. I must have previewed my response months ago but forgot to hit the "post" button. Anyway, your detective work @h4yn0nnym0u5e was spot on. I thought I had combined the two sample programs without...
This is probably "zipper noise" from the mixer, as any gain changes are sudden. One way around it is to use DC objects and multipliers, thus:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
//...
Thanks a lot @h4yn0nnym0u5e for your response and sorry if I confuse others. I thought indeed that FXs where based on the internal audio processor of the audio shield, because I tried one of them quickly once on my DAC and didn’t work. Now I know...
2 and 5 belong to SAI2; 6, 7, 8, 9 and 32 to SAI1. The TDM objects in the Audio library use SAI1, and the TDM2 use SAI2.
Pin 32 is what’s used for AudioOutputTDMB and AudioInputTDMD. It may be the hardware can be configured to “discount” pin 32...
Argh. Sorry. We’re talking about inputs! Here’s a PR intended to fix an input problem, though it never got merged … it was ignored for 3 years, then the contributor closed it and replaced it with a PR for some totally broken multi-IO code … so I...
…hit “post” too soon…
Maybe the omission of the masks for in1 is the issue? Hard to say…
For my multi-output update I had to completely re-write the blocks-to-buffer code, because the interleaving changes with the number of outputs in use. I’d...
The original library is intended to output 16 16-bit samples in each frame: the CS42448 gets its 32-bit samples by dint of the designer only wiring the even-numbered ports on the TDM output object. Purportedly tested by Paul, but maybe not as...
Where did you read that?
As I said in post #2, none of the effects in the audio library are in any way dependent on the output hardware you are using. That applies to any object in the effect section of the Design Tool - the Teensy code...
That shouldn't work and should warn you - I'm getting this:
(You get the little beige message when you click the warning triangle.)
I need to check with the united Design Tool I uploaded, it seems there's a bug in it if you don't get the...
You can use one input and one output, but the Design Tool will indicate a clash (little yellow warning triangle) if you try to place two outputs, for example.
Excellent news - big thanks to @AntiLoop for testing our efforts. That and bug reports are very important, without those we're never 100% sure how robust our code is :cool:
Nope, the delays are hardware-agnostic like all the effects, synth objects etc. Well, the “external” delay needs you to add some RAM, but for a short enough delay you won’t need it.
The only hardware-specific objects are the control ones...
In my multi-TDM update I implemented a setBCLKinverted(bool invert) function (though I think I may have failed to document it…): for example, AudioOutputTDM::setBCLKinverted(true);. As it applies to the whole SAI1 channel, it’s a static function...
Please use the code tag (click on the </> button) when posting code - it makes it easier to read, and in some cases ensures xenForo doesn't corrupt your program and make it look incorrect!
See this page on the PJRC website for a description of...
That seems to be behaving like aliasing, but having said that I don't know enough about how and where that might arise!
One thing I could and did calculate ... that input filtering with 150R/2700pF has a -3dB point of about 393kHz, so it won't...
I think the title gets locked after a while. Still seems relevant, and we covered a lot of the topics that folk will need to know about to use multiple CS42448 boards, so ... good job!
There wasn't (apart from one I made which has a bunch of other stuff in development) ... but there is now. I think this just works if you unzip and drop it into the gui folder alongside the existing index.html, which makes it easy to switch back...
Ah ... found the answer ... see this issue on the Arduino IDE github, link is to the workaround. I mean, it's only two years old, very unreasonable of me to expect it to be fixed.
I've just found a few extra sections in platform.txt that are different between Teensyduino and Boards Manager, so we probably need two copies in the repo. However, playing around with it has also reminded me that IDE 2.x refuses to show the...
Unfortunately the guestbook is a bit of an "all or nothing" sketch - leaving stuff out is harder than it should be, and you have to assemble the kit of parts properly, too! It doesn't help that the originator appears to have zero interest in his...
The "bigger blocks tweak" is mine, and very specifically for the Audio Guestbook sketch. See discussion starting here for details, though note you'll have to read a lot of posts to find a link to the latest version. The bigger blocks were needed...
Glad you’ve got it working. Yes, that’s the trouble with trying out some of these bleeding edge libraries, an essential update appears and you don’t know about it…
On the pin names, it is a bit confusing. SAI1 has 5 pins, which Paul has labelled...
Thanks for that, glad you have it working. I have a laptop with IDE 2.x on it so at some point I’ll fire it up and see what needs to be done to make this work there, too.
OK, I've just tested on my hardware and as far as I can tell everything works as expected.
I had to comment out all your display-related code, because I haven't got one
SD card initialisation fails, because I haven't got one
I set amp7.gain(0.5)...