tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_LiveMidiInjectingNode.h
Go to the documentation of this file.
1 /*
2 ,--. ,--. ,--. ,--.
3 ,-' '-.,--.--.,--,--.,---.| |,-.,-' '-.`--' ,---. ,--,--, Copyright 2024
4 '-. .-'| .--' ,-. | .--'| /'-. .-',--.| .-. || \ Tracktion Software
5 | | | | \ '-' \ `--.| \ \ | | | |' '-' '| || | Corporation
6 `---' `--' `--`--'`---'`--'`--' `---' `--' `---' `--''--' www.tracktion.com
7
8 Tracktion Engine uses a GPL/commercial licence - see LICENCE.md for details.
9*/
10
11namespace tracktion { inline namespace engine
12{
13
14//==============================================================================
15//==============================================================================
22{
23public:
25 ~LiveMidiInjectingNode() override;
26
27 //==============================================================================
31 bool isReadyToProcess() override;
32 void process (ProcessContext&) override;
33
34private:
35 //==============================================================================
36 AudioTrack::Ptr track;
38
39 juce::CriticalSection liveMidiLock;
40 MidiMessageArray liveMidiMessages;
41 MidiMessageArray::MPESourceID midiSourceID = MidiMessageArray::createUniqueMPESourceID();
42
43 //==============================================================================
44 void injectMessage (MidiMessageArray::MidiMessageWithSource);
45
46 //==============================================================================
47 void injectLiveMidiMessage (AudioTrack&, const MidiMessageArray::MidiMessageWithSource&, bool& wasUsed) override;
48 void recordedMidiMessageSentToPlugins (AudioTrack&, const juce::MidiMessage&) override {}
49};
50
51}} // namespace tracktion { inline namespace engine
A Node that injects MIDI message in to the stream, for keyboard key entry, note previews and MIDI ste...
void prepareToPlay(const tracktion::graph::PlaybackInitialisationInfo &) override
Called once before playback begins for each node.
bool isReadyToProcess() override
Should return true when this node is ready to be processed.
void process(ProcessContext &) override
Called when the node is to be processed.
std::vector< Node * > getDirectInputNodes() override
Should return all the inputs directly feeding in to this node.
tracktion::graph::NodeProperties getNodeProperties() override
Should return the properties of the node.
Main graph Node processor class.
Struct to describe a single iteration of a process call.
Listener interface to be notified of recorded MIDI being sent to the plugins.
Holds some really basic properties of a node.
Passed into Nodes when they are being initialised, to give them useful contextual information that th...