djazz
LOW-DETAIL DATA FLOW DIAGRAM
flowchart TB; TapIn((Tap\nIn)) PattrIn((Pattr\nIn)) AudioIn((Audio\nIn)) MidiIn((MIDI In)) DataIn((File\nData\nIn)) PresetIn((Presets In)) PattrBroadcast[Asynchronous\nInput\nBroadcaster] Master[Master Control] Audio[Djazz Audio] Midi[Djazz MIDI] PattrStorage[PattrStorage] click Master "./../components/master_control.html" "Master Control" click Audio "audio.html" "Master Control" click Midi "midi.html" "Master Control" AudioOut(((Audio\nOut))) MidiOut(((MIDI\nOut))) PattrOut(((Pattr\nOut))) TapIn-->Master PattrIn-->PattrBroadcast AudioIn--->Audio MidiIn--->Midi DataIn-->Master DataIn-->Audio DataIn-->Midi Master-->Audio Master-->Midi Audio-->AudioOut Midi-->MidiOut PresetIn-->PattrStorage PattrStorage-->PattrOut
MEDIUM-DETAIL DATA FLOW DIAGRAM
flowchart TB; %% FLOW ----------------------------------------------- TapInput---->|bang| MasterControl DataInput--->MasterControl MasterControl--->|beat number, beat label, tempo| MidiGenerators MidiInput---->MidiIn DataInput----->MidiData MidiOuts-->MidiOutput MasterControl--->|beat number, beat label, tempo| AudioGenerators AudioInput---->AudioIn DataInput----->AudioData AudioOuts-->AudioOutput PresetInput---->PattrStorage PattrStorage------>PattrOutput PattrInput--->PattrBroadcaster %% INPUTS ------------------------------------------------ AudioInput((Audio\nIn L/R)) DataInput((File\nData\nIn)) MidiInput((MIDI In)) TapInput((Tap\nIn)) PresetInput((Presets In)) PattrInput((Pattr\nIn)) %% OUTPUTS ----------------------------------------------- AudioOutput(((Audio\nOut\n1-3 L/R))) MidiOutput(((MIDI Out))) PattrOutput(((Pattr Out))) %% COMPONENTS ------------------------------------------------ PattrStorage[PattrStorage] PattrBroadcaster[Asynchronous\nInput\nBroadcaster] MasterControl[Master Control] subgraph Midi[Djazz MIDI]; direction TB MidiIn-->MidiData MidiIn[MIDI\nIn] subgraph MidiOut[MIDI\nOut] direction TB MidiData-->MidiGenerators MidiGenerators-->MidiPlayer-->MidiOuts MidiData[Data\nLoader] MidiGenerators[Generators] MidiPlayer["Midi\nPlayer"] MidiOuts[MIDI\nOuts] end end subgraph Audio[Djazz Audio]; direction TB AudioIn-->AudioData AudioIn[Audio\nIn] subgraph AudioOut[Audio Out] direction TB AudioData-->AudioGenerators AudioGenerators-->AudioPlayers-->AudioOuts AudioData[Data\nLoader] AudioGenerators[Generator 1] AudioPlayers[Audio Beat Player 1]; AudioOuts[Audio\nTrack 1] end end
HIGH-DETAIL DATA FLOW DIAGRAM
flowchart TB; %% FLOW ----------------------------------------------- TapInput---->|bang| MasterIn DataInput---->MasterData DataInput--->aData DataInput--->mData MidiInput---->mInIn AudioInput--->aInIn PattrInput-->PattrBroadcaster PresetInput---->PattrStorage PattrStorage---------->PattrOutput MasterOut--->|beat number, beat label, tempo| mOutIn MasterOut-->|beat number, beat label, tempo| aOutIn mOutOut-->MidiOutput aOutOut--->AudioOutput %% INPUTS ------------------------------------------------ AudioInput((Audio\nIn L/R)) DataInput((File\nData\nIn)) MidiInput((MIDI In)) TapInput((Tap\nIn)) PresetInput((Presets In)) PattrInput((Pattr\nIn)) %% OUTPUTS ----------------------------------------------- AudioOutput(((Audio\nOut\n1-3 L/R))) MidiOutput(((MIDI Out))) PattrOutput(((Pattr Out))) %% COMPONENTS ------------------------------------------------ PattrStorage[PattrStorage] PattrBroadcaster[Asynchronous\nInput\nBroadcaster] %% MASTER CONTROL ----------------------------------------- subgraph MasterControl[Master Control]; direction TB MasterIn(( )) MasterOut(( )) MasterData[Song Data Loader] MasterAntescofo["Antescofo\n(to infer tempo)"] BeatClock[Beat Clock] GetBeatLabel["get beat label"] MasterData --> MasterAntescofo MasterData --> BeatClock MasterData --> GetBeatLabel MasterIn-->MasterAntescofo-->|tempo| MasterOut MasterIn-->BeatClock-->|beat number| MasterOut MasterIn-->GetBeatLabel-->|beat label| MasterOut end %% MIDI ----------------------------------------------- subgraph Midi[Djazz MIDI]; direction TB %% MIDI IN ----------------------------------- subgraph MidiIn[MIDI\nIn] direction TB mInIn(( )) mRecordBeatList[record beat data] mBuildFactorOracle[build factor oracle] mInIn --> mRecordBeatList mRecordBeatList --> mBuildFactorOracle mRecordBeatList --> mInOut mBuildFactorOracle -->mInOut mInOut(( )) end %% MIDI OUT ----------------------------------- subgraph MidiOut[MIDI\nOut] direction TB mOutIn(( )) mData[Data\nLoader] mg1[Generator 1] mg2[Generator 2] mg3[Generators 3-15] subgraph mbPlayer[MIDI Beat Player]; mbPlayerAntescofo[Antescofo] end mt1[MIDI\nTrack 1] mt2[MIDI\nTrack 2] mt3[MIDI\nTracks 3-15] mOutOut(( )) mOutIn --> mg1 mOutIn --> mg2 mOutIn --> mg3 mData --> mg1 mData --> mg2 mData --> mg3 mg1 --> mbPlayer --> mt1 --> mOutOut mg2 --> mbPlayer --> mt2 --> mOutOut mg3 --> mbPlayer --> mt3 --> mOutOut end mInOut --> mData end %% end MIDI --------------------------------------------- %% AUDIO ------------------------------------------------ subgraph Audio[Djazz Audio]; direction TB %% AUDIO IN ----------------------------------- subgraph AudioIn[Audio\nIn] direction TB aInIn(( )) aRecordBuffer[record audio buffer] aRecordBeatList[record beat data] aBuildFactorOracle[build factor oracle] aInIn --> aRecordBuffer aInIn --> aRecordBeatList aRecordBeatList --> aBuildFactorOracle aRecordBuffer --> aInOut aRecordBeatList --> aInOut aBuildFactorOracle -->aInOut aInOut(( )) end subgraph AudioOut[Audio Out] direction TB aOutIn(( )) aData[Data\nLoader] ag1[Generator 1] ag2[Generator 2] ag3[Generator 3] subgraph abPlayer1[Audio Beat Player 1]; direction TB svp1[supersvp] end subgraph abPlayer2[Audio Beat Player 2]; direction TB svp2[supersvp] end subgraph abPlayer3[Audio Beat Player 3]; direction TB svp3[supersvp] end at1[Audio\nTrack 1] at2[Audio\nTrack 2] at3[Audio\nTrack 3] aOutOut(( )) aOutIn --> ag1 --> abPlayer1 abPlayer1 --> at1 --> aOutOut aOutIn --> ag2 --> abPlayer2 abPlayer2 --> at2 --> aOutOut aOutIn --> ag3 --> abPlayer3 abPlayer3 --> at3 --> aOutOut aData --> ag1 aData --> ag2 aData --> ag3 end aInOut --> aData end %% end AUDIO ------------------------------------------- click Master "./../components/master_control.html" "Master Control" click Audio "audio.html" "Master Control" click Midi "midi.html" "Master Control"
INLETS
1 signal
Audio In 1
signal Audio signal is sent to djazz_audio_in
2 signal
Audio In 2
signal Audio signal is sent to djazz_audio_in
3 list
Midi In
list (int pitch, int velocity, int channel) sent to djazz_midi_in
4 bang
Triggers next beat
bang All active tracks MIDI and audio tracks will play their data located at the current beat in tempo when a bang is received. Any armed recording tracks will record any input during this beat in tempo.
5 list
Asynchronous input (such as that sent from pattr objects)
list (symbol argument-name anything argument-value) See the section on pattrs
6 symbol
Loads records needed for playback
symbol The name of a Max dict that has been loaded with a JSON file. These are either song files or score files.
7 anything
Messages to the pattrstorage objects
anything This is only used to send the “clientwindow” message to the pattrstorage object, which is useful for debugging. Any preset-related messages could be sent, but they should actually be sent to djazz_control.
OUTLETS
0 signal
Audio Track 1 Out 1
Audio signal
1 signal
Audio Track 1 Out 2
Audio signal
2 signal
Audio Track 2 Out 1
Audio signal
3 signal
Audio Track 2 Out 2
Audio signal
4 signal
Audio Track 3 Out 1
Audio signal
5 signal
Audio Track 3 Out 2
Audio signal
6 list
MIDI output
A MIDI note is sent out as a list (int pitch, int velocity, int channel)
7 list
View control data
ATTRIBUTES
None
MESSAGES
### MESSAGES
-See asynchronous messages.
-See
Page not found: /3_api/1_abstraction_references/components/master_control
for details about the following:/master_control
Page not found: /3_api/1_abstraction_references/components/master_control#loop-section-active
0/1Page not found: /3_api/1_abstraction_references/components/master_control
list (int int) start-beat end-beat master::start_beat intmaster::end_beat int
master::initial_tempo float
-See Audio In for details about the following:
/audio_in
audio::audio_in::record_active 0/1
audio::audio_in::max_repetitions int
audio::audio_in::save::folder_path symbol
-See Audio Out for details about the following:
/audio_out
(for n from 1-3):
audio::audio_out::beat_players::beat_player_n::crossfade_time_in_ms int
audio::audio_out::beat_players::beat_player_n::audio_buffer_offset_in_ms int
(for n from 1-3):
audio::audio_out::listeners::listener_n 0/1
audio::audio_out::listeners::include_master 0/1
(for n from 1-3):
audio::audio_out::audio_out_bank::track_n::volume int 0-127
audio::audio_out::audio_out_bank::track_n::mute 0/1
audio::audio_out::audio_out_bank::track_n::solo 0/1
audio::audio_out::audio_out_bank::track_n::active 0/1
(for n from 1-3):
audio::audio_out::generators::audio_beat_generator_n::loop_length int
audio::audio_out::generators::audio_beat_generator_n::speed_numerator int
audio::audio_out::generators::audio_beat_generator_n::end_beat int
audio::audio_out::generators::audio_beat_generator_n::next_beat int
audio::audio_out::generators::audio_beat_generator_n::loop_section_active 0/1
audio::audio_out::generators::audio_beat_generator_n::speed_denominator int
audio::audio_out::generators::audio_beat_generator_n::speed_active 0/1
audio::audio_out::generators::audio_beat_generator_n::loop_section_beats int
audio::audio_out::generators::audio_beat_generator_n::pitch_range int
audio::audio_out::generators::audio_beat_generator_n::max_continuity int
audio::audio_out::generators::audio_beat_generator_n::improvise 0/1
audio::audio_out::generators::audio_beat_generator_n::transpose_octave int
audio::audio_out::generators::audio_beat_generator_n::transpose_pitch int
(for n from 1-3):
audio::audio_out::data_loaders::track_loader_n::repetition int
(for n from 1-15):
midi::midi_out::midi_out_bank::track_n::mute 0/1
midi::midi_out::midi_out_bank::track_n::active 0/1
midi::midi_out::midi_out_bank::track_n::solo 0/1
midi::midi_out::midi_out_bank::track_n::volume int 0-127
midi::midi_out::midi_out_bank::track_n::port symbol
midi::midi_out::midi_out_bank::track_n::channel_out int 1-16
midi::midi_out::midi_out_bank::track_n::ctrl_msg int
midi::midi_out::midi_out_bank::track_n::effect_list::transpose_octave::octaves int -255-+255
midi::midi_out::midi_out_bank::track_n::effect_list::transpose_pitch::semitones int -255-+255
midi::midi_out::data_loaders::scores::score_file_1::file_path symbol
midi::midi_out::data_loaders::scores::score_file_2::file_path symbol
midi::midi_out::data_loaders::track_loader_1::repetition int 0-255
midi::midi_out::data_loaders::track_loader_2::repetition int 0-255
(for n from 1-15):
midi::midi_out::listeners::listener_n
midi::midi_out::listeners::include_master
(for n from 1-15):
midi::midi_out::generators::midi_beat_generator_n::loop_length int
midi::midi_out::generators::midi_beat_generator_n::speed_numerator int
midi::midi_out::generators::midi_beat_generator_n::end_beat int
midi::midi_out::generators::midi_beat_generator_n::start_beat int
midi::midi_out::generators::midi_beat_generator_n::loop_section_active 0/1
midi::midi_out::generators::midi_beat_generator_n::speed_denominator int
midi::midi_out::generators::midi_beat_generator_n::speed_active 0/1
midi::midi_out::generators::midi_beat_generator_n::loop_section_beats list (int int)
midi::midi_out::generators::midi_beat_generator_n::pitch_range 0-255
midi::midi_out::generators::midi_beat_generator_n::max_continuity 0-255
midi::midi_out::generators::midi_beat_generator_n::improvise 0/1
midi::midi_in::folder_path symbol
midi::midi_in::record_active 0/1
midi::midi_in::save::folder_path symbol
SEE ALSO