【Arduino UNO R4】エフェクター的なものを作る試み(スルー)

Arduino UNO R4はCPUも変わったしDACも搭載されてるってことで、エフェクター的なものにトライ。とりあえずADしてDAするだけのスルー状態で盛大にノイズ出てますけど、明日の自分のためにメモ。物忘れがひどい…

逆相とMIXすることで、ヒュイィーンという刺激的なノイズは減少してホワイトノイズっぽくなったけど、まだまだノイズ多し

バラック

回路図(バラックと大分違う)

フィルタと電源あたりは後でキチンと考える

ソースコード

#include "AGTimerR4.h"

#define FREQ_SAMPLING 22050.0f
#define ADC_RESOLUTION 14
#define DAC_RESOLUTION 12
#define DAC_OFFSET 2048

volatile bool samplingStat = false;

void timerCallback() {
  samplingStat = true;
}

void setup() {
  analogReadResolution(ADC_RESOLUTION);
  analogWriteResolution(DAC_RESOLUTION);

  AGTimer.init(FREQ_SAMPLING, timerCallback);
  AGTimer.start();
}

void loop() {
  while(!samplingStat);

  int rd = analogRead(A1) - analogRead(A2);
  int wd = signalProcessing(rd);
  analogWrite(DAC, (wd >> (ADC_RESOLUTION - DAC_RESOLUTION + 1)) + DAC_OFFSET);

  samplingStat = false;
}

int signalProcessing(int rd) {
  return rd;
}

バッファリングしてDMAでドカドカと転送できるように後で検討(後でが多い)