I've had a look, and can't immediately see what the problem is.
I'm always a bit nervous when there's lots of duplicate code and strings, and more so when the duplicates aren't quite so - like your SD directory being CLKSNDS but LittleFS uses...
I'll take a look.
In the mean time, here's a sketch I adapted to use SD+LittleFS rather than two SD cards. I haven't got a QSPI flash so it uses a LittleFS RAM disc and copies an audio file to it from the SD card during setup(). Assuming the...
I can understand and sympathise with your opinion, but it remains the fact that a lot of users use nothing but the Arduino IDE, and on this forum it is the canonical way of supplying a concise example of code that reproduces an issue. Often the...
I've done a PR to your repo, having done a bit more testing - this essentially adds in stuff I'd already done previously. Minor change to your code to make it compile with 8 channels @ 96kHz. Haven't time for more right now, but will be back!
That sounds like good news, will give it a go as soon as I can.
With regard to the PR, I was thinking only as far as forking your repo, adding in some of my modifications to allow placement of wider USB objects in the Design Tool, and submitting...
...of course, that code fragment absolutely can't work. No audio memory, no way of getting output ... the list is endless! But everything else is in other examples. I think...
EDIT: the closest to what you want is in the Audio library examples...
Hi Ed
I confess I've never tried any variant of LittleFS for anything! However ... the play() method is declared as
bool play(const char* filename, FS& fs = SD, bool paused = false, float startFrom = 0.0f)
Thus as standard it uses SD as its...
I only tested input very briefly … even more so than the output! Seemed OK but I need to do a thorough test, recording known-perfect waveforms and then looking at them with a spectral display to highlight any discontinuities.
Didn’t touch 96kHz...
I've had a very brief play and it seems to be the best I've heard yet - nice job!
I can see the extra samples being inserted (Teensy->PC) but can't hear them. Curious to know how the PC reacts if you just send the occasional packet with one...
Yes, that’s right, you can use both TDM channels at once. Can’t claim to have checked the pin numbers you gave though :) Doesn’t matter whether they’re CS42448 or PCM3168.
There’s also this thread and linked pull request which suggests that it...
I tested the usb input now also with 48kHz and I fixed a small bug (unrelated to the sampling frequency), that caused sometimes a nearly empty buffer at the beginning of a stream. As far as I can tell, the usb input also works for 48kHz.
No, it was because the NE5532 can only get to within about 2V of its supply rails, and that was the single simplest change I could make! Just a -5V supply to ANA_VMM might do it. I used the NE5532 because it was on the data sheet examples and...
I didn't test different sampling frequencies yet, but I want to try out 48kHz in the next days. I tested different bIntervals by just changing the value AUDIO_POLLING_INTERVAL_480 in usb_desk.h for testing purposes (Manually setting the value is...
It’s slightly easier than that. The output stage is only connected if you fit 4 jumpers to CN3, jumping 1-2, 3-4, 5-6 and 7-8. So just design your analogue out as you see fit, and connect to the odd-numbered pins on CN3 (VOUTn+/-). VCOMAD_B on...
This looks great, I definitely plan to give it a go when I have time to do it properly. I’m understanding from what you say that we should be able to get 8 channels at 96kHz working properly? That needs 1536 bytes/ms, so a bInterval of 0.5ms or 4...
I just placed a 1000uF decoupling cap at the 5V Teensy VIN and voilà, the tikitik is gone :)
Long time with this problem, asking is needed sometimes to get clues and organize thoughts.
Yes, it should, so it’s likely not the writes. You only said “changes” the speed, so I had to guess bigger was slower, as that’s what we saw previously.
Please do bear in mind I'm primarily a software guy who knows just enough about hardware to be dangerous!
My contributions on the audio guestbook thread relating to this issue are around here. Various pieces of evidence seemed to stack up...
Just trying the multi-pin TDM, and it looks as if output_tdm.cpp only has some of the required modifications; the register bit-twiddling code is all in there, but the N-pin setup in begin() isn't, and neither are the changes in isr() or the...
That’s using my buffered play/record library, continueRecording() doesn’t need to do anything because the record object does the SD writes in an event response.
I recall from the audio guestbook thread that power / ground bounce could get into...
You may need to define "easily". And indeed "to a Teensy 4.1", since you mention adding PSRAM to the audio adaptor... And maybe what your goal is would give us a clue, though to be fair that doesn't necessarily make much difference.
For example...
You should be able to use an SD card just fine, I don’t think it clashes with either TDM or TDM2. If you use the Teensy 4.1 built in slot then that’s definitely OK, I’ve tried it.
Note the EasyEDA Teensy footprint uses conventional pin...
THANK YOU SO MUCH! I must have been testing the phone while still plugged into the computer, leaving it in Ready, then unplugging. I called it the reset button because it was then stuck waiting in while (!Serial) {} once I plugged it in and so...
It's NOT a reset button! It's a Program button, and you just told your Teensy to wait for new code to be uploaded. Just power it up and wait for the confirmation beep. And ensure you DON'T have any remaining while (!Serial) {} or similar code...
Not an urgent problem at all, no worries. I just repeated myself as we seemed to have perhaps gone a bit OT!
I did take a look at the manual but it doesn't even mention Conversations that I can see, though there do seem to be mechanisms for...
Speaking as a well-known member in the devboard conversation (or at least one of them) where defragster has included images, I see no such drag+drop option to include images, only the URL field.
Any chance of enabling images and attachments within Conversations? I much prefer to do most discussion on a thread where everyone can benefit, but just occasionally it's appropriate to keep things 1:1
Finally got round to trying the multi-channel USB, in the hope you found something @mcginty and I missed. No such luck, I'm afraid, I still get glitches:
My test code is this:
#include <Audio.h>
#define AUDIO_kHz ((int) AUDIO_SAMPLE_RATE /...
You might want to try increasing the number of buffers and their size in ResamplingSerialFlashReader.h:
#define RESAMPLE_BUFFER_SAMPLE_SIZE 512
#define RESAMPLE_BUFFER_COUNT 7
This might help the "sound goes really bad", could help the...
A few things to note:
the delay time is a float, in milliseconds - obviously an Arduino-style analogRead() is never going to give you fine-tuning here, but potentially worth knowing
there's not much throttling the update speed of your loop(), so...
I've just knocked up a very simple thermistor-based probe, on the basis I probably won't be allowed to keep the work FLIR camera :giggle:
It's not likely to be super accurate unless I can find a way of calibrating it, as the thermistor has ±5%...
Some objective values for "quite warm". Here's a couple of FLIR camera images without a heatsink, after allowing the board to warm up. Ambient is about 20°C, images are top and bottom of board and targeted as best I could at the hottest point...
Nope, but I can't imagine they've done anything too radical, Atmel / Microchip are usually pretty consistent. Of course, it does have to receive updates from your main controller as well as "spit out Fastled data"...
In other news, just for fun...
It should be possible to add the custom code to your libraries, but I think you need to put it "one level down":
I can #include "custom.h" or #include "not-custom.h" in a sketch, and the Arduino search process finds them OK.
The Design Tool GUI...
Glad you got it working.
It’s possibly worth pointing out that you don’t have to assign all 95.1 seconds of EXTMEM to a single delay object, as your sample code does. You can have multiple objects each with their own maximum delay time, up to a...
OK, a few things ...
it's really helpful to post code in the </> code tags, makes it easier to read! Not vital for this short piece of code
I have to assume you're using Teensyduino 1.59 - this is pretty important, a couple (?) of the previous...
Yes. By me, nearly 2 years ago. And nearly merged with the official library, over a year ago. But not...
https://github.com/PaulStoffregen/Audio/pull/433
Yes, though I could probably have made a better job of it, in hindsight. There's copper under the chip on all 4 layers, with top and bottom layers being the pad ground so tied together by the vias in the part's footprint. I'd imagine it might be...
I've added a reset(pin#) function to the AudioControlPCM3168 object - it's pushed to the repo linked in post #1.
Before you call AudioControlPCM3168::enable(), you should call AudioControlPCM3168::reset(pin), using the Teensy pin number you...