Nucleo F401REでFM音源を実装するやつ 外部DACとオペアンプを利用 現在はMCP4922とNJM2737

Dependencies:   AOTTrigon I2CEEPROM MCP4922 AQM0802A mbed

Fork of NuMidi401 by Yuu Kobayashi

NuFM401

Nucleo F401用の自作ソフトウェアMIDI音源

概要

だいたいそんなもんです。

特徴

  • ブレッドボードの上で組める程度には簡単な回路構成
  • 外部のDACにMCP4922を採用
  • 念のためのボルテージフォロアとしてNJM2737Dを採用
  • バンク用EEPROMに24FC1025を採用
  • シリアル経由でMIDIデータを受信することで操作

補足

シリアル <=> MIDI のドライバにはHairless-MIDISerialをオススメします。 仮想MIDIケーブルはとりあえずMIDI Yokeで。

Revision:
21:e3014c1bdf9c
Parent:
20:8278e607a687
Child:
22:500b4f2953fa
--- a/FMOscillator/MIDIChannel.h	Thu Jan 29 11:09:56 2015 +0000
+++ b/FMOscillator/MIDIChannel.h	Thu Jan 29 12:27:21 2015 +0000
@@ -1,13 +1,15 @@
 #pragma once
 #include "mbed.h"
+#include "AQM0802A.h"
 #include "FMOperator.h"
-#include "MIDIChannel.h"
+#include "MIDIUtil.h"
 #include "FMAlgorithm.h"
 
 class MIDIChannel
 {
 public:
     MIDIChannel();
+    MIDIChannel(AQM0802A *l);
     ~MIDIChannel();
 
     inline void setModulationMSB(char msb) {
@@ -46,7 +48,8 @@
     void setRPNLSB(char lsb);
     void allSoundOff();
     void allNoteOff();
-
+    void noteOn(char key, char vel, double time);
+    void noteOff(char key, double time);
 
 private:
     enum DataState {
@@ -58,7 +61,7 @@
         NRPNSingleData,
         NRPNNoData,
     };
-
+    char prkey;
     char dataEntryMSB;
     char dataEntryLSB;
     char nrpnMSB;
@@ -74,6 +77,7 @@
     char expression;
     bool hold1;
     FMAlgorithm *algo;
+    AQM0802A *lcd;
     
     void processRPNFunction();
     void processNRPNFunction();