![](/media/cache/profiles/4cd5792cc3ccd04bcd11a0ed7b114410.jpg.50x50_q85.png)
Nucleo F401REでFM音源を実装するやつ 外部DACとオペアンプを利用 現在はMCP4922とNJM2737
Dependencies: AOTTrigon I2CEEPROM MCP4922 AQM0802A mbed
Fork of NuMidi401 by
NuFM401
Nucleo F401用の自作ソフトウェアMIDI音源
概要
だいたいそんなもんです。
特徴
- ブレッドボードの上で組める程度には簡単な回路構成
- 外部のDACにMCP4922を採用
- 念のためのボルテージフォロアとしてNJM2737Dを採用
- バンク用EEPROMに24FC1025を採用
- シリアル経由でMIDIデータを受信することで操作
補足
シリアル <=> MIDI のドライバにはHairless-MIDISerialをオススメします。 仮想MIDIケーブルはとりあえずMIDI Yokeで。
Diff: FMOscillator/MIDIChannel.h
- 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();