|
TracktionEngine
|
#include <tracktion_MidiInputDevice.h>
Classes | |
| struct | MidiKeyChangeDispatcher |
| Gets notified (lazily, not in real-time) when any MidiInputDevice's key's state changes. More... | |
| struct | NoteFilterRange |
Public Types | |
| enum class | MergeMode { always , never , optional } |
Public Types inherited from tracktion::engine::InputDevice | |
| enum | DeviceType { waveDevice , trackWaveDevice , physicalMidiDevice , virtualMidiDevice , trackMidiDevice } |
| enum to allow quick querying of the device type. More... | |
| enum class | MonitorMode { off , automatic , on } |
| Enum to describe monitor modes. More... | |
Public Types inherited from tracktion::engine::Selectable | |
| using | WeakRef = juce::WeakReference< Selectable > |
Public Member Functions | |
| MidiInputDevice (Engine &, juce::String type, juce::String name, juce::String deviceID) | |
| ~MidiInputDevice () override | |
| virtual juce::String | openDevice ()=0 |
| virtual void | closeDevice ()=0 |
| void | setEnabled (bool) override |
| bool | isMidi () const override |
| MidiChannel | getChannelToUse () const noexcept |
| void | setChannelToUse (int) |
| int | getProgramToUse () const noexcept |
| void | setProgramToUse (int) |
| void | setBankToUse (int) |
| int | getBankToUse () const |
| void | setChannelAllowed (int midiChannel, bool) |
| bool | isChannelAllowed (int midiChannel) const |
| void | setNoteFilterRange (NoteFilterRange) |
| NoteFilterRange | getNoteFilterRange () const |
| void | setOverridingNoteVelocities (bool) |
| bool | isOverridingNoteVelocities () const |
| void | setManualAdjustmentMs (double) |
| double | getManualAdjustmentMs () const |
| void | setMinimumLengthMs (double) |
| double | getMinimumLengthMs () const |
| bool | isMPEDevice () const |
| Returns true if the given device is an MPE device and so should always record incoming MIDI to Note Expression. | |
| void | masterTimeUpdate (double time) override |
| This is a bit of a hack but allows the time for MIDI devices to be set through the base class interface. | |
| void | connectionStateChanged () |
| bool | handleIncomingMessage (juce::MidiMessage &) |
| Updates the timestamp of the message and handles sending it out to listeners. | |
| void | addInstance (MidiInputDeviceInstanceBase *) |
| void | removeInstance (MidiInputDeviceInstanceBase *) |
| virtual void | loadProps ()=0 |
| Clip * | addMidiAsTransaction (Edit &, EditItemID targetID, Clip *takeClip, juce::MidiMessageSequence, TimeRange markedRange, MergeMode, MidiChannel) |
| void | handleIncomingMidiMessage (juce::MidiInput *, const juce::MidiMessage &) override |
| virtual void | handleIncomingMidiMessage (const juce::MidiMessage &, MPESourceID)=0 |
| RetrospectiveMidiBuffer * | getRetrospectiveMidiBuffer () const |
| void | updateRetrospectiveBufferLength (double length) override |
| double | getAdjustSecs () const |
| juce::Array< AudioTrack * > | getDestinationTracks () |
| MidiChannel | getMidiChannelFor (int rawChannelNumber) const |
| MPESourceID | getMPESourceID () const |
Public Member Functions inherited from tracktion::engine::InputDevice | |
| InputDevice (Engine &, juce::String type, juce::String name, juce::String deviceID) | |
| ~InputDevice () override | |
| const juce::String & | getName () const |
| const juce::String & | getType () const |
| juce::String | getDeviceID () const |
| virtual DeviceType | getDeviceType () const =0 |
| bool | isTrackDevice () const |
| juce::String | getAlias () const |
| the alias is the name shown in the draggable input device components | |
| void | setAlias (const juce::String &newAlias) |
| virtual bool | isAvailableToEdit () const |
| bool | isEnabled () const |
| MonitorMode | getMonitorMode () const |
| void | setMonitorMode (MonitorMode) |
| virtual InputDeviceInstance * | createInstance (EditPlaybackContext &)=0 |
| Creates an instance to use for a given playback context. | |
| juce::String | getSelectableDescription () override |
| Subclasses must return a description of what they are. | |
| virtual void | saveProps ()=0 |
Public Member Functions inherited from tracktion::engine::Selectable | |
| Selectable () | |
| virtual | ~Selectable () |
| virtual void | selectionStatusChanged (bool isNowSelected) |
| Can be overridden to tell this object that it has just been selected or deselected. | |
| virtual void | changed () |
| This should be called to send a change notification to any SelectableListeners that are registered with this object. | |
| virtual void | selectableAboutToBeDeleted () |
| Called just before the selectable is about to be deleted so any subclasses should still be valid at this point. | |
| void | addListener (SelectableListener *) |
| void | removeListener (SelectableListener *) |
| void | addSelectableListener (SelectableListener *) |
| void | removeSelectableListener (SelectableListener *) |
| void | cancelAnyPendingUpdates () |
| If changed() has been called, this will cancel any pending async change notificaions. | |
| void | deselect () |
| void | propertiesChanged () |
| void | notifyListenersOfDeletion () |
| WeakRef | getWeakRef () |
Public Attributes | |
| bool | mergeRecordings = true |
| bool | recordingEnabled = true |
| bool | replaceExistingClips = false |
| bool | recordToNoteAutomation = false |
| QuantisationType | quantisation |
| juce::MidiKeyboardState | keyboardState |
Public Attributes inherited from tracktion::engine::InputDevice | |
| Engine & | engine |
| LevelMeasurer | levelMeasurer |
Public Attributes inherited from tracktion::engine::Selectable | |
| WeakRef::Master | masterReference |
Protected Member Functions | |
| void | handleNoteOn (juce::MidiKeyboardState *, int midiChannel, int midiNoteNumber, float velocity) override |
| void | handleNoteOff (juce::MidiKeyboardState *, int midiChannel, int midiNoteNumber, float velocity) override |
| void | timerCallback () override |
| void | sendNoteOnToMidiKeyListeners (juce::MidiMessage &) |
| void | loadMidiProps (const juce::XmlElement *) |
| void | saveMidiProps (juce::XmlElement &) |
| void | sendMessageToInstances (const juce::MidiMessage &, MPESourceID) |
Protected Attributes | |
| std::atomic< double > | adjustSecs { 0 } |
| double | manualAdjustMs = 0 |
| double | minimumLengthMs = 0 |
| bool | overrideNoteVels = false |
| bool | eventReceivedFromDevice = false |
| juce::BigInteger | disallowedChannels |
| MidiChannel | channelToUse |
| int | programToUse = 0 |
| int | bankToUse = 0 |
| NoteFilterRange | noteFilterRange |
| MPESourceID | midiSourceID = createUniqueMPESourceID() |
| std::unique_ptr< NoteDispatcher > | noteDispatcher |
| std::vector< double > | lastNoteOns |
| juce::CriticalSection | noteLock |
| bool | keysDown [128] |
| bool | keysUp [128] |
| uint8_t | keyDownVelocities [128] |
| juce::SharedResourcePointer< MidiKeyChangeDispatcher > | midiKeyChangeDispatcher |
| juce::CriticalSection | instanceLock |
| juce::Array< MidiInputDeviceInstanceBase * > | instances |
| std::unique_ptr< RetrospectiveMidiBuffer > | retrospectiveBuffer |
Protected Attributes inherited from tracktion::engine::InputDevice | |
| std::atomic< bool > | enabled { false } |
| MonitorMode | monitorMode = MonitorMode::automatic |
| MonitorMode | defaultMonitorMode = MonitorMode::automatic |
| bool | retrospectiveRecordLock = false |
Additional Inherited Members | |
Static Public Member Functions inherited from tracktion::engine::InputDevice | |
| static void | setRetrospectiveLock (Engine &, const juce::Array< InputDeviceInstance * > &, bool lock) |
Static Public Member Functions inherited from tracktion::engine::Selectable | |
| static void | initialise () |
| static bool | isSelectableValid (const Selectable *) noexcept |
| checks whether this object has been deleted. | |
|
strong |
| tracktion::engine::MidiInputDevice::MidiInputDevice | ( | Engine & | , |
| juce::String | type, | ||
| juce::String | name, | ||
| juce::String | deviceID | ||
| ) |
|
override |
|
pure virtual |
Implemented in tracktion::engine::PhysicalMidiInputDevice.
|
pure virtual |
Implemented in tracktion::engine::PhysicalMidiInputDevice.
|
overridevirtual |
Implements tracktion::engine::InputDevice.
Reimplemented in tracktion::engine::VirtualMidiInputDevice.
|
overridevirtual |
Reimplemented from tracktion::engine::InputDevice.
|
noexcept |
References channelToUse.
| void tracktion::engine::MidiInputDevice::setChannelToUse | ( | int | ) |
|
noexcept |
References programToUse.
| void tracktion::engine::MidiInputDevice::setProgramToUse | ( | int | ) |
| void tracktion::engine::MidiInputDevice::setBankToUse | ( | int | ) |
| int tracktion::engine::MidiInputDevice::getBankToUse | ( | ) | const |
References bankToUse.
| void tracktion::engine::MidiInputDevice::setChannelAllowed | ( | int | midiChannel, |
| bool | |||
| ) |
| bool tracktion::engine::MidiInputDevice::isChannelAllowed | ( | int | midiChannel | ) | const |
References disallowedChannels.
| void tracktion::engine::MidiInputDevice::setNoteFilterRange | ( | NoteFilterRange | ) |
| NoteFilterRange tracktion::engine::MidiInputDevice::getNoteFilterRange | ( | ) | const |
References noteFilterRange.
| void tracktion::engine::MidiInputDevice::setOverridingNoteVelocities | ( | bool | ) |
| bool tracktion::engine::MidiInputDevice::isOverridingNoteVelocities | ( | ) | const |
References overrideNoteVels.
| void tracktion::engine::MidiInputDevice::setManualAdjustmentMs | ( | double | ) |
| double tracktion::engine::MidiInputDevice::getManualAdjustmentMs | ( | ) | const |
References manualAdjustMs.
| void tracktion::engine::MidiInputDevice::setMinimumLengthMs | ( | double | ) |
| double tracktion::engine::MidiInputDevice::getMinimumLengthMs | ( | ) | const |
References minimumLengthMs.
| bool tracktion::engine::MidiInputDevice::isMPEDevice | ( | ) | const |
Returns true if the given device is an MPE device and so should always record incoming MIDI to Note Expression.
|
overridevirtual |
This is a bit of a hack but allows the time for MIDI devices to be set through the base class interface.
Implements tracktion::engine::InputDevice.
| void tracktion::engine::MidiInputDevice::connectionStateChanged | ( | ) |
| bool tracktion::engine::MidiInputDevice::handleIncomingMessage | ( | juce::MidiMessage & | ) |
Updates the timestamp of the message and handles sending it out to listeners.
false if the given message has been filtered out by channel or number.
| void tracktion::engine::MidiInputDevice::addInstance | ( | MidiInputDeviceInstanceBase * | ) |
| void tracktion::engine::MidiInputDevice::removeInstance | ( | MidiInputDeviceInstanceBase * | ) |
|
pure virtual |
Implemented in tracktion::engine::PhysicalMidiInputDevice, and tracktion::engine::VirtualMidiInputDevice.
| Clip * tracktion::engine::MidiInputDevice::addMidiAsTransaction | ( | Edit & | , |
| EditItemID | targetID, | ||
| Clip * | takeClip, | ||
| juce::MidiMessageSequence | , | ||
| TimeRange | markedRange, | ||
| MergeMode | , | ||
| MidiChannel | |||
| ) |
|
override |
|
pure virtual |
| RetrospectiveMidiBuffer * tracktion::engine::MidiInputDevice::getRetrospectiveMidiBuffer | ( | ) | const |
References retrospectiveBuffer.
|
overridevirtual |
Implements tracktion::engine::InputDevice.
| double tracktion::engine::MidiInputDevice::getAdjustSecs | ( | ) | const |
References adjustSecs.
| juce::Array< AudioTrack * > tracktion::engine::MidiInputDevice::getDestinationTracks | ( | ) |
| MidiChannel tracktion::engine::MidiInputDevice::getMidiChannelFor | ( | int | rawChannelNumber | ) | const |
| MPESourceID tracktion::engine::MidiInputDevice::getMPESourceID | ( | ) | const |
References midiSourceID.
|
overrideprotected |
|
overrideprotected |
|
overrideprotected |
|
protected |
|
protected |
|
protected |
|
protected |
| bool tracktion::engine::MidiInputDevice::mergeRecordings = true |
| bool tracktion::engine::MidiInputDevice::recordingEnabled = true |
| bool tracktion::engine::MidiInputDevice::replaceExistingClips = false |
| bool tracktion::engine::MidiInputDevice::recordToNoteAutomation = false |
| QuantisationType tracktion::engine::MidiInputDevice::quantisation |
| juce::MidiKeyboardState tracktion::engine::MidiInputDevice::keyboardState |
|
protected |
Referenced by getAdjustSecs().
|
protected |
Referenced by getManualAdjustmentMs().
|
protected |
Referenced by getMinimumLengthMs().
|
protected |
Referenced by isOverridingNoteVelocities().
|
protected |
|
protected |
Referenced by isChannelAllowed().
|
protected |
Referenced by getChannelToUse().
|
protected |
Referenced by getProgramToUse().
|
protected |
Referenced by getBankToUse().
|
protected |
Referenced by getNoteFilterRange().
|
protected |
Referenced by getMPESourceID().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by getRetrospectiveMidiBuffer().