TracktionEngine
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
tracktion Namespace Reference

Namespaces

 AppFunctions
 
 benchmark_utilities
 
 Click
 
 ClipConstants
 Constraints for clip speeds.
 
 detail
 
 engine
 
 graph
 
 IDs
 
 legacy
 
 MidiNodeHelpers
 
 modifier
 
 ModifierCommon
 
 node_player_utils
 
 PredefinedWavetable
 
 RackNodeBuilder
 
 render_utils
 
 test_utilities
 
 TracktionBinaryData
 

Classes

class  FloatAudioFormat
 A raw, proprietary, simple floating point format used for freeze files, etc. More...
 
class  LAMEManager
 Manages the LAME location property and an AudioFormat if the LAME encoder is provided. More...
 
class  AudioFifo
 
struct  AudioFileInfo
 
class  AudioFile
 
struct  FallbackReader
 
class  AudioFileCache
 
class  AudioFileManager
 
struct  AudioFileUtils
 
class  AudioFileWriter
 Smart wrapper for writing to an audio file. More...
 
class  AudioFileFormatManager
 Keeps a list of available wave formats and can create a format object for a file. More...
 
class  AudioProxyGenerator
 
class  BufferedFileReader
 
class  LoopInfo
 Holds tempo/beat information about an audio file. More...
 
class  RecordingThumbnailManager
 Holds a pool of Thumbnails that are populated whilst recording. More...
 
class  SmartThumbnail
 SmartThumnail automatically tracks changes to an AudioFile and will update its cache if the file changes. More...
 
struct  ParameterSetting
 
struct  MarkerSetting
 
class  ControlSurface
 Base class for types of control surface. More...
 
class  CustomControlSurface
 
class  ExternalController
 Acts as a holder for a ControlSurface object. More...
 
class  ExternalControllerManager
 Keeps a list of external controllers and keeps them connected to the right MIDI in/out devices. More...
 
class  AlphaTrackControlSurface
 
class  IconProG2
 
class  MackieC4
 
class  MackieMCU
 
class  MackieXT
 
class  NovationRemoteSl
 
class  RemoteSLCompact
 
class  TranzportControlSurface
 
struct  ActiveNoteList
 
struct  MidiChannel
 Represents a MIDI channel 1-16, and also contains extra ID bits to encode info about the event's origin. More...
 
class  MidiControllerEvent
 
struct  MidiExpression
 
class  MidiList
 
class  MidiNote
 
class  MidiProgramManager
 
class  MidiSysexEvent
 
class  Chord
 
class  Scale
 
class  PatternGenerator
 
struct  KeyResult
 
class  SelectedMidiEvents
 Represents a set of selected MIDI notes. More...
 
class  BreakpointOscillatorModifier
 
class  EnvelopeFollowerModifier
 
class  LFOModifier
 
class  MIDITrackerModifier
 
struct  Ramp
 A ramp which goes between 0 and 1 over a set duration. More...
 
struct  DiscreteLabelledParameter
 
struct  SuffixedParameter
 
class  RandomModifier
 
class  StepModifier
 
class  AutomatableEditItem
 Base class for elements that have some kind of automatable parameters. More...
 
class  AutomatableParameter
 
class  AutomationDragDropTarget
 Components can implement this to let things know which automatable parameter they control. More...
 
class  ParameterisableDragDropSource
 
struct  AutomationIterator
 
class  AutomatableParameterTree
 
class  AutomationCurve
 
class  AutomationRecordManager
 Stores automation data as it's being read in, and writes it back to the edit when recording finishes. More...
 
class  MacroParameter
 A MacroParameter is an AutomatableParameter which is a collection of Mappings. More...
 
class  MacroParameterList
 
class  MacroParameterElement
 Base class for elements which can contain macro parameters. More...
 
class  MidiLearnState
 Manages the Midi learn state and Listener interface to notify subclasses when the state changes. More...
 
class  MidiAssignable
 Base class for things that can be assigned to external control surfaces, not plugin paramters. More...
 
struct  ModifierTimer
 Base class for objects which need to know about the global Edit time every block. More...
 
struct  Modifier
 Bass class for parameter Modifiers. More...
 
class  ModifierList
 Holds a list of Modifiers that have been added to a Track. More...
 
class  ParameterChangeHandler
 Manages a set of AutomatableParameters for an Edit and notifies controllers and registered listeners when they change. More...
 
class  ParameterControlMappings
 Controls the set of midi-controller-to-parameter mappings. More...
 
class  ArrangerClip
 
class  AudioClipBase
 Base class for Clips that produce some kind of audio e.g. More...
 
class  AudioSegmentList
 Holds a list of audio regions for playback of things like warp time. More...
 
class  ChordClip
 
struct  ClipLevel
 Holds a clip's level state. More...
 
struct  LiveClipLevel
 Provides a thread-safe way to share a clip's levels with an audio engine without worrying about the Clip being deleted from underneath you. More...
 
class  Clip
 A clip in an edit. More...
 
class  ClipEffect
 
class  ClipEffects
 
struct  ScopedPluginUnloadInhibitor
 
struct  VolumeEffect
 
struct  FadeInOutEffect
 
struct  StepVolumeEffect
 
struct  PitchShiftEffect
 
struct  WarpTimeEffect
 
struct  PluginEffect
 
struct  NormaliseEffect
 
struct  MakeMonoEffect
 
struct  ReverseEffect
 
struct  InvertEffect
 
class  ClipOwner
 Base class for items that can contain clips. More...
 
class  CollectionClip
 
class  CompManager
 
class  CompFactory
 
class  WaveCompManager
 
class  MidiCompManager
 
class  ContainerClip
 A clip that can contain multiple other clips and mix their output together. More...
 
class  EditClip
 This is the main source of an Edit clip and is responsible for managing its properties. More...
 
class  EditRenderJob
 
class  MarkerClip
 
class  MidiClip
 
class  ReverseRenderJob
 
class  StepClip
 
struct  WarpMarker
 A WarpMarker is a point that maps from a linear "source" time to a "warped" time. More...
 
class  WarpTimeManager
 A WarpTimeManager contains a list of WarpMarkers and some source material and maps times from a linear "view" time to a "wapred" source time. More...
 
class  WarpTimeFactory
 A WarpTimeFactory manages WarpTimeManagers for Clips living in an Edit. More...
 
class  WarpTimeRenderJob
 
class  WaveAudioClip
 An audio clip that uses an audio file as its source. More...
 
class  Edit
 The Tracktion Edit class! More...
 
struct  EditDeleter
 Deferred Edit object deleter. More...
 
struct  ActiveEdits
 A list of all currently open edits. More...
 
class  EditFileOperations
 Contains methods for saving an Edit to a file. More...
 
class  EditInsertPoint
 
struct  EditItemID
 ID for objects of type EditElement - e.g. More...
 
class  EditItem
 Base class for objects that live inside an edit - e.g. More...
 
struct  EditItemCache
 
class  EditSnapshot
 Holds a snapshot of an Edit file of the last time it was saved. More...
 
class  GrooveTemplate
 
class  GrooveTemplateManager
 Looks after the list of groove templates. More...
 
class  MarkerManager
 
struct  OldEditConversion
 Logic for reading legacy tracktion edit files. More...
 
class  PitchSequence
 
class  PitchSetting
 
class  QuantisationType
 
class  SourceFileReference
 This class wraps a string that is generally held in a 'source' property, and which is a reference to some sort of file, either in the form of a local filename or as a project ID that can be resolved. More...
 
class  TempoSequence
 Holds a list of TempoSetting objects, to form a sequence of tempo changes. More...
 
struct  EditTimecodeRemapperSnapshot
 Takes a copy of all the beat related things in an edit in terms of bars/beats and then remaps these after a tempo change. More...
 
class  TempoSetting
 A tempo value, as used in a TempoSequence. More...
 
struct  TimecodeSnapType
 A snap mode, e.g. More...
 
class  TimecodeDuration
 Stores a duration in both beats and seconds. More...
 
struct  TimecodeDisplayFormat
 A timecode display mode, e.g. More...
 
struct  TimecodeDisplayIterator
 Iterates along a timeline for drawing things like the ticks on the timebar. More...
 
class  TimeSigSetting
 
class  TracktionArchiveFile
 
class  Exportable
 An interface for objects within an edit that can be exported. More...
 
class  ExportJob
 
class  ReferencedMaterialList
 A list of all the source files needed by an edit (or a section of an edit). More...
 
class  Renderer
 
class  RenderManager
 Manages a set of reference counted render jobs and can be used to retrieve matching jobs or create new ones. More...
 
class  RenderOptions
 Represents a set of user properties used to control a render operation, using a ValueTree to hold them so that they can be saved and reloaded. More...
 
class  ArrangerTrack
 A track similar to the MarkerTrack but can be used to move sections of an Edit around. More...
 
class  AudioTrack
 
class  AutomationTrack
 
class  ChordTrack
 
class  ClipTrack
 
struct  EditTime
 Represents a time point in an Edit stored as either time or beats. More...
 
struct  EditTimeRange
 Represents a time range in an Edit stored as either time or beats. More...
 
struct  ClipPosition
 Represents the position of a clip on a timeline. More...
 
class  FolderTrack
 
class  MarkerTrack
 
class  MasterTrack
 A track to represent the master plugins. More...
 
class  TempoTrack
 A track to represent the "global" items such as tempo, key changes etc. More...
 
class  Track
 Base class for tracks which contain clips and plugins and can be added to Edit[s]. More...
 
class  TrackCompManager
 
class  TrackItem
 Base class for EditItems that live in a Track, e.g. More...
 
class  TrackOutput
 Represents the destination output device(s) for a track. More...
 
struct  TrackInsertPoint
 Defines the place to insert Track[s]. More...
 
struct  TrackList
 An iterable list of Track[s] that live either in an Edit or as subtracks of a Track. More...
 
struct  TrackSection
 Defines a time raneg sectin of a Track. More...
 
struct  TrackAutomationSection
 Holds a reference to a section of automation for a given Track. More...
 
struct  AudioNodeProperties
 Holds some really basic properties of a node. More...
 
struct  PlaybackInitialisationInfo
 Passed into AudioNodes when they are being initialised, to give them useful contextual information that they may need. More...
 
struct  CreateAudioNodeParams
 A collection of settings that are generally needed when asking edit model objects to create AudioNodes to render them. More...
 
struct  AudioRenderContext
 Rendering target info. More...
 
class  AudioNode
 Base class for nodes in an audio playback graph. More...
 
class  SingleInputAudioNode
 
struct  MuteAudioNode
 
class  CombiningAudioNode
 An AudioNode that mixes a sequence of clips of other nodes. More...
 
class  FadeInOutAudioNode
 An AudioNode that fades its input node in/out at given times. More...
 
class  PlayHead
 
class  PluginAudioNode
 
class  SubSampleWaveAudioNode
 
class  SpeedRampAudioNode
 An AudioNode that speeds up and slows down its input node in/out at given times. More...
 
class  TimedMutingAudioNode
 
class  WaveAudioNode
 An AudioNode that plays back a wave file. More...
 
class  InputDevice
 Represents an input device. More...
 
class  InputDeviceInstance
 
class  MidiInputDevice
 
class  MidiOutputDevice
 
class  SoftwareMidiOutputDevice
 Create a software midi port on macOS. More...
 
class  MidiOutputDeviceInstance
 
class  OutputDevice
 Base class for audio or midi output devices, to which a track's output can be sent. More...
 
class  OutputDeviceInstance
 
class  PhysicalMidiInputDevice
 
class  VirtualMidiInputDevice
 
struct  ChannelIndex
 Describes a channel of a WaveInputDevice or WaveOutputDevice by specifying the channel index in the global device's audio buffer and the purpose as an AudioChannelSet::ChannelType e.g. More...
 
struct  WaveDeviceDescription
 Describes a WaveDevice from which the WaveOutputDevice and WaveInputDevice lists will be built. More...
 
class  WaveInputDevice
 A (virtual) audio input device. More...
 
class  WaveInputRecordingThread
 
class  WaveOutputDevice
 A (virtual) audio output device. More...
 
class  WaveOutputDeviceInstance
 
class  AuxSendNode
 Node for an aux send. More...
 
class  ClickGenerator
 Generates click audio and MIDI and adds them to the provided buffer. More...
 
class  ClickNode
 Adds audio and MIDI clicks to the input buffers. More...
 
class  CombiningNode
 An Node that mixes a sequence of clips of other nodes. More...
 
class  ContainerClipNode
 
class  DynamicOffsetNode
 
struct  CreateNodeParams
 Contains options for Edit Node content creation. More...
 
struct  EditNodeBuilder
 
class  FadeInOutNode
 A Node that fades in and out given time regions. More...
 
class  HostedMidiInputDeviceNode
 A Node that intercepts MIDI from a plugin callback and inserts it in to the playback graph. More...
 
class  InsertReturnNode
 The return node hooks into the input device and fills the insert's return buffer with data from the input. More...
 
class  InsertSendReturnDependencyNode
 This is a bit confusing but is required to ensure the following set of dependencies in the graph: InsertSendNode -> InsertPluginNode InsertReturnNode -> More...
 
class  InsertSendNode
 The send node picks up audio/MIDI data from the InsertPlugin and then its output will be sent to the corresponding OutputDevice. More...
 
class  LevelMeasurerProcessingNode
 A Node that introduces latency to balance the latency at the root Node and its position in the graph. More...
 
class  LevelMeasuringNode
 A Node that passes its incomming audio and MIDI through a LevelMeasurer. More...
 
class  LiveMidiInjectingNode
 A Node that injects MIDI message in to the stream, for keyboard key entry, note previews and MIDI step entry etc. More...
 
class  LiveMidiOutputNode
 A Node that calls the listeners of an AudioTrack with any incomming MIDI. More...
 
class  LoopingMidiNode
 A Node that plays MIDI data from a MidiMessageSequence, at a specific MIDI channel. More...
 
class  MelodyneNode
 Plays back a Melodyne plugin. More...
 
class  MidiInputDeviceNode
 A Node that intercepts incoming live MIDI and inserts it in to the playback graph. More...
 
class  MidiNode
 A Node that plays MIDI data from a MidiMessageSequence, at a specific MIDI channel. More...
 
class  MidiOutputDeviceInstanceInjectingNode
 A Node that injects the MIDI buffer of its input to the MidiOutputDevice. More...
 
class  ModifierNode
 Node for processing a Modifier. More...
 
class  MultiThreadedNodePlayer
 Plays back a Node with PlayHeadState and ProcessState. More...
 
class  NodeRenderContext
 Holds the state of an audio render procedure so it can be rendered in blocks. More...
 
class  PlayHeadPositionNode
 A Node that calculates a position to show visually what time is currently being processed by the graph based on its internal latency. More...
 
class  PluginNode
 Node for processing a plugin. More...
 
class  RackInstanceNode
 Sends an input Node to a Rack bus handling the channel mapping and channel gain levels. More...
 
struct  InputProvider
 
class  RackNodePlayer
 Simple processor for a Node which uses an InputProvider to pass input in to the graph. More...
 
class  RackReturnNode
 Sends an input Node to a Rack bus handling the channel mapping and channel gain levels. More...
 
class  SharedLevelMeasuringNode
 Applies a SharedLevelMeter to the audio passing through this node. More...
 
struct  SpeedFadeDescription
 Describes the time and type of the speed fade in/outs. More...
 
class  SpeedRampWaveNode
 An Node that plays back a wave file. More...
 
class  TimedMutingNode
 A Node that mutes its input at specific time ranges. More...
 
class  TimeStretchingWaveNode
 Node that reads from a file node and timestretches its output. More...
 
class  TrackMidiInputDeviceNode
 A Node that takes MIDI from the output of a track and sends it to its corresponding InputDevice. More...
 
class  TrackMuteState
 Holds the state of a Track and if its contents/plugins should be played or not. More...
 
class  TrackMutingNode
 A Node that handles muting/soloing of its input node, according to the audibility of a track. More...
 
struct  ProcessState
 Holds the state of a process call. More...
 
class  TracktionEngineNode
 Base class for Nodes that provides information about the current process call. More...
 
class  DynamicallyOffsettableNodeBase
 
class  TracktionNodePlayer
 Plays back a Node with PlayHeadState and ProcessState. More...
 
class  TrackWaveInputDeviceNode
 A Node that takes audio from the output of a track and sends it to its corresponding InputDevice. More...
 
class  WaveInputDeviceNode
 A Node that intercepts incoming live audio and inserts it in to the playback graph. More...
 
struct  WarpPoint
 
class  WaveNode
 An Node that plays back a wave file. More...
 
class  WaveNodeRealTime
 An Node that plays back a wave file. More...
 
class  AbletonLink
 Manages an Ableton Link session connecting an Edit with a number of networked peers, syncronising their tempos, bar phases and start/stop statuses. More...
 
class  TracktionEngineAudioDeviceManager
 Subclass of an AudioDeviceManager which can be used to avoid adding the system audio devices in plugin builds. More...
 
class  DeviceManager
 
class  EditInputDevices
 
class  EditPlaybackContext
 
class  HostedAudioDeviceInterface
 The HostedAudioDeviceInterface allows an application or plugin to pass audio and midi buffers to the engine, rather than the engine directly opening the audio devices. More...
 
struct  DbTimePair
 
class  LevelMeasurer
 Monitors the levels of buffers that are passed in, and keeps peak values, overloads, etc., for display in a level meter component. More...
 
class  SharedLevelMeasurer
 A shared level measurer that can be used by several threads to provide a total output level. More...
 
class  MidiNoteDispatcher
 
struct  MPEStartTrimmer
 If you need to play back MPE data from a point after the data starts, it's important to reconstruct the expression values immediately preceding the last note-on, then the note on, then the last expression values before the trim point. More...
 
class  ScopedSteadyLoad
 
class  TransportControl
 Controls the transport of an Edit's playback. More...
 
class  AirWindowsCallback
 
class  AirWindowsPlugin
 
class  MelodyneFileReader
 
struct  ARADocumentHolder
 
class  ChorusPlugin
 
class  CompressorPlugin
 
struct  DelayBufferBase
 
class  DelayPlugin
 
class  EqualiserPlugin
 
class  ValueSmoother
 Smooths a value between 0 and 1 at a constant rate. More...
 
class  SimpleLFO
 
class  FourOscPlugin
 
class  ImpulseResponsePlugin
 ImpulseResponsePlugin that loads an impulse response and applies it the audio stream. More...
 
class  LatencyPlugin
 A test plugin that introduces latency to the incomming signal. More...
 
class  LowPassPlugin
 
class  MidiModifierPlugin
 
class  MidiPatchBayPlugin
 
class  PatchBayPlugin
 
class  PhaserPlugin
 
class  PitchShiftPlugin
 
class  ReverbPlugin
 
class  SamplerPlugin
 
class  ToneGeneratorPlugin
 
class  ExternalAutomatableParameter
 
class  ExternalPlugin
 
struct  PluginWetDryAutomatableParam
 specialised AutomatableParameter for wet/dry. More...
 
class  VSTXML
 
class  AuxReturnPlugin
 
class  AuxSendPlugin
 
class  FreezePointPlugin
 
class  InsertPlugin
 
class  LevelMeterPlugin
 
class  RackInstance
 
struct  RackConnection
 
class  RackType
 
class  RackTypeList
 
class  TextPlugin
 
class  VCAPlugin
 The VCA plugin sits on a folder track to control the overall level of all the volume/pan plugins in its child tracks. More...
 
class  VolumeAndPanPlugin
 The built-in Tracktion volume/pan plugin. More...
 
struct  PluginCreationInfo
 
struct  PluginInitialisationInfo
 Passed into Plugins when they are being initialised, to give them useful contextual information that they may need. More...
 
struct  PluginRenderContext
 The context passed to plugin render methods to provide it with buffers to fill. More...
 
class  Plugin
 
class  PluginList
 Holds a sequence of plugins. More...
 
class  PluginManager
 
class  PluginCache
 
struct  PluginWindowState
 
class  Project
 A tracktion project. More...
 
class  ProjectItem
 Represents a file-based resource that is used in a project. More...
 
class  ProjectItemID
 An ID representing one of the items in a Project. More...
 
class  ProjectManager
 
class  ProjectSearchIndex
 
class  SearchOperation
 
class  Clipboard
 
class  SelectableListener
 
class  Selectable
 Base class for things that can be selected, and whose properties can appear in the properties panel. More...
 
struct  SelectableList
 A list of Selectables, similar to a juce::Array but contains a cached list of the SelectableClasses for each entry. More...
 
class  SafeSelectable
 Holds a pointer to some type of Selectable, which automatically becomes null if the selectable is deleted. More...
 
class  SelectableClass
 Represents a type of object that can be selected. More...
 
class  SelectableClassWithVolume
 
class  SelectableClassWithPan
 
class  SelectionManager
 Manages a list of items that are currently selected. More...
 
struct  BeatDetect
 
class  TempoDetect
 Uses the SoundTouch BPMDetect class to guess the tempo of some audio. More...
 
class  TimeStretcher
 Handles time/pitch stretching using various supported libraries. More...
 
struct  AsyncCaller
 Asyncronously call a function. More...
 
struct  AsyncFunctionCaller
 Holds a list of function objects and enables you to call them asyncronously. More...
 
class  LambdaTimer
 
class  MessageThreadCallback
 Calls a function on the message thread checking a calling thread for an exit signal. More...
 
struct  BlockingFunction
 
struct  DummyConstrainer
 Dummy constrainer which should optimise away to nothing. More...
 
struct  AtomicWrapper
 Wraps an atomic with an interface compatible with var so it can be used within CachedValues in a thread safe way. More...
 
struct  AudioFadeCurve
 
class  AudioScratchBuffer
 An audio scratch buffer that has pooled storage. More...
 
class  AudioMidiFifo
 
class  AudioBufferSnapshot
 
class  ThreadPoolJobWithProgress
 
class  BackgroundJobManager
 Manages a set of background tasks that can be run concurrently on a background thread. More...
 
class  ConstrainedCachedValue
 A CachedValue that can take a std::function to constrain its value. More...
 
struct  ScopedCpuMeter
 
struct  StopwatchTimer
 
struct  CrashStackTracer
 Used by the CRASH_TRACER macros to help provide a useful crash log of the stack. More...
 
struct  DeadMansPedalMessage
 This RAII class saves a property which will be reported at startup as a failure if the app disappears before its destructor is called. More...
 
struct  TransparentToMouseInTrackItemComp
 
struct  CurvePoint
 
class  CurveEditorPoint
 
class  CurveEditor
 
struct  Ditherer
 An extremely naive ditherer. More...
 
class  Engine
 The Engine is the central class for all tracktion sessions. More...
 
struct  EditLimits
 Contains the limits of the various elements that can be added to an Edit. More...
 
class  EngineBehaviour
 Provides custom handlers to control various aspects of the engine's behaviour. More...
 
class  ExpEnvelope
 
class  LinEnvelope
 
class  ExternalPlayheadSynchroniser
 An ExternalPlayheadSynchroniser is used to synchronise the internal Edit's playhead with an AudioProcessor, for use in plugins. More...
 
struct  ScopedDirectoryDeleter
 
struct  FileDragList
 
class  ScopedWaitCursor
 Shows and hides the mouse wait cursor where appropriate. More...
 
class  MouseHoverDetector
 
class  BandlimitedWaveLookupTables
 
class  Oscillator
 
class  MultiVoiceOscillator
 
struct  Pitch
 
struct  PluginComponent
 Components that represent a Plugin should inherit from this to ensure they are correctly notified when their colour changes e.g. More...
 
class  PropertyStorage
 Create a subclass of PropertyStorage to customize how settings are saved and recalled. More...
 
struct  Spline
 An interpolated spline curve, used by the EQ to draw its response graph. More...
 
class  TemporaryFileManager
 Holds info about where temp files should go, and tidies up old ones when needed. More...
 
class  UIBehaviour
 Create a subclass of UIBehaviour to custom UI elements created by the engine. More...
 
class  ValueTreeObjectList
 
struct  SortedValueTreeObjectList
 
struct  ValueTreeAllEventListener
 
struct  ValueTreeComparator
 
class  ReferenceCountedValueTree
 Holds a ValueTree as a ReferenceCountedObject. More...
 
struct  ChannelConnection
 
class  ConnectedNode
 An Node which sums together the multiple inputs adding additional latency to provide a coherent output. More...
 
class  LatencyNode
 
class  SummingNode
 An Node which sums together the multiple inputs adding additional latency to provide a coherent output. More...
 
class  SimpleNodePlayer
 Simple player for a Node. More...
 
class  LockFreeMultiThreadedNodePlayer
 Plays back a node with mutiple threads. More...
 
struct  NodeBuffer
 Holds a view over some data and optionally some storage for that data. More...
 
struct  NodeAndID
 A Node and its ID cached for quick lookup (without having to traverse the graph). More...
 
struct  NodeGraph
 Holds a graph in an order ready for processing and a sorted map for quick lookups. More...
 
struct  NodeProperties
 Holds some really basic properties of a node. More...
 
struct  NodeOptimisations
 Holds some hints that might be used by the Node or players to improve efficiency. More...
 
class  TransformCache
 
class  Node
 Main graph Node processor class. More...
 
class  NodePlayer
 Simple player for an Node. More...
 
struct  SplitTimelineRange
 Represents a pair of timeline ranges which could be wraped around the loop end. More...
 
class  PlayHeadState
 Determines how this block releates to other previous render blocks and if the play head has jumped in time. More...
 
class  SinNode
 
class  SilentNode
 Just a simple audio node that doesn't take any input so can be used as a stub. More...
 
class  BasicSummingNode
 
class  FunctionNode
 
class  GainNode
 
class  SendNode
 
class  ReturnNode
 
class  ChannelRemappingNode
 Maps channels from one to another. More...
 
class  SinkNode
 Blocks audio and MIDI input from reaching the outputs. More...
 
class  ForwardingNode
 Takes a non-owning input node and simply forwards its outputs on. More...
 
class  AudioBufferPool
 A lock-free pool of audio buffers. More...
 
class  AudioBufferStack
 A stack of audio buffers. More...
 
struct  LatencyProcessor
 
class  LockFreeObject
 Manages access to an object in a way that means it is lock-free to access from a real-time thread. More...
 
struct  MidiMessageArray
 
struct  ScopedSignpost
 A macOS specific class to start/stop a signpost for use in Instruments. More...
 
class  PerformanceMeasurement
 A timer for measuring performance of code. More...
 
class  ScopedPerformanceMeasurement
 RAII wrapper to start and stop a performance measurement. More...
 
class  RealTimeSpinLock
 A basic spin lock that uses an atomic_flag to store the locked state so should never result in a system call. More...
 
class  Semaphore
 A basic counting semaphore. More...
 
class  LightweightSemaphore
 A counting semaphore that spins on a atomic before waiting so will avoid system calls if wait periods are very short. More...
 

Typedefs

using WarpMap = std::vector< WarpPoint >
 
using SampleCount = int64_t
 
using SampleRange = juce::Range< SampleCount >
 
using HashCode = int64_t
 

Enumerations

enum class  DeleteExistingClips { no , yes }
 Determines behaviour for overwriting clips. More...
 
enum class  CloseGap { no , yes }
 An enum to specify if gaps deleted should be closed or not. More...
 
enum class  MoveClipAction { moveToEndOfLast , moveToStartOfNext , moveStartToCursor , moveEndToCursor }
 Enum to dictate move clip behaviour. More...
 
enum class  TimecodeType {
  millisecs , barsBeats , fps24 , fps25 ,
  fps30
}
 
enum class  ResamplingQuality { lagrange , sincFast , sincMedium , sincBest }
 Specifies a number of resampling qualities that can be used. More...
 
enum  PanLaw {
  PanLawDefault = -1 , PanLawLinear = 0 , PanLaw2point5dBCenter = 1 , PanLaw3dBCenter = 2 ,
  PanLaw4point5dBCenter = 3 , PanLaw6dBCenter = 4
}
 All laws have been designed to be equal-power, excluding linear respectively. More...
 
enum class  SettingID {
  invalid , addAntiDenormalNoise , audio_device_setup , audiosettings ,
  autoFreeze , autoTempoMatch , autoTempoDetect , automapVst ,
  automapNative , automapGuids1 , automapGuids2 , cacheSizeSamples ,
  compCrossfadeMs , countInMode , clickTrackMidiNoteBig , clickTrackMidiNoteLittle ,
  clickTrackSampleSmall , clickTrackSampleBig , crossfadeBlock , cpu ,
  customMidiControllers , deadMansPedal , defaultMidiOutDevice , defaultWaveOutDevice ,
  defaultMidiInDevice , defaultWaveInDevice , externControlIn , externControlOut ,
  externControlNum , externControlMain , externControlShowSelection , externControlSelectionColour ,
  externControlEnable , externOscInputPort , externOscOutputPort , externOscOutputAddr ,
  filterControlMappingPresets , filterGui , fitClipsToRegion , findExamples ,
  freezePoint , hasEnabledMidiDefaultDevs , glideLength , grooveTemplates ,
  knownPluginList , knownPluginList64 , lameEncoder , lastClickTrackLevel ,
  lastEditRender , lowLatencyBuffer , MCUoneTouchRecord , maxLatency ,
  midiin , midiout , midiEditorOctaves , midiProgramManager ,
  newMarker , numThreadsForPluginScanning , projectList , projects ,
  recentProjects , renameClipRenamesSource , renameMode , renderRecentFilesList ,
  resetCursorOnStop , retrospectiveRecord , reWireEnabled , safeRecord ,
  sendControllerOffMessages , simplifyAfterRecording , snapCursor , tempDirectory ,
  trackExpansionMode , use64Bit , xFade , xtCount ,
  xtIndices , virtualmididevices , virtualmidiin , useSeparateProcessForScanning ,
  useRealtime , wavein , waveout , windowsDoubleClick ,
  renderFormat , trackRenderSampRate , trackRenderBits , bypassFilters ,
  markedRegion , editClipRenderSampRate , editClipRenderBits , editClipRenderDither ,
  editClipRealtime , editClipRenderStereo , editClipRenderNormalise , editClipRenderRMS ,
  editClipRenderRMSLevelDb , editClipRenderPeakLevelDb , editClipPassThroughFilters , exportFormat ,
  renderOnlySelectedClips , renderOnlyMarked , renderNormalise , renderRMS ,
  renderRMSLevelDb , renderPeakLevelDb , renderTrimSilence , renderSampRate ,
  renderStereo , renderBits , renderDither , quality ,
  addId3Info , realtime , passThroughFilters
}
 A list of settings the engine will get and set. More...
 
enum class  TransformResult { none , connectionsMade , nodesDeleted }
 Enum to signify the result of the transform function. More...
 
enum class  ClearBuffers { no , yes }
 
enum class  AllocateAudioBuffer { no , yes }
 
enum class  VertexOrdering {
  preordering , postordering , reversePreordering , reversePostordering ,
  bfsPreordering , bfsReversePreordering
}
 Specifies the ordering algorithm. More...
 
enum class  ThreadPoolStrategy {
  conditionVariable , realTime , hybrid , semaphore ,
  lightweightSemaphore , lightweightSemHybrid
}
 Available strategies for thread pools. More...
 

Functions

juce::Array< KeyResultdetermineKeyOfNotes (const juce::Array< MidiNote * > &notes)
 
template<typename AssignmentType >
juce::ReferenceCountedArray< AssignmentType > getAssignmentsOfType (const AutomatableParameter &ap)
 Returns all the Assignments of a specific type. More...
 
template<typename ModifierType >
juce::Array< ModifierType * > getModifiersOfType (const AutomatableParameter &ap)
 Returns all the modifers in use of a specific type. More...
 
juce::Array< AutomatableParameter * > getAllAutomatableParameter (Edit &)
 Returns all the automatable parameters in an Edit. More...
 
template<typename AssignmentType , typename ModifierSourceType >
juce::ReferenceCountedArray< AssignmentType > getAssignmentsForSource (Edit &edit, const ModifierSourceType &source)
 Iterates an Edit looking for all parameters that assigned to a given parameter. More...
 
AutomatableParameter::ModifierSource * getSourceForAssignment (const AutomatableParameter::ModifierAssignment &)
 Iterates an Edit looking for the source of this assignment. More...
 
juce::ReferenceCountedArray< AutomatableParametergetAllParametersBeingModifiedBy (Edit &, AutomatableParameter::ModifierSource &)
 Iterates an Edit looking for all parameters that are being modified by the given ModifierSource. More...
 
AutomatableParametergetParameter (AutomatableParameter::ModifierAssignment &)
 Iterates an Edit looking for the parameter that this ModifierAssignment has been made from. More...
 
int getIntParamValue (const AutomatableParameter &ap)
 Returns an int version of an AutomatableParameter. More...
 
bool getBoolParamValue (const AutomatableParameter &ap)
 Returns a bool version of an AutomatableParameter. More...
 
template<typename Type >
Type getTypedParamValue (const AutomatableParameter &ap)
 Returns an int version of an AutomatableParameter cast to a enum type. More...
 
int simplify (AutomationCurve &, int strength, TimeRange)
 Removes points from the curve to simplfy it and returns the number of points removed. More...
 
MacroParameter::Ptr getMacroParameterForID (Edit &, EditItemID)
 Searched the Edit for a MacroParameter with this ID. More...
 
juce::ReferenceCountedObjectPtr< PlugingetOwnerPlugin (MacroParameterList *)
 If this MacroParameterList belongs to an Plugin, this will return it. More...
 
template<typename ModifierType >
juce::ReferenceCountedArray< ModifierType > getModifiersOfType (const ModifierList &ml)
 Returns the modifers of a specific type. More...
 
Modifier::Ptr findModifierForID (ModifierList &, EditItemID)
 Returns a Modifier if it can be found in the list. More...
 
ClipfindClipForState (ClipOwner &, const juce::ValueTree &)
 Returns a clip with the given state if the ClipOwner contains it. More...
 
ClipfindClipForID (ClipOwner &, EditItemID)
 Returns a clip with the given ID if the ClipOwner contains it. More...
 
ClipinsertClipWithState (ClipOwner &, juce::ValueTree)
 Inserts a clip with the given state in to the ClipOwner's clip list. More...
 
ClipinsertClipWithState (ClipOwner &, const juce::ValueTree &stateToUse, const juce::String &name, TrackItem::Type, ClipPosition, DeleteExistingClips, bool allowSpottingAdjustment)
 Inserts a clip with the given state in to the ClipOwner's clip list. More...
 
ClipinsertNewClip (ClipOwner &, TrackItem::Type, TimeRange)
 Inserts a new clip with the given type and a default name. More...
 
ClipinsertNewClip (ClipOwner &, TrackItem::Type, const juce::String &name, TimeRange)
 Inserts a new clip with the given type and name. More...
 
ClipinsertNewClip (ClipOwner &, TrackItem::Type, const juce::String &name, ClipPosition)
 Inserts a new clip with the given type and name. More...
 
juce::ReferenceCountedObjectPtr< WaveAudioClipinsertWaveClip (ClipOwner &, const juce::String &name, const juce::File &sourceFile, ClipPosition, DeleteExistingClips)
 Inserts a new WaveAudioClip into the ClipOwner's clip list. More...
 
juce::ReferenceCountedObjectPtr< WaveAudioClipinsertWaveClip (ClipOwner &, const juce::String &name, ProjectItemID sourceID, ClipPosition, DeleteExistingClips)
 Inserts a new WaveAudioClip into the ClipOwner's clip list. More...
 
juce::ReferenceCountedObjectPtr< MidiClipinsertMIDIClip (ClipOwner &, const juce::String &name, TimeRange)
 Inserts a new MidiClip into the ClipOwner's clip list. More...
 
juce::ReferenceCountedObjectPtr< MidiClipinsertMIDIClip (ClipOwner &, TimeRange)
 Inserts a new MidiClip into the ClipOwner's clip list. More...
 
juce::ReferenceCountedObjectPtr< EditClipinsertEditClip (ClipOwner &, TimeRange, ProjectItemID)
 Inserts a new EditClip into the ClipOwner's clip list. More...
 
juce::Array< Clip * > deleteRegion (ClipOwner &, TimeRange)
 Removes a region of a ClipOwner and returns any newly created clips. More...
 
juce::Array< Clip * > deleteRegion (Clip &, TimeRange)
 Removes a region of a clip and returns any newly created clips. More...
 
juce::Array< Clip * > split (ClipOwner &, TimePosition)
 Splits the given clp owner at the time and returns any newly created clips. More...
 
Clipsplit (Clip &, TimePosition)
 Splits the given clip at the time and returns the newly created clip. More...
 
bool containsAnyMIDIClips (const ClipOwner &)
 Returns true if the clip owner contains any MIDI clips. More...
 
template<typename ClipType >
juce::Array< ClipType * > getClipsOfType (const ClipOwner &)
 Returns the subclips of the given type. More...
 
template<typename ClipType >
juce::Array< ClipType * > getClipsOfTypeRecursive (const ClipOwner &)
 Returns the subclips of the given type, if any clips contain other clips, this will also return those. More...
 
bool isMasterTrack (const Track &)
 Returns true if this is a MasterTrack. More...
 
bool isTempoTrack (const Track &)
 Returns true if this is a TempoTrack. More...
 
bool isAutomationTrack (const Track &)
 Returns true if this is an AutomationTrack. More...
 
bool isAudioTrack (const Track &)
 Returns true if this is an AudioTrack. More...
 
bool isFolderTrack (const Track &)
 Returns true if this is a FolderTrack. More...
 
bool isMarkerTrack (const Track &)
 Returns true if this is a MarkerTrack. More...
 
bool isChordTrack (const Track &)
 Returns true if this is a ChordTrack. More...
 
bool isArrangerTrack (const Track &)
 Returns true if this is an ArrangerTrack. More...
 
bool isAudioTrack (const ClipOwner &)
 Returns true if this is an AudioTrack. More...
 
bool isFolderTrack (const ClipOwner &)
 Returns true if this is a FolderTrack. More...
 
bool isMarkerTrack (const ClipOwner &)
 Returns true if this is a MarkerTrack. More...
 
bool isChordTrack (const ClipOwner &)
 Returns true if this is a ChordTrack. More...
 
bool isArrangerTrack (const ClipOwner &)
 Returns true if this is an ArrangerTrack. More...
 
bool canContainMIDI (const ClipOwner &)
 Returns true if this Track can contain MidiClip[s]. More...
 
bool canContainAudio (const ClipOwner &)
 Returns true if this Track can contain WaveAudioClip[s]. More...
 
bool isMovable (const Track &)
 Returns true if this Track is movable. More...
 
bool isOnTop (const Track &)
 Returns true if this a global Track and should be on top of others. More...
 
std::unique_ptr< EditloadEditFromFile (Engine &, const juce::File &, Edit::EditRole role=Edit::forEditing)
 Loads an edit from file, ready for playback / editing. More...
 
std::unique_ptr< EditcreateEmptyEdit (Engine &, const juce::File &)
 Creates a new edit for a file, ready for playback / editing. More...
 
juce::ValueTree loadEditFromProjectManager (ProjectManager &, ProjectItemID)
 Uses the ProjectManager to find an Edit file and load it as a ValueTree. More...
 
juce::ValueTree loadEditFromFile (Engine &, const juce::File &, ProjectItemID)
 Legacy, will be deprecated soon. More...
 
juce::ValueTree createEmptyEdit (Engine &)
 Legacy, will be deprecated soon. More...
 
juce::ValueTree updateLegacyEdit (const juce::ValueTree &)
 Converts old edit formats to the latest structure. More...
 
void updateLegacyEdit (juce::XmlElement &editXML)
 Converts old edit formats to the latest structure. More...
 
juce::File getEditFileFromProjectManager (Edit &)
 Uses the ProjectManager to look up the file for an Edit. More...
 
bool referencesProjectItem (Edit &, ProjectItemID)
 Returns true if the ProjectItemID is being used for any of the Edit's elements. More...
 
void insertSpaceIntoEdit (Edit &, TimeRange timeRangeToInsert)
 Inserts blank space in to an Edit, splitting clips if necessary. More...
 
void insertSpaceIntoEditFromBeatRange (Edit &, BeatRange)
 Inserts a number of blank beats in to the Edit. More...
 
juce::Array< Track * > getAllTracks (const Edit &)
 Returns all the tracks in an Edit. More...
 
juce::Array< Track * > getTopLevelTracks (const Edit &)
 Returns all of the non-foldered tracks in an Edit. More...
 
template<typename TrackType >
juce::Array< TrackType * > getTracksOfType (const Edit &, bool recursive)
 Returns the tracks of a given type in an Edit. More...
 
juce::Array< AudioTrack * > getAudioTracks (const Edit &)
 Returns all the AudioTracks in an Edit. More...
 
juce::Array< ClipTrack * > getClipTracks (const Edit &)
 Returns all the ClipTracks in an Edit. More...
 
int getTotalNumTracks (const Edit &)
 Returns the total number of Tracks in an Edit. More...
 
TrackfindTrackForID (const Edit &, EditItemID)
 Returns the Track with a given ID if contained in the Edit. More...
 
juce::Array< Track * > findTracksForIDs (const Edit &, const juce::Array< EditItemID > &)
 Returns the Tracks for the given IDs in the Edit. More...
 
TrackfindTrackForState (const Edit &, const juce::ValueTree &)
 Returns the Track with a given state if contained in the Edit. More...
 
AudioTrackgetFirstAudioTrack (const Edit &)
 Returns the first audio track in an Edit. More...
 
juce::Array< Track * > findAllTracksContainingSelectedItems (const SelectableList &)
 Returns all the tracks containing the selected tracks or TrackItems. More...
 
ClipTrackfindFirstClipTrackFromSelection (const SelectableList &)
 Returns the first ClipTrack from the selected tracks or clips. More...
 
bool containsTrack (const Edit &, const Track &)
 Returns true if the Edit contains this Track. More...
 
TrackOutputgetTrackOutput (Track &)
 Returns the TrackOutput if the given track has one. More...
 
juce::BigInteger toBitSet (const juce::Array< Track * > &)
 Returns the set of tracks as a BigInteger with each bit corresponding to the array of all tracks in an Edit. More...
 
juce::Array< Track * > toTrackArray (Edit &, const juce::BigInteger &)
 Returns an Array of Track[s] corresponding to the set bits of all tracks in an Edit. More...
 
template<typename TrackItemType >
juce::Array< TrackItemType * > getTrackItemsOfType (const Track &)
 
ClipfindClipForID (const Edit &, EditItemID)
 Returns the Clip with a given ID if contained in the Edit. More...
 
ClipfindClipForState (const Edit &, const juce::ValueTree &)
 Returns the Clip for a given state if contained in the Edit. More...
 
bool containsClip (const Edit &, Clip *)
 Returns true if an Edit contains a given clip. More...
 
Clip::Ptr duplicateClip (const Clip &)
 Creates a unique copy of this clip with a new EditItemID. More...
 
void visitAllTrackItems (const Edit &, std::function< bool(TrackItem &)>)
 Calls a function for all TrackItems in an Edit. More...
 
TimeRange getTimeRangeForSelectedItems (const SelectableList &)
 Returns the time range covered by the given items. More...
 
void deleteRegionOfTracks (Edit &, TimeRange rangeToDelete, bool onlySelectedTracks, CloseGap, SelectionManager *)
 Deletes a time range of an Edit, optionally closing the gap. More...
 
void deleteRegionOfClip (Clip &, TimeRange rangeToDelete)
 Deletes a time range of a Clip. More...
 
void deleteRegionOfSelectedClips (SelectionManager &, TimeRange rangeToDelete, CloseGap, bool moveAllSubsequentClipsOnTrack)
 Deletes a time range of a Clip selection, optionally closing the gap. More...
 
SelectableList splitClips (const SelectableList &clips, TimePosition time)
 Splits the clips at a given time. More...
 
void moveSelectedClips (const SelectableList &, Edit &, MoveClipAction mode, bool alsoMoveAutomation)
 Moves the selected clips within their track. More...
 
SelectableList getClipSelectionWithCollectionClipContents (const SelectableList &)
 Returns a list of clips. More...
 
juce::Array< ClipEffect * > getAllClipEffects (Edit &edit)
 Returns all clip effects. More...
 
MidiNotefindNoteForState (const Edit &, const juce::ValueTree &)
 Returns the MidiNote with a given state. More...
 
juce::Result mergeMidiClips (juce::Array< MidiClip * >)
 Merges a set of MIDI clips in to one new one. More...
 
Plugin::Array getAllPlugins (const Edit &, bool includeMasterVolume)
 Returns all the plugins in a given Edit. More...
 
Plugin::Ptr findPluginForState (const Edit &, const juce::ValueTree &)
 Returns the plugin with given state. More...
 
Plugin::Ptr findPluginForID (const Edit &, EditItemID)
 Returns the plugin with given EditItemID. More...
 
TrackgetTrackContainingPlugin (const Edit &, const Plugin *)
 Returns the track for the track which the plugin is located on. More...
 
bool areAnyPluginsMissing (const Edit &)
 Returns true if any plugins couldn't be loaded beacuse their files are missing. More...
 
juce::Array< RackInstance * > getRackInstancesInEditForType (const RackType &)
 Returns all of the instances of a specific RackType in an Edit. More...
 
void muteOrUnmuteAllPlugins (Edit &)
 Toggles the enabled state of all plugins in an Edit. More...
 
juce::Array< AutomatableEditItem * > getAllAutomatableEditItems (const Edit &)
 Returns all AutomatableEditItems in an Edit. More...
 
void deleteAutomation (const SelectableList &selectedClips)
 Deletes the automation covered by the selected clips. More...
 
juce::Array< AutomatableParameter::ModifierSource * > getAllModifierSources (const Edit &)
 Returns all the ModifierSources in an Edit. More...
 
juce::ReferenceCountedArray< ModifiergetAllModifiers (const Edit &)
 Returns all the Modifiers in an Edit. More...
 
template<typename ModifierType >
ModifierType::Ptr findModifierTypeForID (const Edit &, EditItemID)
 Returns the Modifier with a given type and ID. More...
 
Modifier::Ptr findModifierForID (const Edit &, EditItemID)
 Returns the Modifier with a given ID. More...
 
Modifier::Ptr findModifierForID (const RackType &, EditItemID)
 Returns the Modifier with a given ID if the RackType contains it. More...
 
TrackgetTrackContainingModifier (const Edit &, const Modifier::Ptr &)
 Returns the Track containing a Modifier. More...
 
juce::Array< MacroParameterList * > getAllMacroParameterLists (const Edit &)
 Returns all the MacroParameterLists in an Edit. More...
 
juce::Array< MacroParameterElement * > getAllMacroParameterElements (const Edit &)
 Returns all the MacroParameterElement in an Edit. More...
 
InputDeviceInstance::RecordingParameters getDefaultRecordingParameters (const EditPlaybackContext &, TimePosition playStart, TimePosition punchIn)
 Returns the default set of recording parameters. More...
 
bool operator< (const PitchSetting &p1, const PitchSetting &p2) noexcept
 
tempo::Sequence::Position createPosition (const TempoSequence &)
 Creates a Position to iterate over the given TempoSequence. More...
 
BeatPosition toBeats (TimePosition, const TempoSequence &)
 Converts a TimePosition to a BeatPosition given a TempoSequence. More...
 
TimePosition toTime (BeatPosition, const TempoSequence &)
 Converts a BeatPosition to a TimePosition given a TempoSequence. More...
 
BeatRange toBeats (TimeRange, const TempoSequence &)
 Converts a TimeRange to a BeatRange given a TempoSequence. More...
 
TimeRange toTime (BeatRange, const TempoSequence &)
 Converts a BeatRange to a TimeRange given a TempoSequence. More...
 
TimePosition toTime (EditTime, const TempoSequence &)
 Converts an EditTime to a TimePosition. More...
 
BeatPosition toBeats (EditTime, const TempoSequence &)
 Converts an EditTime to a BeatPosition. More...
 
TimeRange toTime (EditTimeRange, const TempoSequence &)
 Converts an EditTimeRange to a TimeRange. More...
 
BeatRange toBeats (EditTimeRange, const TempoSequence &)
 Converts an EditTimeRange to a BeatRange. More...
 
ClipPosition createClipPosition (const TempoSequence &, TimeRange, TimeDuration offset={})
 Creates a ClipPosition from either a time or beat range. More...
 
ClipPosition createClipPosition (const TempoSequence &, BeatRange, BeatDuration offset={})
 Creates a ClipPosition from either a time or beat range. More...
 
void moveAutomation (const juce::Array< TrackAutomationSection > &, TimeDuration offset, bool copy)
 Moves a set of automation optionally applying an offset and copying the automation (rather than moving it). More...
 
template<typename ArrayType >
int findIndexOfNextItemAt (const ArrayType &items, TimePosition time)
 Returns the index of the next item after the given time. More...
 
template<typename ArrayType >
TimeRange findUnionOfEditTimeRanges (const ArrayType &items)
 Returns the the time range that covers all the given TrackItems. More...
 
TimeRange toTimeRange (legacy::EditTimeRange r)
 @temporary More...
 
legacy::EditTimeRange toEditTimeRange (TimeRange r)
 @temporary More...
 
AudioNodecreateTrackCompAudioNode (AudioNode *input, const juce::Array< legacy::EditTimeRange > &muteTimes, const juce::Array< legacy::EditTimeRange > &nonMuteTimes, double crossfadeTime)
 
AudioNodecreateTrackCompAudioNode (AudioNode *input, const juce::Array< TimeRange > &muteTimes, const juce::Array< TimeRange > &nonMuteTimes, TimeDuration crossfadeTime)
 
AudioNodecreateAudioNode (TrackCompManager::TrackComp &trackComp, Track &t, AudioNode *input)
 
juce::String createDescriptionOfChannels (const std::vector< ChannelIndex > &)
 Creates a String description of the channels. More...
 
juce::AudioChannelSet createChannelSet (const std::vector< ChannelIndex > &)
 Creates an AudioChannelSet for a list of ChannelIndexes. More...
 
juce::AudioChannelSet::ChannelType channelTypeFromAbbreviatedName (const juce::String &)
 Returns the ChannelType for an abbreviated name. More...
 
juce::AudioChannelSet channelSetFromSpeakerArrangmentString (const juce::String &)
 Creates an AudioChannelSet from a list of abbreviated channel names. More...
 
std::unique_ptr< tracktion::graph::NodecreateNodeForEdit (EditPlaybackContext &, std::atomic< double > &audibleTimeToUpdate, const CreateNodeParams &)
 Creates a Node to play back an Edit with live inputs and outputs. More...
 
std::unique_ptr< tracktion::graph::NodecreateNodeForEdit (Edit &, const CreateNodeParams &)
 Creates a Node to render an Edit. More...
 
void toStart (TransportControl &, const SelectableList &)
 Moves the transport to the start of the selected objects. More...
 
void toEnd (TransportControl &, const SelectableList &)
 Moves the transport to the end of the selected objects. More...
 
void tabBack (TransportControl &)
 Moves the transport back to the previous point of interest. More...
 
void tabForward (TransportControl &)
 Moves the transport forwards to the next point of interest. More...
 
void markIn (TransportControl &)
 Sets the mark in position to the current transport position. More...
 
void markOut (TransportControl &)
 Sets the mark out position to the current transport position. More...
 
void scrub (TransportControl &, double unitsForwards)
 Scrubs back and forth in 'units', where a unit is about 1/50th of the width of the strip window. More...
 
void freePlaybackContextIfNotRecording (TransportControl &)
 Frees the playback context if no recording is in progress, useful for when an app is minimised. More...
 
 AIRWINDOWSPLUGIN (AirWindowsADClip7, "ADClip 7")
 
 AIRWINDOWSPLUGIN (AirWindowsADT, "ADT")
 
 AIRWINDOWSPLUGIN (AirWindowsAQuickVoiceClip, "A Quick Voice Clip")
 
 AIRWINDOWSPLUGIN (AirWindowsAcceleration, "Acceleration")
 
 AIRWINDOWSPLUGIN (AirWindowsAir, "Air")
 
 AIRWINDOWSPLUGIN (AirWindowsAtmosphereBuss, "Atmosphere Buss")
 
 AIRWINDOWSPLUGIN (AirWindowsAtmosphereChannel, "Atmosphere Channel")
 
 AIRWINDOWSPLUGIN (AirWindowsAura, "Aura")
 
 AIRWINDOWSPLUGIN (AirWindowsAverage, "Average")
 
 AIRWINDOWSPLUGIN (AirWindowsBassDrive, "Bass Drive")
 
 AIRWINDOWSPLUGIN (AirWindowsBassKit, "Bass Kit")
 
 AIRWINDOWSPLUGIN (AirWindowsBiquad, "Biquad")
 
 AIRWINDOWSPLUGIN (AirWindowsBiquad2, "Biquad 2")
 
 AIRWINDOWSPLUGIN (AirWindowsBitGlitter, "Bit Glitter")
 
 AIRWINDOWSPLUGIN (AirWindowsBitShiftGain, "Bit Shift Gain")
 
 AIRWINDOWSPLUGIN (AirWindowsBite, "Bite")
 
 AIRWINDOWSPLUGIN (AirWindowsBlockParty, "Block Party")
 
 AIRWINDOWSPLUGIN (AirWindowsBrassRider, "Brass Rider")
 
 AIRWINDOWSPLUGIN (AirWindowsBuildATPDF, "Build ATPDF")
 
 AIRWINDOWSPLUGIN (AirWindowsBussColors4, "Buss Colors 4")
 
 AIRWINDOWSPLUGIN (AirWindowsButterComp, "Butter Comp")
 
 AIRWINDOWSPLUGIN (AirWindowsButterComp2, "Butter Comp 2")
 
 AIRWINDOWSPLUGIN (AirWindowsC5RawBuss, "C5 Raw Buss")
 
 AIRWINDOWSPLUGIN (AirWindowsC5RawChannel, "C5 Raw Channel")
 
 AIRWINDOWSPLUGIN (AirWindowsCStrip, "C Strip")
 
 AIRWINDOWSPLUGIN (AirWindowsCapacitor, "Capacitor")
 
 AIRWINDOWSPLUGIN (AirWindowsChannel4, "Channel 4")
 
 AIRWINDOWSPLUGIN (AirWindowsChannel5, "Channel 5")
 
 AIRWINDOWSPLUGIN (AirWindowsChannel6, "Channel 6")
 
 AIRWINDOWSPLUGIN (AirWindowsChannel7, "Channel 7")
 
 AIRWINDOWSPLUGIN (AirWindowsChorus, "Chorus")
 
 AIRWINDOWSPLUGIN (AirWindowsChorusEnsemble, "Chorus Ensemble")
 
 AIRWINDOWSPLUGIN (AirWindowsClipOnly, "Clip Only")
 
 AIRWINDOWSPLUGIN (AirWindowsCoils, "Coils")
 
 AIRWINDOWSPLUGIN (AirWindowsCojones, "Cojones")
 
 AIRWINDOWSPLUGIN (AirWindowsCompresaturator, "Compresaturator")
 
 AIRWINDOWSPLUGIN (AirWindowsConsole4Buss, "Console 4 Buss")
 
 AIRWINDOWSPLUGIN (AirWindowsConsole4Channel, "Console 4 Channel")
 
 AIRWINDOWSPLUGIN (AirWindowsConsole5Buss, "Console 5 Buss")
 
 AIRWINDOWSPLUGIN (AirWindowsConsole5Channel, "Console 5 Channel")
 
 AIRWINDOWSPLUGIN (AirWindowsConsole5DarkCh, "Console 5 Dark Ch")
 
 AIRWINDOWSPLUGIN (AirWindowsConsole6Buss, "Console 6 Buss")
 
 AIRWINDOWSPLUGIN (AirWindowsConsole6Channel, "Console 6 Channel")
 
 AIRWINDOWSPLUGIN (AirWindowsCrunchyGrooveWear, "Crunchy Groove Wear")
 
 AIRWINDOWSPLUGIN (AirWindowsCrystal, "Crystal")
 
 AIRWINDOWSPLUGIN (AirWindowsDCVoltage, "DC Voltage")
 
 AIRWINDOWSPLUGIN (AirWindowsDeBess, "De Bess")
 
 AIRWINDOWSPLUGIN (AirWindowsDeEss, "De Ess")
 
 AIRWINDOWSPLUGIN (AirWindowsDeHiss, "De Hiss")
 
 AIRWINDOWSPLUGIN (AirWindowsDeRez, "De Rez")
 
 AIRWINDOWSPLUGIN (AirWindowsDeRez2, "De Rez 2")
 
 AIRWINDOWSPLUGIN (AirWindowsDeckwrecka, "Deckwrecka")
 
 AIRWINDOWSPLUGIN (AirWindowsDensity, "Density")
 
 AIRWINDOWSPLUGIN (AirWindowsDesk, "Desk")
 
 AIRWINDOWSPLUGIN (AirWindowsDesk4, "Desk 4")
 
 AIRWINDOWSPLUGIN (AirWindowsDistance, "Distance")
 
 AIRWINDOWSPLUGIN (AirWindowsDistance2, "Distance 2")
 
 AIRWINDOWSPLUGIN (AirWindowsDitherFloat, "Dither Float")
 
 AIRWINDOWSPLUGIN (AirWindowsDitherMeDiskers, "Dither Me Diskers")
 
 AIRWINDOWSPLUGIN (AirWindowsDitherMeTimbers, "Dither Me Timbers")
 
 AIRWINDOWSPLUGIN (AirWindowsDitherbox, "Ditherbox")
 
 AIRWINDOWSPLUGIN (AirWindowsDoublePaul, "Double Paul")
 
 AIRWINDOWSPLUGIN (AirWindowsDrive, "Drive")
 
 AIRWINDOWSPLUGIN (AirWindowsDrumSlam, "Drum Slam")
 
 AIRWINDOWSPLUGIN (AirWindowsDubCenter, "Dub Center")
 
 AIRWINDOWSPLUGIN (AirWindowsDubSub, "Dub Sub")
 
 AIRWINDOWSPLUGIN (AirWindowsDustBunny, "Dust Bunny")
 
 AIRWINDOWSPLUGIN (AirWindowsDyno, "Dyno")
 
 AIRWINDOWSPLUGIN (AirWindowsEQ, "EQ")
 
 AIRWINDOWSPLUGIN (AirWindowsEdIsDim, "Ed Is Dim")
 
 AIRWINDOWSPLUGIN (AirWindowsElectroHat, "Electro Hat")
 
 AIRWINDOWSPLUGIN (AirWindowsEnergy, "Energy")
 
 AIRWINDOWSPLUGIN (AirWindowsEnsemble, "Ensemble")
 
 AIRWINDOWSPLUGIN (AirWindowsEveryTrim, "Every Trim")
 
 AIRWINDOWSPLUGIN (AirWindowsFacet, "Facet")
 
 AIRWINDOWSPLUGIN (AirWindowsFathomFive, "Fathom Five")
 
 AIRWINDOWSPLUGIN (AirWindowsFloor, "Floor")
 
 AIRWINDOWSPLUGIN (AirWindowsFocus, "Focus")
 
 AIRWINDOWSPLUGIN (AirWindowsFracture, "Fracture")
 
 AIRWINDOWSPLUGIN (AirWindowsFromTape, "From Tape")
 
 AIRWINDOWSPLUGIN (AirWindowsGatelope, "Gatelope")
 
 AIRWINDOWSPLUGIN (AirWindowsGolem, "Golem")
 
 AIRWINDOWSPLUGIN (AirWindowsGringer, "Gringer")
 
 AIRWINDOWSPLUGIN (AirWindowsGrooveWear, "Groove Wear")
 
 AIRWINDOWSPLUGIN (AirWindowsGuitarConditioner, "Guitar Conditioner")
 
 AIRWINDOWSPLUGIN (AirWindowsHardVacuum, "Hard Vacuum")
 
 AIRWINDOWSPLUGIN (AirWindowsHermeTrim, "Herme Trim")
 
 AIRWINDOWSPLUGIN (AirWindowsHermepass, "Hermepass")
 
 AIRWINDOWSPLUGIN (AirWindowsHighGlossDither, "High Gloss Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsHighImpact, "High Impact")
 
 AIRWINDOWSPLUGIN (AirWindowsHighpass, "Highpass")
 
 AIRWINDOWSPLUGIN (AirWindowsHighpass2, "Highpass 2")
 
 AIRWINDOWSPLUGIN (AirWindowsHolt, "Holt")
 
 AIRWINDOWSPLUGIN (AirWindowsHombre, "Hombre")
 
 AIRWINDOWSPLUGIN (AirWindowsInterstage, "Interstage")
 
 AIRWINDOWSPLUGIN (AirWindowsIronOxide5, "Iron Oxide 5")
 
 AIRWINDOWSPLUGIN (AirWindowsIronOxideClassic, "Iron Oxide Classic")
 
 AIRWINDOWSPLUGIN (AirWindowsLeftoMono, "Lefto Mono")
 
 AIRWINDOWSPLUGIN (AirWindowsLogical4, "Logical 4")
 
 AIRWINDOWSPLUGIN (AirWindowsLoud, "Loud")
 
 AIRWINDOWSPLUGIN (AirWindowsLowpass, "Lowpass")
 
 AIRWINDOWSPLUGIN (AirWindowsLowpass2, "Lowpass 2")
 
 AIRWINDOWSPLUGIN (AirWindowsMV, "MV")
 
 AIRWINDOWSPLUGIN (AirWindowsMelt, "Melt")
 
 AIRWINDOWSPLUGIN (AirWindowsMidSide, "Mid Side")
 
 AIRWINDOWSPLUGIN (AirWindowsMoNoam, "Mo Noam")
 
 AIRWINDOWSPLUGIN (AirWindowsMojo, "Mojo")
 
 AIRWINDOWSPLUGIN (AirWindowsMonitoring, "Monitoring")
 
 AIRWINDOWSPLUGIN (AirWindowsNCSeventeen, "NC-17")
 
 AIRWINDOWSPLUGIN (AirWindowsNaturalizeDither, "Naturalize Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsNodeDither, "Node Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsNoise, "Noise")
 
 AIRWINDOWSPLUGIN (AirWindowsNonlinearSpace, "Nonlinear Space")
 
 AIRWINDOWSPLUGIN (AirWindowsNotJustAnotherCD, "Not Just Another CD")
 
 AIRWINDOWSPLUGIN (AirWindowsNotJustAnotherDither, "Not Just Another Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsOneCornerClip, "One Corner Clip")
 
 AIRWINDOWSPLUGIN (AirWindowsPDBuss, "PD Buss")
 
 AIRWINDOWSPLUGIN (AirWindowsPDChannel, "PD Channel")
 
 AIRWINDOWSPLUGIN (AirWindowsPafnuty, "Pafnuty")
 
 AIRWINDOWSPLUGIN (AirWindowsPaulDither, "Paul Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsPeaksOnly, "Peaks Only")
 
 AIRWINDOWSPLUGIN (AirWindowsPhaseNudge, "Phase Nudge")
 
 AIRWINDOWSPLUGIN (AirWindowsPocketVerbs, "Pocket Verbs")
 
 AIRWINDOWSPLUGIN (AirWindowsPodcast, "Podcast")
 
 AIRWINDOWSPLUGIN (AirWindowsPodcastDeluxe, "Podcast Deluxe")
 
 AIRWINDOWSPLUGIN (AirWindowsPoint, "Point")
 
 AIRWINDOWSPLUGIN (AirWindowsPop, "Pop")
 
 AIRWINDOWSPLUGIN (AirWindowsPowerSag, "Power Sag")
 
 AIRWINDOWSPLUGIN (AirWindowsPowerSag2, "Power Sag 2")
 
 AIRWINDOWSPLUGIN (AirWindowsPressure4, "Pressure 4")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestAir, "Purest Air")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestConsoleBuss, "Purest Console Buss")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestConsoleChannel, "Purest Console Channel")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestDrive, "Purest Drive")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestEcho, "Purest Echo")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestGain, "Purest Gain")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestSquish, "Purest Squish")
 
 AIRWINDOWSPLUGIN (AirWindowsPurestWarm, "Purest Warm")
 
 AIRWINDOWSPLUGIN (AirWindowsPyewacket, "Pyewacket")
 
 AIRWINDOWSPLUGIN (AirWindowsRawGlitters, "Raw Glitters")
 
 AIRWINDOWSPLUGIN (AirWindowsRawTimbers, "Raw Timbers")
 
 AIRWINDOWSPLUGIN (AirWindowsRecurve, "Recurve")
 
 AIRWINDOWSPLUGIN (AirWindowsRemap, "Remap")
 
 AIRWINDOWSPLUGIN (AirWindowsResEQ, "ResEQ")
 
 AIRWINDOWSPLUGIN (AirWindowsRighteous4, "Righteous 4")
 
 AIRWINDOWSPLUGIN (AirWindowsRightoMono, "Righto Mono")
 
 AIRWINDOWSPLUGIN (AirWindowsSideDull, "Side Dull")
 
 AIRWINDOWSPLUGIN (AirWindowsSidepass, "Sidepass")
 
 AIRWINDOWSPLUGIN (AirWindowsSingleEndedTriode, "Single Ended Triode")
 
 AIRWINDOWSPLUGIN (AirWindowsSlew, "Slew")
 
 AIRWINDOWSPLUGIN (AirWindowsSlew2, "Slew 2")
 
 AIRWINDOWSPLUGIN (AirWindowsSlewOnly, "Slew Only")
 
 AIRWINDOWSPLUGIN (AirWindowsSmooth, "Smooth")
 
 AIRWINDOWSPLUGIN (AirWindowsSoftGate, "Soft Gate")
 
 AIRWINDOWSPLUGIN (AirWindowsSpatializeDither, "Spatialize Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsSpiral, "Spiral")
 
 AIRWINDOWSPLUGIN (AirWindowsSpiral2, "Spiral 2")
 
 AIRWINDOWSPLUGIN (AirWindowsStarChild, "Star Child")
 
 AIRWINDOWSPLUGIN (AirWindowsStereoFX, "Stereo FX")
 
 AIRWINDOWSPLUGIN (AirWindowsStudioTan, "Studio Tan")
 
 AIRWINDOWSPLUGIN (AirWindowsSubsOnly, "Subs Only")
 
 AIRWINDOWSPLUGIN (AirWindowsSurge, "Surge")
 
 AIRWINDOWSPLUGIN (AirWindowsSurgeTide, "Surge Tide")
 
 AIRWINDOWSPLUGIN (AirWindowsSwell, "Swell")
 
 AIRWINDOWSPLUGIN (AirWindowsTPDFDither, "TPDF Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsTapeDelay, "Tape Delay")
 
 AIRWINDOWSPLUGIN (AirWindowsTapeDither, "Tape Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsTapeDust, "Tape Dust")
 
 AIRWINDOWSPLUGIN (AirWindowsTapeFat, "Tape Fat")
 
 AIRWINDOWSPLUGIN (AirWindowsThunder, "Thunder")
 
 AIRWINDOWSPLUGIN (AirWindowsToTape5, "To Tape 5")
 
 AIRWINDOWSPLUGIN (AirWindowsToVinyl4, "To Vinyl 4")
 
 AIRWINDOWSPLUGIN (AirWindowsToneSlant, "Tone Slant")
 
 AIRWINDOWSPLUGIN (AirWindowsTransDesk, "Trans Desk")
 
 AIRWINDOWSPLUGIN (AirWindowsTremolo, "Tremolo")
 
 AIRWINDOWSPLUGIN (AirWindowsTubeDesk, "Tube Desk")
 
 AIRWINDOWSPLUGIN (AirWindowsUnBox, "Un Box")
 
 AIRWINDOWSPLUGIN (AirWindowsVariMu, "Vari Mu")
 
 AIRWINDOWSPLUGIN (AirWindowsVibrato, "Vibrato")
 
 AIRWINDOWSPLUGIN (AirWindowsVinylDither, "Vinyl Dither")
 
 AIRWINDOWSPLUGIN (AirWindowsVoiceOfTheStarship, "Voice Of The Starship")
 
 AIRWINDOWSPLUGIN (AirWindowsVoiceTrick, "Voice Trick")
 
 AIRWINDOWSPLUGIN (AirWindowsWider, "Wider")
 
 AIRWINDOWSPLUGIN (AirWindowscurve, "curve")
 
 AIRWINDOWSPLUGIN (AirWindowsuLawDecode, "u Law Decode")
 
 AIRWINDOWSPLUGIN (AirWindowsuLawEncode, "u Law Encode")
 
juce::String createIdentifierString (const juce::PluginDescription &)
 
SearchOperationcreateSearchForKeywords (const juce::String &keywords)
 Turns a keyword string into a search condition tree. More...
 
template<typename SelectableType >
SafeSelectable< SelectableType > makeSafeRef (SelectableType &selectable)
 Creates a SafeSelectable for a given selectable insatnce. More...
 
bool callBlocking (std::function< void()> f)
 
float dbToGain (float db) noexcept
 
float gainToDb (float gain) noexcept
 
juce::String gainToDbString (float gain, float infLevel=-96.0f, int decPlaces=2)
 
float dbStringToDb (const juce::String &dbStr)
 
float dbStringToGain (const juce::String &dbStr)
 
juce::String getPanString (float pan)
 
juce::String getSemitonesAsString (double semitones)
 
template<typename FloatType >
FloatType midiNoteToFrequency (FloatType midiNote)
 
template<typename FloatType >
FloatType frequencyToMidiNote (FloatType freq)
 
void sanitiseValues (juce::AudioBuffer< float > &, int startSample, int numSamples, float maxAbsValue, float minAbsThreshold=1.0f/262144.0f)
 
void addAntiDenormalisationNoise (juce::AudioBuffer< float > &, int start, int numSamples) noexcept
 
void resetFP () noexcept
 
bool hasFloatingPointDenormaliseOccurred () noexcept
 
void zeroDenormalisedValuesIfNeeded (juce::AudioBuffer< float > &) noexcept
 
bool isAudioDataAlmostSilent (const float *data, int num)
 
float getAudioDataMagnitude (const float *data, int num)
 
void convertIntsToFloats (juce::AudioBuffer< float > &)
 
void convertFloatsToInts (juce::AudioBuffer< float > &)
 
void yieldGUIThread () noexcept
 
template<typename SampleType >
choc::buffer::BufferView< SampleType, choc::buffer::SeparateChannelLayout > toBufferView (juce::AudioBuffer< SampleType > &buffer)
 Converts a juce::AudioBuffer<SampleType> to a choc::buffer::BufferView. More...
 
PanLaw getDefaultPanLaw () noexcept
 
void setDefaultPanLaw (PanLaw)
 
juce::StringArray getPanLawChoices (bool includeDefault) noexcept
 
float decibelsToVolumeFaderPosition (float dB) noexcept
 
float volumeFaderPositionToDB (float position) noexcept
 
float volumeFaderPositionToGain (float position) noexcept
 
float gainToVolumeFaderPosition (float gain) noexcept
 
void getGainsFromVolumeFaderPositionAndPan (float volSliderPos, float pan, PanLaw lawToUse, float &leftGain, float &rightGain) noexcept
 
void clearChannels (juce::AudioBuffer< float > &buffer, int startChannel, int endChannel=-1, int startSample=0, int endSample=-1)
 
juce::PropertiesFile * getApplicationSettings ()
 
juce::AudioPlayHead::CurrentPositionInfo getCurrentPositionInfo (Edit &)
 Converts an Edit's internal transport information to a juce::AudioPlayHead::CurrentPositionInfo. More...
 
void synchroniseEditPosition (Edit &, const juce::AudioPlayHead::CurrentPositionInfo &)
 Syncs an Edit's transport and tempo sequence to a juce AudioPlayHead. More...
 
bool isMidiFile (const juce::File &)
 
bool isTracktionEditFile (const juce::File &)
 
bool isTracktionArchiveFile (const juce::File &)
 
bool isTracktionProjectFile (const juce::File &)
 
bool isTracktionPresetFile (const juce::File &)
 
juce::File getNonExistentSiblingWithIncrementedNumberSuffix (const juce::File &, bool addHashSymbol)
 
void addSortedListToMenu (juce::PopupMenu &m, juce::StringArray names, int startID)
 
juce::AffineTransform getScaleAroundCentre (juce::Rectangle< float > r, float numPixels)
 
void moveXMLAttributeToStart (juce::XmlElement &xml, juce::StringRef att)
 
template<typename Vector , typename Predicate >
bool removeIf (Vector &v, Predicate &&pred)
 
template<typename FloatingPointType >
bool almostEqual (FloatingPointType firstValue, FloatingPointType secondValue, FloatingPointType precision=(FloatingPointType) 0.00001)
 Checks to see if two values are equal within a given precision. More...
 
template<typename Type >
bool matchesAnyOf (const Type &needle, const std::initializer_list< Type > &haystack)
 Returns true if the needle is found in the haystack. More...
 
template<typename Type , typename UnaryFunction >
void forEachItem (const juce::Array< Type * > &items, const UnaryFunction &fn)
 Calls a function object on each item in an array. More...
 
template<typename... Others>
void addValueTreeProperties (juce::ValueTree &v, const juce::Identifier &name, const juce::var &value, Others &&... others)
 
template<typename... Properties>
juce::ValueTree createValueTree (const juce::Identifier &name, Properties &&... properties)
 
juce::Array< juce::ValueTree > & removeInvalidValueTrees (juce::Array< juce::ValueTree > &trees)
 Strips out any invalid trees from the array. More...
 
juce::Array< juce::ValueTree > getTreesOfType (const juce::Array< juce::ValueTree > &trees, const juce::Identifier &type)
 Returns a new array with any trees without the given type removed. More...
 
void getChildTreesRecursive (juce::Array< juce::ValueTree > &result, const juce::ValueTree &tree)
 
void renamePropertyRecursive (juce::ValueTree &tree, const juce::Identifier &oldName, const juce::Identifier &newName, juce::UndoManager *um)
 
template<typename NodeType , typename... Args>
std::unique_ptr< NodemakeNode (Args &&... args)
 Creates a node of the given type and returns it as the base Node class. More...
 
bool operator< (NodeAndID n1, NodeAndID n2)
 Compares two NodeAndIDs. More...
 
bool operator== (NodeAndID n1, NodeAndID n2)
 Compares two NodeAndIDs. More...
 
std::unique_ptr< NodeGraphcreateNodeGraph (std::unique_ptr< Node >)
 Transforms a Node and then returns a NodeGraph of it ready to be initialised. More...
 
template<typename Visitor >
void visitNodes (Node &, Visitor &&, bool preordering)
 Should call the visitor for any direct inputs to the node exactly once. More...
 
template<typename Visitor >
void visitNodesBFS (Node &node, Visitor &&visitor)
 
void addNodesRecursive (std::vector< NodeAndID > &nodeMap, Node &n)
 
std::vector< NodeAndIDcreateNodeMap (const std::vector< Node * > &nodes)
 
LockFreeMultiThreadedNodePlayer::ThreadPoolCreator getPoolCreatorFunction (ThreadPoolStrategy)
 Returns a function to create a ThreadPool for the given stategy. More...
 
template<typename IntType >
constexpr double sampleToTime (IntType samplePosition, double sampleRate)
 Converts an integer sample number to a time in seconds. More...
 
constexpr int64_t timeToSample (double timeInSeconds, double sampleRate)
 Converts a time in seconds to a sample number. More...
 
template<typename IntType >
constexpr juce::Range< double > sampleToTime (juce::Range< IntType > sampleRange, double sampleRate)
 Converts an integer sample range to a time range in seconds. More...
 
constexpr juce::Range< int64_t > timeToSample (juce::Range< double > timeInSeconds, double sampleRate)
 Converts a time range in seconds to a range of sample numbers. More...
 
template<typename RangeType >
constexpr juce::Range< int64_t > timeToSample (RangeType timeInSeconds, double sampleRate)
 Converts a time range in seconds to a range of sample numbers. More...
 
template<typename NodeType , typename Predicate >
NodeType * findNode (NodeGraph &nodeGraph, Predicate pred)
 Attempts to find a Node of a given type with a specified ID. More...
 
template<typename NodeType >
NodeType * findNodeWithID (NodeGraph &nodeGraph, size_t nodeIDToLookFor)
 Attempts to find a Node of a given type with a specified ID. More...
 
template<typename NodeType >
NodeType * findNodeWithIDIfNonZero (NodeGraph *nodeGraph, size_t nodeIDToLookFor)
 Attempts to find a Node of a given type with a specified ID. More...
 
juce::AudioBuffer< float > toAudioBuffer (choc::buffer::ChannelArrayView< float > view)
 Creates a juce::AudioBuffer from a choc::buffer::BufferView. More...
 
template<typename SampleType >
choc::buffer::BufferView< SampleType, choc::buffer::SeparateChannelLayout > toBufferView (juce::AudioBuffer< SampleType > &buffer)
 Converts a juce::AudioBuffer<SampleType> to a choc::buffer::BufferView. More...
 
juce::MidiMessage toMidiMessage (const choc::midi::Sequence::Event &e)
 Converts a choc::midi event to a juce::MidiMessage. More...
 
template<typename BufferViewType , typename SampleType , typename SmoothingType >
void multiplyBy (BufferViewType &view, juce::SmoothedValue< SampleType, SmoothingType > &value) noexcept
 Mutiplies a choc::buffer::BufferView by a juce::SmoothedValue. More...
 
choc::buffer::FrameRange frameRangeWithStartAndLength (choc::buffer::FrameCount start, choc::buffer::FrameCount length)
 Returns a FrameRange with a start and length. More...
 
choc::buffer::ChannelRange channelRangeWithStartAndLength (choc::buffer::ChannelCount start, choc::buffer::ChannelCount length)
 Returns a ChannelRange with a start and length. More...
 
template<typename SampleType , template< typename > typename LayoutType>
void sanityCheckView (const choc::buffer::BufferView< SampleType, LayoutType > &view)
 Checks that the channels have valid pointers if they have a non-zero number of frames. More...
 
bool setThreadPriority (std::thread &, int priority)
 Changes the thread's priority. More...
 

Variables

const char *const projectFileSuffix = ".tracktion"
 
const char *const editFileSuffix = ".tracktionedit"
 
const char *const legacyEditFileSuffix = ".trkedit"
 
const char *const archiveFileSuffix = ".trkarch"
 
const char *const soundFileWildCard = "*.wav;*.aiff;*.aif;*.ogg;*.mp3;*.flac;*.au;*.voc;*.caf;*.w64;*.rx2;*.rcy;*.rex;*.wfaf"
 
const char *const soundFileAndMidiWildCard = "*.wav;*.aiff;*.aif;*.ogg;*.mp3;*.mid;*.midi;*.flac;*.au;*.voc;*.caf;*.w64;*.rx2;*.rcy;*.rex;*.wfaf"
 
const char *const midiFileWildCard = "*.midi;*.mid"
 
const char *const keyMapWildCard = "*.tracktionkeys"
 
const char *const keyMapSuffix = ".tracktionkeys"
 
const char *const customControllerFileSuffix = ".trkctrlr"
 
const char *const customProgramSetWildcard = "*.trkmidi;*.midnam"
 
const char *const customProgramSetFileSuffix = ".trkmidi"
 
const char *const presetFileSuffix = ".trkpreset"
 
const char *const rackFileSuffix = ".trkrack"
 
const char *const scriptFileSuffix = ".tracktionscript"
 
const char *const grooveTemplateSuffix = ".trkgroove"
 
const char *const grooveTemplateWildCard = "*.trkgroove"
 

Detailed Description


Aims:


Notes:


Initialisation:

Avoiding incontinuities when latency changes:

Buffer optimisation: