|
tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications
« « « Anklang Documentation |
#include <memory>#include <map>#include <set>#include <unordered_set>#include <unordered_map>#include <atomic>#include <random>#include <optional>#include <variant>#include <any>#include <shared_mutex>#include <span>#include <juce_audio_basics/juce_audio_basics.h>#include <juce_audio_utils/juce_audio_utils.h>#include <juce_dsp/juce_dsp.h>#include <juce_osc/juce_osc.h>#include <juce_gui_extra/juce_gui_extra.h>#include "../3rd_party/choc/audio/choc_SampleBuffers.h"#include "../3rd_party/choc/audio/choc_MIDI.h"#include "../3rd_party/choc/containers/choc_SingleReaderSingleWriterFIFO.h"#include "../3rd_party/choc/containers/choc_NonAllocatingStableSort.h"#include "../3rd_party/expected/expected.hpp"#include "../tracktion_core/tracktion_core.h"#include <trkn/tracktion_decls.hh>#include "../tracktion_graph/utilities/tracktion_PerformanceMeasurement.h"#include "utilities/tracktion_AppFunctions.h"#include "utilities/tracktion_AtomicWrapper.h"#include "utilities/tracktion_Identifiers.h"#include "utilities/tracktion_ValueTreeUtilities.h"#include "utilities/tracktion_CrashTracer.h"#include "utilities/tracktion_AsyncFunctionUtils.h"#include "utilities/tracktion_CpuMeasurement.h"#include "utilities/tracktion_ConstrainedCachedValue.h"#include "utilities/tracktion_FileUtilities.h"#include "utilities/tracktion_AudioUtilities.h"#include "utilities/tracktion_AudioScratchBuffer.h"#include "utilities/tracktion_AudioFadeCurve.h"#include "utilities/tracktion_Spline.h"#include "utilities/tracktion_Ditherer.h"#include "utilities/tracktion_ExternalPlayheadSynchroniser.h"#include "selection/tracktion_Selectable.h"#include "selection/tracktion_SelectableClass.h"#include "selection/tracktion_SelectionManager.h"#include "model/tracks/tracktion_EditTime.h"#include "utilities/tracktion_BackgroundJobs.h"#include "utilities/tracktion_MiscUtilities.h"#include "utilities/tracktion_TemporaryFileManager.h"#include "utilities/tracktion_Types.h"#include "utilities/tracktion_PluginComponent.h"#include "utilities/tracktion_BinaryData.h"#include "utilities/tracktion_SettingID.h"#include "utilities/tracktion_SharedTimer.h"#include "utilities/tracktion_SafeScopedListener.h"#include "utilities/tracktion_ScopedListener.h"#include "utilities/tracktion_MouseHoverDetector.h"#include "utilities/tracktion_CurveEditor.h"#include "utilities/tracktion_Envelope.h"#include "utilities/tracktion_Oscillators.h"#include "project/tracktion_ProjectItemID.h"#include "playback/devices/tracktion_WaveDeviceDescription.h"#include "model/automation/tracktion_AutomationCurve.h"#include "model/edit/tracktion_EditItem.h"#include "model/automation/tracktion_AutomatableParameterTree.h"#include "model/automation/tracktion_AutomatableParameter.h"#include "model/automation/tracktion_AutomatableEditItem.h"#include "model/automation/tracktion_MacroParameter.h"#include "model/automation/tracktion_Modifier.h"#include "model/automation/modifiers/tracktion_ModifierCommon.h"#include "model/automation/modifiers/tracktion_BreakpointOscillatorModifier.h"#include "model/automation/modifiers/tracktion_EnvelopeFollowerModifier.h"#include "model/automation/modifiers/tracktion_LFOModifier.h"#include "model/automation/modifiers/tracktion_MIDITrackerModifier.h"#include "model/automation/modifiers/tracktion_RandomModifier.h"#include "model/automation/modifiers/tracktion_StepModifier.h"#include "model/export/tracktion_Exportable.h"#include "control_surfaces/tracktion_ExternalControllerManager.h"#include "midi/tracktion_Musicality.h"#include "midi/tracktion_MidiNote.h"#include "../tracktion_graph/utilities/tracktion_MidiMessageArray.h"#include "midi/tracktion_ActiveNoteList.h"#include "midi/tracktion_MidiProgramManager.h"#include "midi/tracktion_MidiControllerEvent.h"#include "midi/tracktion_MidiSysexEvent.h"#include "midi/tracktion_MidiExpression.h"#include "midi/tracktion_MidiChannel.h"#include "midi/tracktion_MidiList.h"#include "plugins/tracktion_PluginWindowState.h"#include "plugins/tracktion_Plugin.h"#include "plugins/tracktion_PluginList.h"#include "plugins/tracktion_PluginManager.h"#include "project/tracktion_ProjectItem.h"#include "project/tracktion_ProjectSearchIndex.h"#include "project/tracktion_Project.h"#include "project/tracktion_ProjectManager.h"#include "utilities/tracktion_PropertyStorage.h"#include "utilities/tracktion_UIBehaviour.h"#include "utilities/tracktion_Engine.h"#include "playback/tracktion_LevelMeasurer.h"#include "plugins/external/tracktion_VSTXML.h"#include "plugins/external/tracktion_ExternalPlugin.h"#include "plugins/internal/tracktion_VCA.h"#include "plugins/internal/tracktion_VolumeAndPan.h"#include "plugins/internal/tracktion_RackType.h"#include "plugins/internal/tracktion_RackInstance.h"#include "plugins/internal/tracktion_AuxReturn.h"#include "plugins/internal/tracktion_AuxSend.h"#include "plugins/effects/tracktion_Equaliser.h"#include "model/clips/tracktion_LaunchHandle.h"#include "model/edit/tracktion_EditSnapshot.h"#include "model/edit/tracktion_EditInsertPoint.h"#include "model/tracks/tracktion_TrackItem.h"#include "model/tracks/tracktion_Track.h"#include "model/edit/tracktion_Scene.h"#include "model/edit/tracktion_TimeSigSetting.h"#include "model/edit/tracktion_TempoSetting.h"#include "model/edit/tracktion_TempoSequence.h"#include "model/edit/tracktion_TimecodeDisplayFormat.h"#include "model/edit/tracktion_PitchSetting.h"#include "model/edit/tracktion_PitchSequence.h"#include "model/edit/tracktion_Edit.h"#include "model/edit/tracktion_EditFileOperations.h"#include "playback/tracktion_TransportControl.h"#include "playback/tracktion_AbletonLink.h"#include "control_surfaces/tracktion_ControlSurface.h"#include "control_surfaces/tracktion_ExternalController.h"#include "model/clips/tracktion_AudioSegmentList.h"#include "audio_files/tracktion_LoopInfo.h"#include "audio_files/tracktion_AudioFile.h"#include "model/edit/tracktion_SourceFileReference.h"#include "model/clips/tracktion_FollowActions.h"#include "model/clips/tracktion_Clip.h"#include "utilities/tracktion_EngineBehaviour.h"#include "utilities/tracktion_Pitch.h"#include "audio_files/tracktion_AudioFileCache.h"#include "audio_files/tracktion_SmartThumbnail.h"#include "audio_files/tracktion_AudioProxyGenerator.h"#include "audio_files/tracktion_AudioFileManager.h"#include "audio_files/tracktion_AudioFileWriter.h"#include "audio_files/tracktion_BufferedAudioReader.h"#include "model/clips/tracktion_CompManager.h"#include "audio_files/tracktion_AudioFormatManager.h"#include "audio_files/tracktion_AudioFileUtils.h"#include "audio_files/tracktion_AudioFifo.h"#include "audio_files/tracktion_RecordingThumbnailManager.h"#include "audio_files/formats/tracktion_FFmpegEncoderAudioFormat.h"#include "audio_files/formats/tracktion_FloatAudioFileFormat.h"#include "audio_files/formats/tracktion_MemoryMappedFileReader.h"#include "audio_files/formats/tracktion_LAMEManager.h"#include "audio_files/formats/tracktion_RexFileFormat.h"#include "midi/tracktion_SelectedMidiEvents.h"#include "model/automation/tracktion_AutomationRecordManager.h"#include "model/automation/tracktion_ParameterChangeHandler.h"#include "model/automation/tracktion_ParameterControlMappings.h"#include "playback/devices/tracktion_OutputDevice.h"#include "model/tracks/tracktion_TrackOutput.h"#include "model/clips/tracktion_ClipOwner.h"#include "model/tracks/tracktion_ClipTrack.h"#include "model/tracks/tracktion_AudioTrack.h"#include "timestretch/tracktion_BeatDetect.h"#include "timestretch/tracktion_TimeStretch.h"#include "timestretch/tracktion_ReadAheadTimeStretcher.h"#include "model/export/tracktion_ArchiveFile.h"#include "model/export/tracktion_ExportJob.h"#include "model/export/tracktion_ReferencedMaterialList.h"#include "model/export/tracktion_Renderer.h"#include "model/export/tracktion_RenderManager.h"#include "model/edit/tracktion_QuantisationType.h"#include "model/clips/tracktion_WarpTimeManager.h"#include "model/clips/tracktion_ArrangerClip.h"#include "model/clips/tracktion_AudioClipBase.h"#include "model/clips/tracktion_ChordClip.h"#include "model/clips/tracktion_ClipEffects.h"#include "model/clips/tracktion_CollectionClip.h"#include "model/clips/tracktion_ContainerClip.h"#include "model/clips/tracktion_LauncherClipPlaybackHandle.h"#include "model/clips/tracktion_MarkerClip.h"#include "model/clips/tracktion_MidiClip.h"#include "model/clips/tracktion_ReverseRenderJob.h"#include "model/clips/tracktion_StepClip.h"#include "model/clips/tracktion_WarpTimeRenderJob.h"#include "model/clips/tracktion_WaveAudioClip.h"#include "model/edit/tracktion_GrooveTemplate.h"#include "model/edit/tracktion_LaunchQuantisation.h"#include "model/edit/tracktion_MarkerManager.h"#include "model/clips/tracktion_EditClip.h"#include "model/tracks/tracktion_TrackUtils.h"#include "model/tracks/tracktion_ArrangerTrack.h"#include "model/tracks/tracktion_AutomationTrack.h"#include "model/tracks/tracktion_ChordTrack.h"#include "model/tracks/tracktion_FolderTrack.h"#include "model/tracks/tracktion_MarkerTrack.h"#include "model/tracks/tracktion_MasterTrack.h"#include "model/tracks/tracktion_TempoTrack.h"#include "model/tracks/tracktion_TrackCompManager.h"#include "model/export/tracktion_RenderOptions.h"#include "model/clips/tracktion_EditClipRenderJob.h"#include "selection/tracktion_Clipboard.h"#include "playback/devices/tracktion_InputDevice.h"#include "playback/devices/tracktion_MidiInputDevice.h"#include "playback/devices/tracktion_PhysicalMidiInputDevice.h"#include "playback/devices/tracktion_VirtualMidiInputDevice.h"#include "playback/devices/tracktion_MidiOutputDevice.h"#include "playback/devices/tracktion_WaveInputDevice.h"#include "playback/devices/tracktion_WaveOutputDevice.h"#include "model/tracks/tracktion_ClipSlot.h"#include "model/edit/tracktion_EditUtilities.h"#include "playback/tracktion_DeviceManager.h"#include "playback/tracktion_HostedAudioDevice.h"#include "playback/tracktion_MidiNoteDispatcher.h"#include "playback/tracktion_EditPlaybackContext.h"#include "playback/tracktion_EditInputDevices.h"#include "plugins/internal/tracktion_LevelMeter.h"#include "plugins/internal/tracktion_FreezePoint.h"#include "plugins/internal/tracktion_InsertPlugin.h"#include "plugins/internal/tracktion_ReWirePlugin.h"#include "plugins/internal/tracktion_TextPlugin.h"#include "plugins/effects/tracktion_Compressor.h"#include "plugins/effects/tracktion_Delay.h"#include "plugins/effects/tracktion_Chorus.h"#include "plugins/effects/tracktion_FourOscPlugin.h"#include "plugins/effects/tracktion_ImpulseResponsePlugin.h"#include "plugins/effects/tracktion_LatencyPlugin.h"#include "plugins/effects/tracktion_LowPass.h"#include "plugins/effects/tracktion_MidiModifier.h"#include "plugins/effects/tracktion_MidiPatchBay.h"#include "plugins/effects/tracktion_PatchBay.h"#include "plugins/effects/tracktion_Phaser.h"#include "plugins/effects/tracktion_PitchShift.h"#include "plugins/effects/tracktion_Reverb.h"#include "plugins/effects/tracktion_SamplerPlugin.h"#include "plugins/effects/tracktion_ToneGenerator.h"#include "plugins/cmajor/tracktion_CmajorPluginFormat.h"#include "plugins/ARA/tracktion_MelodyneFileReader.h"#include "control_surfaces/tracktion_CustomControlSurface.h"#include "model/automation/tracktion_MidiLearn.h"Go to the source code of this file.
Namespaces | |
| namespace | tracktion |
| namespace | tracktion::engine |
| Declarations from this namespaces are inlined into tracktion. | |
Macros | |
| #define | TRACKTION_ENGINE_H_INCLUDED |
| #define | TRACKTION_ENABLE_SINGLETONS |
| Config: TRACKTION_ENABLE_SINGLETONS Enables singleton access to Engine and ProjectManager. | |
| #define | TRACKTION_ENABLE_ARA |
| Config: TRACKTION_ENABLE_ARA Enables ARA support. | |
| #define | TRACKTION_ENABLE_CMAJOR |
| Config: TRACKTION_ENABLE_CMAJOR Enables Cmajor support. | |
| #define | TRACKTION_ENABLE_REWIRE |
| Config: TRACKTION_ENABLE_REWIRE Enables ReWire support. | |
| #define | TRACKTION_ENABLE_AUTOMAP |
| Config: TRACKTION_ENABLE_AUTOMAP Enables Novation Automap controller support. | |
| #define | TRACKTION_ENABLE_VIDEO |
| Config: TRACKTION_ENABLE_VIDEO Enables video support. | |
| #define | TRACKTION_ENABLE_REX |
| Config: TRACKTION_ENABLE_REX Enables Rex audio file support. | |
| #define | TRACKTION_ENABLE_CONTROL_SURFACES |
| Config: TRACKTION_ENABLE_CONTROL_SURFACES Enables external control surface support. | |
| #define | TRACKTION_ENABLE_CONTROL_SURFACE_MACKIEC4 |
| Config: TRACKTION_ENABLE_CONTROL_SURFACE_MACKIEC4 Enables support for the C4 control surface. | |
| #define | TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE |
| Config: TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE Enables time-stretching with the Elastique library. | |
| #define | TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE_IPP |
| Config: TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE_IPP Elastique can use IPP for increased performance on Windows. | |
| #define | TRACKTION_ENABLE_TIMESTRETCH_RUBBERBAND |
| Config: TRACKTION_ENABLE_TIMESTRETCH_RUBBERBAND Enables time-stretching with the RubberBand library. | |
| #define | TRACKTION_BUILD_RUBBERBAND |
| Config: TRACKTION_BUILD_RUBBERBAND Builds the RubberBand library from source inside your binary. | |
| #define | TRACKTION_ENABLE_TIMESTRETCH_SOUNDTOUCH |
| Config: TRACKTION_ENABLE_TIMESTRETCH_SOUNDTOUCH Enables time-stretching with the SoundTouch library. | |
| #define | TRACKTION_ENABLE_ABLETON_LINK |
| Config: TRACKTION_ENABLE_ABLETON_LINK Enables Ableton Link support. | |
| #define | TRACKTION_ENABLE_FFMPEG |
| Config: TRACKTION_ENABLE_FFMPEG Uses FFmpeg for mp3 encoding rather than Lame. | |
| #define | TRACKTION_UNIT_TESTS |
| Config: TRACKTION_UNIT_TESTS Enables Tracktion unit tests. | |
| #define | TRACKTION_BENCHMARKS |
| Config: TRACKTION_BENCHMARKS Enables Tracktion benchmarks. | |
| #define | TRACKTION_CHECK_FOR_SLOW_RENDERING |
| Config: TRACKTION_CHECK_FOR_SLOW_RENDERING Enabling this adds additional checks to the audio pipeline to help debug performance problems if operations take longer than real time. | |
| #define | TRACKTION_AIR_WINDOWS |
| Config: TRACKTION_AIR_WINDOWS Adds AirWindows effect plugins. | |
| #define | TRACKTION_LOG_DEVICES |
| Config: TRACKTION_LOG_DEVICES If enabled, all found devices will be logged (by default to the console). | |
| #define | TRACKTION_LOG_ENABLED |
| #define | TRACKTION_LOG(a) |
| #define | TRACKTION_LOG_ERROR(a) |
| #define | TRACKTION_ASSERT_MESSAGE_THREAD |
Functions | |
| void | Ase::trkn_tracktion_log_msg (const juce::String &) |
| void | Ase::trkn_tracktion_log_error (const juce::String &) |
| #define TRACKTION_AIR_WINDOWS |
Config: TRACKTION_AIR_WINDOWS Adds AirWindows effect plugins.
Requires compliance with AirWindows MIT license.
Definition at line 236 of file tracktion_engine.h.
| #define TRACKTION_ASSERT_MESSAGE_THREAD |
Definition at line 268 of file tracktion_engine.h.
| #define TRACKTION_BENCHMARKS |
Config: TRACKTION_BENCHMARKS Enables Tracktion benchmarks.
If enabled, these will be added the UnitTestRunners under the "tracktion_benchmarks" category.
Definition at line 222 of file tracktion_engine.h.
| #define TRACKTION_BUILD_RUBBERBAND |
Config: TRACKTION_BUILD_RUBBERBAND Builds the RubberBand library from source inside your binary.
This can be useful if you don't want to build it as a static library and link it separately on each platform. Note that this may build a slightly less optimised version on some platforms as RubberBand can be configured with IPP on Windows etc. You must have RubberBand in your search path if you enable this.
N.B. RubberBand is not owned by Tracktion and is licensed separately. Please make sure you have a suitable licence if building with RubberBand support. You can find more information here: https://breakfastquay.com/rubberband/
Definition at line 184 of file tracktion_engine.h.
| #define TRACKTION_CHECK_FOR_SLOW_RENDERING |
Config: TRACKTION_CHECK_FOR_SLOW_RENDERING Enabling this adds additional checks to the audio pipeline to help debug performance problems if operations take longer than real time.
Definition at line 229 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_ABLETON_LINK |
Config: TRACKTION_ENABLE_ABLETON_LINK Enables Ableton Link support.
You must have Link in your search path if you enable this.
Definition at line 199 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_ARA |
Config: TRACKTION_ENABLE_ARA Enables ARA support.
You must have the ARA SDK in the search path in order to use this.
Definition at line 86 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_AUTOMAP |
Config: TRACKTION_ENABLE_AUTOMAP Enables Novation Automap controller support.
Definition at line 109 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_CMAJOR |
Config: TRACKTION_ENABLE_CMAJOR Enables Cmajor support.
If you turn this flag on, you must add the Cmajor library to your cmake project so that it can find the headers and link the library
Definition at line 95 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_CONTROL_SURFACE_MACKIEC4 |
Config: TRACKTION_ENABLE_CONTROL_SURFACE_MACKIEC4 Enables support for the C4 control surface.
If enabled, you'll also need to ensure the C4 Translator source files are in the header search path.
Definition at line 138 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_CONTROL_SURFACES |
Config: TRACKTION_ENABLE_CONTROL_SURFACES Enables external control surface support.
Definition at line 130 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_FFMPEG |
Config: TRACKTION_ENABLE_FFMPEG Uses FFmpeg for mp3 encoding rather than Lame.
Definition at line 206 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_REWIRE |
Config: TRACKTION_ENABLE_REWIRE Enables ReWire support.
Definition at line 102 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_REX |
Config: TRACKTION_ENABLE_REX Enables Rex audio file support.
Definition at line 123 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_SINGLETONS |
Config: TRACKTION_ENABLE_SINGLETONS Enables singleton access to Engine and ProjectManager.
Legacy use only
Definition at line 78 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE |
Config: TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE Enables time-stretching with the Elastique library.
You must have Elastique in your search path and link to it on mac/linux if you enable this.
Definition at line 146 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE_IPP |
Config: TRACKTION_ENABLE_TIMESTRETCH_ELASTIQUE_IPP Elastique can use IPP for increased performance on Windows.
Enable this to automatically include the libraries. Disable if you aren't using the IPP version or you manually include IPP yourself.
Definition at line 155 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_TIMESTRETCH_RUBBERBAND |
Config: TRACKTION_ENABLE_TIMESTRETCH_RUBBERBAND Enables time-stretching with the RubberBand library.
You must have RubberBand in your search path if you enable this.
N.B. RubberBand is not owned by Tracktion and is licensed separately. Please make sure you have a suitable licence if building with RubberBand support. You can find more information here: https://breakfastquay.com/rubberband/
Definition at line 168 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_TIMESTRETCH_SOUNDTOUCH |
Config: TRACKTION_ENABLE_TIMESTRETCH_SOUNDTOUCH Enables time-stretching with the SoundTouch library.
Definition at line 191 of file tracktion_engine.h.
| #define TRACKTION_ENABLE_VIDEO |
Config: TRACKTION_ENABLE_VIDEO Enables video support.
Definition at line 116 of file tracktion_engine.h.
| #define TRACKTION_ENGINE_H_INCLUDED |
Definition at line 35 of file tracktion_engine.h.
| #define TRACKTION_LOG | ( | a | ) |
Definition at line 258 of file tracktion_engine.h.
| #define TRACKTION_LOG_DEVICES |
Config: TRACKTION_LOG_DEVICES If enabled, all found devices will be logged (by default to the console).
Disable this when running benchmarks etc. to avoid flooding the logs.
Definition at line 244 of file tracktion_engine.h.
| #define TRACKTION_LOG_ENABLED |
Definition at line 250 of file tracktion_engine.h.
| #define TRACKTION_LOG_ERROR | ( | a | ) |
Definition at line 259 of file tracktion_engine.h.
| #define TRACKTION_UNIT_TESTS |
Config: TRACKTION_UNIT_TESTS Enables Tracktion unit tests.
If enabled, these will be added the UnitTestRunners under the "Tracktion" category.
Definition at line 214 of file tracktion_engine.h.