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で。
Main.cpp
- Committer:
- kb10uy
- Date:
- 2014-12-23
- Revision:
- 3:e98f2da2d3c5
- Parent:
- 2:658699249a81
- Child:
- 4:e300f6fd7f96
File content as of revision 3:e98f2da2d3c5:
#include "Main.h" Ticker sampler; MCP4922 output(SPI_MOSI,SPI_SCK,SPI_CS); AOTTrigon t(1024); const double smpps = 40000.0; const double smptime = 1.0 / smpps; const double smpus = 1000000.0 / smpps; double ntime = 0.0; double freq = 1.0; void tick_sampling(); int main(){ output.referenceMode(MCP4922::DAC_A, MCP4922::REF_UNBUFFERED); output.gainMode(MCP4922::DAC_A, MCP4922::GAIN_1X); output.powerMode(MCP4922::DAC_A, MCP4922::POWER_NORMAL); sampler.attach_us(&tick_sampling, smpus); } void tick_sampling() { output.write(MCP4922::DAC_A, 0.5f/*t.sine(M_PI*2.0*freq*ntime)/2.0+0.5*/); ntime+=smptime; }