@h4yn0nnym0u5e: OK, I've spent some time hacking up the audio portion of my TeensyMIDIPolySynth (TMPS) source files (which normally would require a cooperative touchpanel display managed by a T4.1 to setup & activate all of the controls & configuration) & have come up with a way to (hopefully) allow you both to observe & (if/when you have time) to troubleshoot the errant behavior that I'm experiencing.
TEST HARDWARE:
T4.0 w/ Audio Adapter connected. Unlike the fully functional setup, this hackup/setup can run at the default 600MHz speed (&, by default, can be built using the "Faster" optimization level as well), thus avoiding the need for any external cooling of the T4.0.
TEST SOFTWARE:
The self-contained contents of the attached ZIP file includes all source files needed to create a standalone configuration of the audio portion of my TMPS which calls the updated strings audio object's
noteOn()
function every 200ms (& blinks the onboard LED to show when the call is being made).
TEST CONDITIONS:
The build includes an updated
synth_karplusstrong_mod.h
source file, which, for comparison, can be selectively modified to include either the original version of the
limitToBuffer()
function (using the MOD operator), or to include the newer version (using
while()
loops to effect division using multiple addition / subtractions).
OBSERVED/ANTICIPATED RESULTS:
- when the
synth_karplusstrong_mod.h
source file is built using the original version of the
limitToBuffer()
function (using the MOD operator), the onboard LED blinks ON/OFF as expected & the repeating periodic strings sound are heard
- when the
synth_karplusstrong_mod.h
source file is built using the newer version (using
while()
loops to effect division using multiple addition / subtractions), the onboard LED turns on, but never turns off & no repeating periodic string sounds are heard
Hopefully, you'll find this beneficial, & it will allow you to readily observe the apparent hang that I'm experiencing.
Thanks again in advance,
Mark J Culross
KD5RXT
[EDIT] P.S. If you open a Serial Monitor while this test capability is executing, you will observe repeating reports every 200ms. The EAd:Txxx.xx; report indicates the current temperature of the audio processor (in degrees C). The EAd:Lxxx.xx/yyy.yy; report indicates the current audio processor load (in percentage), followed by the maximum audio processor load (in percentage), each separated by a slash (/). As some background info, the "EAd" in these reports stands for "external audio debug", referring to the fact that the audio capability and the display capability each run on separate T4.x processors, intercommunicating over a shared serial port running at 500kbps. MJC