I can't say exactly how your program should be written, but here is some general advice which may (or may not) help.
I would add a variable which keeps track of the intensity level you're currently displaying. Maybe this would be a single...
First quickly check if your CM used the correct flash part. The Winbond parts with "Q" at the end do not work and will give this 3 blink error. Only the "M" parts work.
3 blinks means a problem with the flash memory.
Blink code are on the T4 bootloader chip page. Scroll down to "Troubleshooting & Diagnostic Blink Codes" near the end,
This sort of error can be caused by missing or wrong connections between the bootloader and RT1062, or between the RT1062 and flash memory.
Is the red LED giving any of the blink codes? Blinking twice or 4 times would be the likely errors.
If you previously had TX - RX and RX - TX connected and swapped the wires so TX - TX and RX - RX connect, you would expect the result to change from "something" to "nothing" if the problem is something like wrong baud rate or poor quality signal...
Yes, there is a way. You can let attachInterrupt do most of the setup, then use attachInterruptVector to cause your function to run directly rather than the generic one. Inside your function, you'll need to clear the interrupt state for the pin...
You don't need the code to call handleControlChange(), because you used usbMIDI.setHandleControlChange(handleControlChange). This will just cause it to be needlessly called twice.
I would like to repeat my suggestion to temporarily add...
I see a few places where SPI is used without SPI.beginTransaction(). Usually you would want every SPI.beginTransaction() to match with a SPI.endTransaction().
I would try a moderate speed like 4 or 8 MHz for SPI clock. I'm pretty sure Teensy's...
If you want the LED to show different intensity for both colors, you can achieve it using pinMode, digitalWrite, and analogWrite. For the 1st pin to be low, use pinMode to configure output mode, and then digitalWrite to drive it low. Then use...
If just 2 colors will do, like green for normal and red for peak, maybe this sort of part will do?
https://www.mouser.com/ProductDetail/Lumex/SSL-LX3054IGW?qs=7jmq9uQgtYEqiCiVBeex0w%3D%3D
If that complicated link doesn't work, go to Mouser and...
I'm sad to say, this is the one place where we really can't get much info. The log file show the USB device is appearing and Teensy Loader is sending the loader utility. The USB disconnects, which probably means the loader utility started...
What you should do for this sort of questions is compose a small but complete program anyone can copy into Arduino IDE which demonstrates the behavior you're seeing. Then share that program as text, not images, so anyone here can indeed run it...
If you're using attachInterrupt(), which first runs dispatch code to call your function, then 72 cycles sounds about right.
But that's a bit of guesswork, since I can't see the portion of your code which sets up the interrupt. Details matter...
I copied your program into Arduino IDE. Of course it doesn't compile because MidiFile.h and Options.h are missing. When I comment those out, it seems "scaleChords" and "KeyNum" are the things used that must exist somewhere else in your code...
Can I talk you into creating a small example program which consumes 200K by use of #include <sstream> ?
I tried this:
#include <sstream>
void setup() {
}
void loop() {
}
and the result was only the ordinary small memory used by the USB stack...
Class D amplifiers work by using pulses at frequencies much higher than audio range.
https://www.analog.com/en/resources/technical-articles/fundamentals-of-class-d-amplifiers.html
One way would connect to I2S to pins 2, 3, 4 on Teensy, and remove the connection between pin 2 on Teensy and the Prop Shield.
Alternately, you could connect to the normal I2S pins and resolve the pin 7 conflict by not connecting between Teensy...
Teensy 4.1 uses the same pins as Teensy 4.0.
You might need to remove 1 or more of the pins connecting between Teensy and the Prop Shield, so that Teensy pin can be connected to your I2S device. Maybe inconvenient, but far from impossible.
Try re-heating the solder on pin 13 underneath the audio shield.
For reference, check out this soldering tutorial.
https://www.raypcb.com/how-to-solder-electronics-2/
Look at "Cold Joint" on the 2nd row. There's a good chance the solder...
If I were to grab a brand new audio shield, how would I reproduce this problem? Do I run one of the audio library examples? Is listening with headphones enough?
Yes, exactly, a massive difference in raw speed.
In addition to all the points Defragster made, when memory mapped you also gain the (usually) huge benefit of M7's cache.
Yes, there is a way. But unless you're a C / C++ expert familiar with the finer points of pointers / structs / classes, just drawing multiple copies in the design tool is simpler and probably takes less time overall.
Your program uses AudioOutputI2S. On Teensy 4.x, AudioOutputI2S transmits data on pin 7.
Like all audio library features, it's documented in the design tool's right side panel. Scroll down to "Hardware" for the details...
This code looks similar to the Recorder.ino example.
But the continueRecording() function is empty. Is that intentional? How it it supposed to process incoming data while recording?
Yes, those errors are from using the old Teensy-3-only library.
Just delete it, because it's overriding the newer version that came with 1.59.0. Arduino IDE is trying to tell you about this with these lines:
No, we lost compatibility with MacOS older than Mojave (10.14) with the gcc toolchain update that came in version 1.58. The rest still works with very old MacOS, all the way back to when Apple named MacOS releases with big cats. But after you...
Do you have a Teensy 4.1?
Probably best to first get your software working on the known-good hardware of Teensy 4.1. Then after you have known good code recording flawless files, go back to the custom hardware.
Trying to troubleshoot custom...
You showed us your Arduino sketch code, which is good, but it includes 8 files and 1 of those (AMY-Arduino.h) is something unfamiliar, not anything installed by Teensyduino. Your compiler errors also how the offending lines are in...
Safest to make your plans around 16.5 MByte, assuming roughly half of the on-chip 1MB RAM will be needed for a variety of other things.
Memory over slow SPI usually isn't very useful because of the overhead. Especially if you're planning to run...
Intended, no. Nobody intends for anti-virus false positive errors, but sadly they're an unfortunate fact of life. Best to report it to your software vendor and hope they fix on the next update.
Expected, well, yes. You can expect "file does...
Indeed Teensy 2.0 is pretty much my lowest priority, since it's been discontinued.
If there is indeed a bug in the existing software, and if you can post detailed info including a test case which reproduces the problem, I will consider merging...
For QSPI added to Teensy 4.1, both reads and writes use IPCMD.
For use of leftover program memory, indeed it is done as you said with memory mapped reads.
Correct. Nothing your code does to the state on the RT1062 should have any impact. The bootloader uses hardware reset of the RT1062 so even terrible programs can't put the RT1062 into a state where the bootloader is unable wipe away all effects...
I2S protocol is stereo. LRCLK (called FSYNC on this chip) is 50% duty cycle in I2S, where left is transmitted in one phase of LRCLK and right is transmitted in the other phase.
Maybe you could configure that chip for some non-I2S protocol...