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)...
Ah, hang on, I may have spotted it. The compiler path is specified in platform.txt, which you'll have overwritten with the changedConfigfiles one. The relevant part may be
# Teensyduino Installer
compiler.path={runtime.hardware.path}/../tools/...
Right ... so the IDE is right to complain, always assuming the toolchain is supposed to be where it's looking.
If you reinstall (sorry...) without the 8-wide USB mods, and look again, does the path exist? And does a verbose compile of e.g. the...
Great thanks. Could you try something for me - swap the order of the TDM input objects, like this:
// GUItool: begin automatically generated code
AudioInputTDM tdm1; //xy=158,1989
AudioInputTDMB tdmB1...
That's correct, except of course that the Design Tool makes it hard to distinguish TDM, TDMB, TDMC and TDMD (on SAI1) from TDM2 (on SAI2). You can tell in your summary, from the pins used for the TDM clocks.
Your post #18 looks correct, but the...
So the $64,000 question is ... does C:\Users\rich4\AppData\Local\Arduino15\packages\teensy\hardware\tools/arm/bin/arm-none-eabi-g++ exist? Clearly the IDE expects it to ... if it does then the IDE is being weird, if it doesn't then the...
Are you sure you have the data I/O pins wired correctly? MCLK_OUT, LRCLK_DO and BCLK_DO are common to both boards, but one should have SD_OUT0 and SD_IN0 wired to Teensy pins 7 and 8, and the other to pins 32 and 6.
(Not sure you need those...
Pretty sure IC1 is intended to be fitted, along with R26, R27 and R28, to allow configuration of the board by setting jumpers on SIP1. It's hinted at on the schematic you posted...
Good news you've got it working - presumably the RA8875 has pull-ups fitted so no more need to be added.
Apologies, I somehow missed your post #37. I didn't try all addresses, because I'm sure they'd work. You definitely need to fit a zero ohm...
The definitive HowTo for installing Teensyduino can be found on the PJRC website - I took a quick look at Paul's github repo and didn't see any instructions there, so not entirely clear what you've followed!
It's often helpful to turn on verbose...
I've been having issues with this recently (don't use it often), and have finally found the root cause. Teensyduino 1.59 prevents writes to code memory for security reasons, but this also destroys the ability to set breakpoints or single-step...
Often times when I am playing around with a Teensy 4.1 that has PSRAM and I wish to use it, I find that the default 88mhz speed is too slow.
I am playing around right now with a T4.1 with an NT35510 display on it that is setup using a 16 data...
@h4yn0nnym0u5e: I am happy with the code for now, but I am open for suggestions for improvement. Currently, I'm not aware of any issues.
@Paul: In case you are interested in merging our changes into the T4 core/ Audio master: Is there anything...