173 #ifdef TX_PERIODIC_FFT
175 if(
sci==NULL)
return;
179 sci->printf(F(
"S 512"));
180 for(
int i = 0; i < 512; i+=1){
193 sci->println(F(
"S FIN"));
202 if (
oscBank[i].
cqtBin <
high_range)
sci->printf(F(
"CQT_L %d,%s,%.0f,%.0f,%.2f,%.3f,%.3f\n"),
oscBank[i].
cqtBin,
note_name[
oscBank[i].
cqtBin],
oscBank[i].
peakFrequency,
note_freq[
oscBank[i].
cqtBin],
oscBank[i].
phase,
oscBank[i].
avgValueFast,
oscBank[i].
avgValueSlow*1000.0,
oscBank[i].
transientValue*100.0);
203 if (
oscBank[i].
cqtBin >=
high_range)
sci->printf(F(
"CQT_H %d,%s,%.0f,%.0f,%.2f,%.3f,%.3f\n"),
oscBank[i].
cqtBin,
note_name[
oscBank[i].
cqtBin],
oscBank[i].
peakFrequency,
note_freq[
oscBank[i].
cqtBin],
oscBank[i].
phase,
oscBank[i].
avgValueFast,
oscBank[i].
avgValueSlow*1000.0,
oscBank[i].
transientValue*100.0);
205 sci->printf(F(
"CQT_EOF\n"));
215 if (
draw == NULL)
return;
218 draw->setFont(Arial_8);
219 draw->setTextColor(ILI9341_DARKGREY);
220 for(uint8_t i=1;i < 18; i++){
221 draw->drawLine(
x,
y + (
h - (log1p((0.1 * i))) *
h),
x+
w,
y + (
h - (log1p((0.1 * i))) *
h),ILI9341_DARKCYAN);
223 draw->setCursor(
x + i * 17,
y+ (
h - (log1p((0.1 * i))) *
h) - 9);
224 if (i < 17)
draw->print((log1p((0.1 * i))));
236 signal = (log1p(amp)) *
h;
237 if (signal>(
h-1)) signal =
h-1;
238 if (signal<0) signal = 0;
241 draw->fillRoundRect(
x+nx,
y+
h - (uint16_t)signal,2,(uint16_t)signal,1,ILI9341_CYAN);
243 signal = (log1p(amp)) *
h;
244 if (signal>(
h-1)) signal =
h-1;
245 if (signal<0) signal = 0;
247 draw->fillRoundRect(
x+nx,
y+
h - (uint16_t)signal,2,(uint16_t)signal,1,ILI9341_MAGENTA);
251 draw->setTextColor(ILI9341_GREENYELLOW);
254 signal = (log1p(amp)) *
h;
255 if (signal<0) signal = 0;
256 if (signal>(
h-1)) signal =
h-1;
258 if ((
y+
h - (uint16_t)signal) <
h && signal > 1)
draw->fillRoundRect(
x+nx,
y+
h - (uint16_t)signal,2,4,1,CL(0xFF,0xA0,(uint8_t)(300*
oscBank[i].
transientValue)));
260 draw->setCursor(
x+nx - 5,
y+
h - (uint16_t)signal - 35);
262 draw->setCursor(
x+nx - 5,
y+
h - (uint16_t)signal - 50);
268 draw->drawRoundRect(
x,
y,
w,
h,4,ILI9341_MAGENTA);
272 draw->setTextColor(ILI9341_DARKCYAN);
275 draw->setTextColor(ILI9341_MAGENTA);
static const char * note_name[]
static const float note_freq[]
SvcSerialCommandInterface * sci
uint8_t fft_buffer_select_for_serial_transmit
FFTReadRange fftLowRR[NOTE_ARRAY_LENGTH]
erisAudioAnalyzeFFT1024 * fft
FFTReadRange fftHighRR[NOTE_ARRAY_LENGTH]
elapsedMillis fft_buffer_serial_transmit_elapsed
FFTReadRange oscBank[OSC_BANK_SIZE]
elapsedMillis cqt_serial_transmit_elapsed
erisAudioAnalyzeFFT1024 * fft2
bool requestStartLZ4Message()
request to start a lz4 compressed message starts the message and returns true if available returns f...
void sendLZ4Message()
Calling this function signals the end of a compressed message. The txBuffer contents are lz4 compres...
static void sort_fftrr_by_cqt_bin(FFTReadRange *a, size_t n)