djazz.midi
flowchart TB; TapInput -------->|"tempo, beat number, beat label"| mGens MidiInput-->mInIn DataInput------->|score dictionaries| mData mInOut --->|dictionaries| mData mOuts-->|MIDI data| Output TapInput(("from Master Control")) MidiInput(("MIDI Input")) DataInput((from data loaders)) Output(((MIDI Output))) %% MIDI IN ----------------------------------- subgraph MidiIn["<div style="width:25em; height:10em; display:flex; justify-content: flex-start; ">MIDI In</div>"] direction TB mInIn -->|MIDI data| mRecordBeatList mRecordBeatList --> |dictionary| mBuildFactorOracle mRecordBeatList --> |dictionary| mInOut mBuildFactorOracle -->|dictionary| mInOut mInIn(( )) mRecordBeatList[record beat data] mBuildFactorOracle[build factor oracle] mInOut(( )) end %% MIDI OUT ----------------------------------- subgraph MidiOut["<div style="width:35em; height:10em; display:flex; justify-content: flex-start; ">MIDI Out</div>"] direction TB mData[Data Loader] mGens[Generators] mPlayer[MIDI Beat Player]; mOuts[MIDI Outs] mData -->|dictionaries| mGens mGens -->|beat data dictionaries| mPlayer -->|MIDI data| mOuts end