tracktion-engine
3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications
« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_engine
playback
graph
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
11
namespace
tracktion
{
inline
namespace
engine
12
{
13
14
//==============================================================================
15
//==============================================================================
20
class
LiveMidiInjectingNode
final :
public
tracktion::graph::Node
,
21
private
AudioTrack::Listener
22
{
23
public
:
24
LiveMidiInjectingNode
(
AudioTrack
&,
std::unique_ptr<tracktion::graph::Node>
);
25
~LiveMidiInjectingNode
()
override
;
26
27
//==============================================================================
28
tracktion::graph::NodeProperties
getNodeProperties
()
override
;
29
std::vector<Node*>
getDirectInputNodes
()
override
;
30
void
prepareToPlay
(
const
tracktion::graph::PlaybackInitialisationInfo
&)
override
;
31
bool
isReadyToProcess
()
override
;
32
void
process
(
ProcessContext
&)
override
;
33
34
private
:
35
//==============================================================================
36
AudioTrack::Ptr
track;
37
std::unique_ptr<tracktion::graph::Node>
input;
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
juce::CriticalSection
juce::MidiMessage
juce::ReferenceCountedObjectPtr< AudioTrack >
tracktion::engine::AudioTrack
Definition
tracktion_AudioTrack.h:18
tracktion::engine::LiveMidiInjectingNode
A Node that injects MIDI message in to the stream, for keyboard key entry, note previews and MIDI ste...
Definition
tracktion_LiveMidiInjectingNode.h:22
tracktion::engine::LiveMidiInjectingNode::prepareToPlay
void prepareToPlay(const tracktion::graph::PlaybackInitialisationInfo &) override
Called once before playback begins for each node.
Definition
tracktion_LiveMidiInjectingNode.cpp:45
tracktion::engine::LiveMidiInjectingNode::isReadyToProcess
bool isReadyToProcess() override
Should return true when this node is ready to be processed.
Definition
tracktion_LiveMidiInjectingNode.cpp:58
tracktion::engine::LiveMidiInjectingNode::process
void process(ProcessContext &) override
Called when the node is to be processed.
Definition
tracktion_LiveMidiInjectingNode.cpp:63
tracktion::engine::LiveMidiInjectingNode::getDirectInputNodes
std::vector< Node * > getDirectInputNodes() override
Should return all the inputs directly feeding in to this node.
Definition
tracktion_LiveMidiInjectingNode.cpp:40
tracktion::engine::LiveMidiInjectingNode::getNodeProperties
tracktion::graph::NodeProperties getNodeProperties() override
Should return the properties of the node.
Definition
tracktion_LiveMidiInjectingNode.cpp:31
tracktion::graph::Node
Main graph Node processor class.
Definition
tracktion_Node.h:217
tracktion::graph::Node::ProcessContext
Struct to describe a single iteration of a process call.
Definition
tracktion_Node.h:303
tracktion
Definition
tracktion_AudioReader.h:23
tracktion::engine::AudioTrack::Listener
Listener interface to be notified of recorded MIDI being sent to the plugins.
Definition
tracktion_AudioTrack.h:170
tracktion::engine::MidiMessageArray::MidiMessageWithSource
Definition
tracktion_MidiMessageArray.h:29
tracktion::engine::MidiMessageArray
Definition
tracktion_MidiMessageArray.h:17
tracktion::graph::NodeProperties
Holds some really basic properties of a node.
Definition
tracktion_Node.h:152
tracktion::graph::PlaybackInitialisationInfo
Passed into Nodes when they are being initialised, to give them useful contextual information that th...
Definition
tracktion_Node.h:140
std::unique_ptr
std::vector
« « « Anklang Documentation