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で。
FMOscillator/FMOscillator.h
- Committer:
- kb10uy
- Date:
- 2015-01-31
- Revision:
- 24:f93b49b4cd66
- Parent:
- 23:deb76bdf6f03
File content as of revision 24:f93b49b4cd66:
#pragma once #include "mbed.h" #include "AQM0802A.h" #include "AOTTrigon.h" #include "FMOperator.h" #include "MIDIUtil.h" #include "MIDIChannel.h" #include <new> class FMOscillator { public: FMOscillator(); FMOscillator(Timer *tim, Serial *ser, AOTTrigon *tri, I2C *i2clcd); ~FMOscillator(); private: Timer *master; Serial *serial; AOTTrigon *trigon; AQM0802A *lcd; MIDIChannel **channels; int opcount; void getMIDIMessage(); void midiReceived(); void getMIDISystemCommonMessage(char t2); void midiSystemRealtimeMessage(char mes); void midiNoteOn(char ch, char note, char vel); void midiNoteOff(char ch, char note, char vel); void midiPolyphonicKeyPressure(char ch, char note, char vel); void midiControlChange(char ch, char ctrl, char data); void midiChannelMode(char ch, char ctrl, char data); void midiProgramChange(char ch, char prg); void midiChannelPressure(char ch, char pres); void midiPitchBend(char ch, short pb); void midiSystemExclusiveMessage(); };