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

« « « Anklang Documentation
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
tracktion Namespace Reference

Namespaces

namespace  ClipConstants
 Constraints for clip speeds.
 
namespace  engine
 Declarations from this namespaces are inlined into tracktion.
 

Classes

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...
 
struct  ActiveEdits
 A list of all currently open edits. More...
 
struct  ActiveNoteList
 
struct  AddingFadeApplier
 
struct  AggregateJob
 
struct  AndOperation
 
struct  ARAClipPlayer
 
struct  ARADocumentHolder
 
class  ArrangerClip
 
class  ArrangerLauncherSwitchingNode
 A Node that switches between two of its inputs based on a flag. More...
 
class  ArrangerTrack
 A track similar to the MarkerTrack but can be used to move sections of an Edit around. More...
 
struct  AsyncCaller
 Asyncronously call a function. More...
 
struct  AsyncFunctionCaller
 Holds a list of function objects and enables you to call them asyncronously. More...
 
struct  AsyncPluginDeleter
 
struct  AtomicWrapper
 Wraps an atomic with an interface compatible with var so it can be used within CachedValues in a thread safe way. More...
 
class  AudioBufferPool
 A lock-free pool of audio buffers. More...
 
class  AudioBufferSnapshot
 
class  AudioBufferStack
 A stack of audio buffers. More...
 
class  AudioClipBase
 Base class for Clips that produce some kind of audio e.g. More...
 
struct  AudioFadeCurve
 
class  AudioFifo
 
class  AudioFile
 
class  AudioFileCache
 
class  AudioFileCacheReader
 
class  AudioFileFormatManager
 Keeps a list of available wave formats and can create a format object for a file. More...
 
struct  AudioFileInfo
 
class  AudioFileManager
 
struct  AudioFileUtils
 
class  AudioFileWriter
 Smart wrapper for writing to an audio file. More...
 
class  AudioMidiFifo
 
class  AudioNode
 Base class for nodes in an audio playback graph. More...
 
struct  AudioNodeProperties
 Holds some really basic properties of a node. More...
 
struct  AudioNodeRenderJob
 Takes an AudioNode and renders it to a file. More...
 
struct  AudioProcessorEditorContentComp
 
class  AudioProxyGenerator
 
class  AudioReader
 Base class for audio based readers that can be chained together. More...
 
struct  AudioRenderContext
 Rendering target info. More...
 
class  AudioScratchBuffer
 An audio scratch buffer that has pooled storage. More...
 
class  AudioSegmentList
 Holds a list of audio regions for playback of things like warp time. More...
 
class  AudioTrack
 
class  AutomatableEditItem
 Base class for elements that have some kind of automatable parameters. More...
 
class  AutomatableParameter
 
class  AutomatableParameterTree
 
class  AutomationCurve
 
class  AutomationCurveSource
 
class  AutomationDragDropTarget
 Components can implement this to let things know which automatable parameter they control. More...
 
struct  AutomationIterator
 
struct  AutomationModifierSource
 
class  AutomationRecordManager
 Stores automation data as it's being read in, and writes it back to the edit when recording finishes. More...
 
struct  AutomationSource
 
class  AutomationTrack
 
class  AuxReturnPlugin
 
class  AuxSendNode
 Node for an aux send. More...
 
class  AuxSendPlugin
 
class  BackgroundJobManager
 Manages a set of background tasks that can be run concurrently on a background thread. More...
 
class  BandlimitedWaveLookupTables
 
struct  BankSet
 
class  BasicSummingNode
 
struct  BassNote
 
struct  BeatDetect
 
struct  BeatDuration
 Represents a duration in beats. More...
 
struct  BeatPosition
 Represents a position in beats. More...
 
class  BeatRangeReader
 N.B. More...
 
class  Benchmark
 An indiviual Benchmark. More...
 
struct  BenchmarkDescription
 Describes a benchmark. More...
 
class  BenchmarkList
 Contans a list of BenchmarkResult[s]. More...
 
struct  BenchmarkResult
 Holds the duration a benchmark took to run. More...
 
struct  BlockBasedRenderJob
 
struct  BlockingFunction
 
class  BreakpointOscillatorModifier
 
class  BufferedAudioFileManager
 
class  BufferedAudioReader
 
class  BufferedFileReader
 
class  BufferedFileReaderWrapper
 
class  BufferingAudioReaderWrapper
 FallbackReader that wraps a BufferingAudioReader to avoid reading on the audio thread. More...
 
struct  CacheAudioFormatReader
 
class  CachingMidiEventGenerator
 
struct  ChannelConnection
 
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...
 
class  ChannelRemappingNode
 Maps channels from one to another. More...
 
class  Chord
 
class  ChordClip
 
struct  ChordNote
 
class  ChordTrack
 
class  ChorusPlugin
 
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  Clip
 A clip in an edit. More...
 
class  Clipboard
 
class  ClipEffect
 
class  ClipEffects
 
struct  ClipLevel
 Holds a clip's level state. More...
 
class  ClipOwner
 Base class for items that can contain clips. More...
 
struct  ClipPosition
 Represents the position of a clip on a timeline. More...
 
class  ClipSlot
 Represents a slot on a track that a Clip can live in to be played as a launched clip. More...
 
class  ClipSlotList
 A list of the ClipSlots on a Track. More...
 
class  ClipTrack
 
class  CollectionClip
 
struct  ColourArea
 An area of the edit currently control by a control surface. More...
 
class  CombiningAudioNode
 An AudioNode that mixes a sequence of clips of other nodes. More...
 
class  CombiningNode
 An Node that mixes a sequence of clips of other nodes. More...
 
class  CompFactory
 
class  CompGeneratorJob
 
class  CompManager
 
class  CompressorPlugin
 
class  ConnectedNode
 An Node which sums together the multiple inputs adding additional latency to provide a coherent output. More...
 
class  ConstrainedCachedValue
 A CachedValue that can take a std::function to constrain its value. More...
 
class  ContainerClip
 A clip that can contain multiple other clips and mix their output together. More...
 
class  ContainerClipNode
 
class  ControlSurface
 Base class for types of control surface. More...
 
struct  CrashStackTracer
 Used by the CRASH_TRACER macros to help provide a useful crash log of the stack. More...
 
struct  CreateAudioNodeParams
 A collection of settings that are generally needed when asking edit model objects to create AudioNodes to render them. More...
 
struct  CreateNodeParams
 Contains options for Edit Node content creation. More...
 
class  CurveEditor
 
class  CurveEditorPoint
 
struct  CurvePoint
 
class  CustomControlSurface
 
struct  CustomScanner
 
struct  DbTimePair
 
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  DelayBufferBase
 
class  DelayPlugin
 
class  DeviceManager
 
struct  Differentiator
 
struct  DiscreteLabelledParameter
 
class  DiskSpaceCheckTask
 
struct  Ditherer
 An extremely naive ditherer. More...
 
struct  Ditherers
 
struct  DummyConstrainer
 Dummy constrainer which should optimise away to nothing. More...
 
class  DynamicallyOffsettableNodeBase
 
class  DynamicOffsetNode
 
class  Edit
 The Tracktion Edit class! More...
 
class  EditClip
 This is the main source of an Edit clip and is responsible for managing its properties. More...
 
struct  EditDeleter
 Deferred Edit object deleter. More...
 
class  EditFileOperations
 Contains methods for saving an Edit to a file. More...
 
class  EditInputDevices
 
class  EditInsertPoint
 An EditInsertPoint is like a "paste location". More...
 
class  EditItem
 Base class for objects that live inside an edit - e.g. More...
 
struct  EditItemCache
 
struct  EditItemID
 ID for objects of type EditElement - e.g. More...
 
struct  EditLimits
 Contains the limits of the various elements that can be added to an Edit. More...
 
struct  EditNodeBuilder
 
class  EditPlaybackContext
 
class  EditReader
 
class  EditRenderJob
 
class  EditSnapshot
 Holds a snapshot of an Edit file of the last time it was saved. More...
 
struct  EditSnapshotList
 
struct  EditTime
 Represents a time point in an Edit stored as either time or beats. 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...
 
struct  EditTimeRange
 Represents a time range in an Edit stored as either time or beats. More...
 
class  EditToClipBeatReader
 
class  EditToClipTimeReader
 
class  Engine
 The Engine is the central class for all tracktion sessions. More...
 
class  EngineBehaviour
 Provides custom handlers to control various aspects of the engine's behaviour. More...
 
class  EnvelopeFollowerModifier
 
class  EqualiserPlugin
 
struct  EventGenerator
 
class  ExpEnvelope
 
class  Exportable
 An interface for objects within an edit that can be exported. More...
 
class  ExportJob
 
class  ExternalAutomatableParameter
 
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  ExternalPlayheadSynchroniser
 An ExternalPlayheadSynchroniser is used to synchronise the internal Edit's playhead with an AudioProcessor, for use in plugins. More...
 
class  ExternalPlugin
 
class  ExtractionTask
 
class  FadeInOutAudioNode
 An AudioNode that fades its input node in/out at given times. More...
 
struct  FadeInOutEffect
 
class  FadeInOutNode
 A Node that fades in and out given time regions. More...
 
struct  FallbackReader
 
struct  FalseOperation
 
struct  FileDragList
 
class  FloatAudioFormat
 A raw, proprietary, simple floating point format used for freeze files, etc. More...
 
class  FloatAudioFormatReader
 
class  FloatAudioFormatWriter
 
class  FOChorus
 
class  FODelay
 
class  FODelayLine
 
class  FolderTrack
 
class  ForwardingNode
 Takes a non-owning input node and simply forwards its outputs on. More...
 
class  FourOscPlugin
 
class  FourOscVoice
 
class  FreezePointPlugin
 
class  FunctionNode
 
class  GainNode
 
class  GeneratorAndNoteList
 
class  GrooveTemplate
 
class  GrooveTemplateManager
 Looks after the list of groove templates. More...
 
struct  HertzTag
 
class  HighQualityResamplerReader
 
class  HoldingNode
 Takes ownership of a number of nodes but doesn't do any processing. More...
 
class  HostedAudioDevice
 
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...
 
class  HostedAudioDeviceType
 
class  HostedMidiInputDevice
 
class  HostedMidiInputDeviceNode
 A Node that intercepts MIDI from a plugin callback and inserts it in to the playback graph. More...
 
class  HostedMidiOutputDevice
 
struct  IDRemapping
 
class  ImpulseResponsePlugin
 ImpulseResponsePlugin that loads an impulse response and applies it the audio stream. More...
 
struct  IndexedWord
 
class  InputDevice
 Represents an input device. More...
 
class  InputDeviceInstance
 An instance of an InputDevice that's available to an Edit. More...
 
class  InputNode
 
struct  InputProvider
 
class  InputProviderFillerNode
 Fills an InputProvider with output from a Node. More...
 
class  InsertNode
 
class  InsertPlugin
 
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...
 
struct  InvertEffect
 
struct  KeyResult
 
class  LagrangeResamplerReader
 
class  LambdaSelectableListener
 A SelectableListener that safely handles listener to a Selectable and uses a lambda for its callback. More...
 
class  LambdaTimer
 
class  LAMEManager
 Manages the LAME location property and an AudioFormat if the LAME encoder is provided. More...
 
class  LatencyNode
 
class  LatencyPlugin
 A test plugin that introduces latency to the incomming signal. More...
 
struct  LatencyProcessor
 
class  LauncherClipPlaybackHandle
 
class  LaunchHandle
 A handle used to control the launching of a clip. More...
 
class  LaunchQuantisation
 Represents a launch quantisation. More...
 
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  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  LevelMeterPlugin
 
class  LFOModifier
 
class  LightweightSemaphore
 A counting semaphore that spins on a atomic before waiting so will avoid system calls if wait periods are very short. More...
 
class  LinEnvelope
 
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  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  LockFreeMultiThreadedNodePlayer
 Plays back a node with mutiple threads. More...
 
class  LockFreeObject
 Manages access to an object in a way that means it is lock-free to access from a real-time thread. More...
 
class  LoopedMidiEventGenerator
 
class  LoopInfo
 Holds tempo/beat information about an audio file. More...
 
class  LoopingMidiNode
 A Node that plays MIDI data from a MidiMessageSequence, at a specific MIDI channel. More...
 
class  LoopReader
 
class  LowPassPlugin
 
class  MacroParameter
 A MacroParameter is an AutomatableParameter which is a collection of Mappings. More...
 
class  MacroParameterElement
 Base class for elements which can contain macro parameters. More...
 
class  MacroParameterList
 
struct  MacroSource
 
struct  MakeMonoEffect
 
class  MarkerClip
 
class  MarkerManager
 
struct  MarkerSetting
 
class  MarkerTrack
 
struct  MasterPanParameter
 
class  MasterTrack
 A track to represent the master plugins. More...
 
struct  MasterVolParameter
 
class  MelodyneFileReader
 
class  MelodyneNode
 Plays back a Melodyne plugin. More...
 
struct  MemoryMappedFileReader
 FallbackReader that wraps a MemoryMappedFile which usually improves read speeds. More...
 
class  MemoryMappedFloatReader
 
class  MessageThreadCallback
 Calls a function on the message thread checking a calling thread for an exit signal. More...
 
class  MidiAssignable
 Base class for things that can be assigned to external control surfaces, not plugin paramters. More...
 
struct  MidiChannel
 Represents a MIDI channel 1-16, and also contains extra ID bits to encode info about the event's origin. More...
 
class  MidiClip
 
class  MidiClockGenerator
 
class  MidiCompManager
 
class  MidiControllerEvent
 
class  MidiControllerParser
 
struct  MidiExpression
 
class  MidiGenerator
 
struct  MidiID
 
class  MidiInputDevice
 
class  MidiInputDeviceInstanceBase
 
class  MidiInputDeviceNode
 A Node that intercepts incoming live MIDI and inserts it in to the playback graph. More...
 
class  MidiLearnState
 Manages the Midi learn state and Listener interface to notify subclasses when the state changes. More...
 
class  MidiList
 
struct  MidiMessageArray
 
class  MidiModifierPlugin
 
class  MidiNode
 A Node that plays MIDI data from a MidiMessageSequence, at a specific MIDI channel. More...
 
class  MidiNote
 
class  MidiNoteDispatcher
 
class  MidiOutputDevice
 
class  MidiOutputDeviceInstance
 
class  MidiOutputDeviceInstanceInjectingNode
 A Node that injects the MIDI buffer of its input to the MidiOutputDevice. More...
 
class  MidiPatchBayPlugin
 
class  MidiProgramManager
 
class  MidiSysexEvent
 
class  MidiTimecodeGenerator
 
struct  MidiTimecodeReader
 
class  MIDITrackerModifier
 
struct  Modifier
 Bass class for parameter Modifiers. More...
 
struct  ModifierAutomationSource
 
class  ModifierList
 Holds a list of Modifiers that have been added to a Track. More...
 
class  ModifierNode
 Node for processing a Modifier. More...
 
struct  ModifierTimer
 Base class for objects which need to know about the global Edit time every block. More...
 
struct  MonotonicBeat
 
struct  MonotonicBeatRange
 
class  MouseHoverDetector
 
class  MPEChannelAssigner
 Determines the channels to assign to overlapping notes. More...
 
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  MPEtoNoteExpression
 Creates a MidiList with NoteExpression from a stream of MPE MIDI messages. More...
 
struct  MultipleNewIDGenerator
 
class  MultipleWriterSeqLock
 Wraps a seqlock to allow a thread-safe object with wait-free reads with respect to each other. More...
 
class  MultiThreadedNodePlayer
 Plays back a Node with PlayHeadState and ProcessState. More...
 
class  MultiVoiceOscillator
 
struct  MuteAudioNode
 
class  Node
 Main graph Node processor class. More...
 
struct  NodeAndID
 A Node and its ID cached for quick lookup (without having to traverse the graph). More...
 
struct  NodeBuffer
 Holds a view over some data and optionally some storage for that data. More...
 
struct  NodeGraph
 Holds a graph in an order ready for processing and a sorted map for quick lookups. More...
 
struct  NodeOptimisations
 Holds some hints that might be used by the Node or players to improve efficiency. More...
 
class  NodePlayer
 Simple player for an Node. More...
 
struct  NodeProperties
 Holds some really basic properties of a node. More...
 
class  NodeRenderContext
 Holds the state of an audio render procedure so it can be rendered in blocks. More...
 
struct  NormaliseEffect
 
struct  NotOperation
 
class  OffsetMidiEventGenerator
 
struct  OldEditConversion
 Logic for reading legacy tracktion edit files. More...
 
struct  OneChannelDestination
 
struct  OrOperation
 
class  Oscillator
 
class  OutputDevice
 Base class for audio or midi output devices, to which a track's output can be sent. More...
 
class  OutputDeviceInstance
 
struct  PanAutomatableParameter
 
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  ParameterisableDragDropSource
 
struct  ParameterSetting
 
class  PatchBayPlugin
 
class  PatternGenerator
 
class  PerformanceMeasurement
 A timer for measuring performance of code. More...
 
class  PhaserPlugin
 
class  PhysicalMidiInputDevice
 
struct  PhysicalMidiInputDeviceInstance
 
struct  Pitch
 
class  PitchAdjustReader
 
class  PitchSequence
 
class  PitchSetting
 
struct  PitchShiftEffect
 
class  PitchShiftPlugin
 
struct  PlaybackInitialisationInfo
 Passed into AudioNodes when they are being initialised, to give them useful contextual information that they may need. More...
 
class  PlayHead
 
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  PlayHeadState
 Determines how this block releates to other previous render blocks and if the play head has jumped in time. More...
 
class  Plugin
 
class  PluginAudioNode
 
class  PluginCache
 
struct  PluginComponent
 Components that represent a Plugin should inherit from this to ensure they are correctly notified when their colour changes e.g. More...
 
struct  PluginCreationInfo
 
struct  PluginEffect
 
struct  PluginInitialisationInfo
 Passed into Plugins when they are being initialised, to give them useful contextual information that they may need. More...
 
class  PluginList
 Holds a sequence of plugins. More...
 
class  PluginManager
 
class  PluginNode
 Node for processing a plugin. More...
 
struct  PluginRenderContext
 The context passed to plugin render methods to provide it with buffers to fill. More...
 
struct  PluginScanMasterProcess
 
struct  PluginScanSlaveProcess
 
struct  PluginUnloadInhibitor
 
struct  PluginWetDryAutomatableParam
 specialised AutomatableParameter for wet/dry. More...
 
struct  PluginWindowState
 
struct  ProcessState
 Holds the state of a process call. More...
 
struct  ProgramSet
 
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...
 
struct  ProjectItemPastingOptions
 
class  ProjectManager
 
class  ProjectSearchIndex
 
class  PropertyStorage
 Create a subclass of PropertyStorage to customize how settings are saved and recalled. More...
 
class  ProxyGeneratorJob
 
class  QuantisationType
 
struct  QuantisationTypeInfo
 
struct  RackConnection
 
struct  RackInputAutomatableParameter
 
class  RackInstance
 
class  RackInstanceNode
 Sends an input Node to a Rack bus handling the channel mapping and channel gain levels. More...
 
class  RackNodePlayer
 Simple processor for a Node which uses an InputProvider to pass input in to the graph. More...
 
struct  RackOutputAutomatableParameter
 
class  RackReturnNode
 Sends an input Node to a Rack bus handling the channel mapping and channel gain levels. More...
 
class  RackType
 
class  RackTypeList
 
struct  RackWetDryAutomatableParam
 
struct  Ramp
 A ramp which goes between 0 and 1 over a set duration. More...
 
class  RandomModifier
 
struct  RangeType
 Describes a range of two positions with a duration separating them. More...
 
class  ReadAheadTimeStretchReader
 
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  RecordingThumbnailManager
 Holds a pool of Thumbnails that are populated whilst recording. More...
 
class  RecordStopper
 Polls a set of targets to see if they should be stopped. More...
 
class  ReferenceCountedValueTree
 Holds a ValueTree as a ReferenceCountedObject. More...
 
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  ResamplerReader
 
struct  RetrospectiveMidiBuffer
 
struct  RetrospectiveRecordBuffer
 
class  ReturnNode
 
class  ReverbPlugin
 
struct  ReverseEffect
 
class  ReverseRenderJob
 
class  RunningRMS
 Calculates the RMS of a continuous signal. More...
 
class  SafeScopedListener
 Manages adding and removing listeners in an RAII way so you don't forget to unregister a listener. More...
 
class  SafeSelectable
 Holds a pointer to some type of Selectable, which automatically becomes null if the selectable is deleted. More...
 
class  SampleFader
 
struct  SampleRateAndBlockSize
 
class  SamplerPlugin
 
class  Scale
 
class  Scene
 A Scene is a collection of ClipSlots across tracks. More...
 
class  SceneList
 Represents the Scenes in an Edit. More...
 
class  SceneWatcher
 Notifies UI components of changes to the scenes and clips. More...
 
struct  ScopedBenchmark
 Helper class for measuring a benchmark and adding it to the singleton BenchmarkList list. More...
 
struct  ScopedCpuMeter
 
struct  ScopedDirectoryDeleter
 
class  ScopedListener
 Manages adding and removing listeners in an RAII way so you don't forget to unregister a listener. More...
 
struct  ScopedMeasurement
 Helper class for starting/stopping a benchmark measurement. More...
 
class  ScopedPerformanceMeasurement
 RAII wrapper to start and stop a performance measurement. More...
 
struct  ScopedPluginUnloadInhibitor
 
struct  ScopedSignpost
 A macOS specific class to start/stop a signpost for use in Instruments. More...
 
class  ScopedWaitCursor
 Shows and hides the mouse wait cursor where appropriate. More...
 
class  SearchOperation
 
struct  SectionSorter
 
class  Selectable
 Base class for things that can be selected, and whose properties can appear in the properties panel. More...
 
class  SelectableClass
 Represents a type of object that can be selected. More...
 
class  SelectableClassWithPan
 
class  SelectableClassWithVolume
 
struct  SelectableList
 A list of Selectables, similar to a juce::Array but contains a cached list of the SelectableClasses for each entry. More...
 
class  SelectableListener
 
struct  SelectableUpdateTimer
 
struct  SelectedChannelIndex
 
class  SelectedMidiEvents
 Represents a set of selected MIDI notes. More...
 
struct  SelectedPluginIndex
 
class  SelectionManager
 Manages a list of items that are currently selected. More...
 
class  Semaphore
 A basic counting semaphore. More...
 
class  SendNode
 
struct  SharedEditFileDataCache
 
class  SharedLevelMeasurer
 A shared level measurer that can be used by several threads to provide a total output level. More...
 
class  SharedLevelMeasuringNode
 Applies a SharedLevelMeter to the audio passing through this node. More...
 
class  SharedTimer
 
class  SilentNode
 Just a simple audio node that doesn't take any input so can be used as a stub. More...
 
class  SimpleLFO
 
class  SimpleNodePlayer
 Simple player for a Node. More...
 
class  SingleInputAudioNode
 
class  SingleInputAudioReader
 
class  SinkNode
 Blocks audio and MIDI input from reaching the outputs. More...
 
class  SinNode
 
class  SlotControlNode
 
class  SmartThumbnail
 SmartThumnail automatically tracks changes to an AudioFile and will update its cache if the file changes. More...
 
class  SoftwareMidiOutputDevice
 Create a software midi port on macOS. More...
 
struct  SortedValueTreeObjectList
 
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...
 
struct  SpeedFadeDescription
 Describes the time and type of the speed fade in/outs. More...
 
class  SpeedFadeEditReader
 
class  SpeedRampAudioNode
 An AudioNode that speeds up and slows down its input node in/out at given times. More...
 
class  SpeedRampWaveNode
 An Node that plays back a wave file. More...
 
struct  Spline
 An interpolated spline curve, used by the EQ to draw its response graph. More...
 
struct  SplitTimelineRange
 Represents a pair of timeline ranges which could be wraped around the loop end. More...
 
class  StepClip
 
class  StepModifier
 
struct  StepVolumeEffect
 
struct  StopwatchTimer
 
struct  StretchSegment
 
struct  StringMap
 
class  SubSampleWaveAudioNode
 
struct  SuffixedParameter
 
class  SummingNode
 An Node which sums together the multiple inputs adding additional latency to provide a coherent output. More...
 
struct  SyncPoint
 Holds a reference sample position and the Edit time and beat that it corresponds to. More...
 
struct  SyncRange
 
struct  TempoAndTimeSigListBase
 
class  TempoDetect
 Uses the SoundTouch BPMDetect class to guess the tempo of some audio. More...
 
class  TemporaryFileManager
 Holds info about where temp files should go, and tidies up old ones when needed. More...
 
class  TempoSequence
 Holds a list of TempoSetting objects, to form a sequence of tempo changes. More...
 
class  TempoSetting
 A tempo value, as used in a TempoSequence. More...
 
class  TempoTrack
 A track to represent the "global" items such as tempo, key changes etc. More...
 
class  TextPlugin
 
struct  ThreadedEditFileWriter
 
struct  ThreadPoolCV
 
struct  ThreadPoolHybrid
 
class  ThreadPoolJobWithProgress
 
struct  ThreadPoolRT
 
struct  ThreadPoolSem
 
struct  ThreadPoolSemHybrid
 
struct  TimeAndName
 
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  TimecodeDuration
 Stores a duration in both beats and seconds. More...
 
struct  TimecodeSnapType
 A snap mode, e.g. More...
 
class  TimedMutingAudioNode
 
class  TimedMutingNode
 A Node that mutes its input at specific time ranges. More...
 
struct  TimeDuration
 Represents a duration in real-life time. More...
 
struct  TimePosition
 Represents a position in real-life time. More...
 
class  TimeRangeReader
 
class  TimeSigSetting
 
class  TimeStretcher
 Handles time/pitch stretching using various supported libraries. More...
 
class  TimeStretchingWaveNode
 Node that reads from a file node and timestretches its output. More...
 
class  TimeStretchReader
 
class  TimeStretchReaderBase
 
class  ToneGeneratorPlugin
 
class  Track
 Base class for tracks which contain clips and plugins and can be added to Edit[s]. More...
 
struct  TrackAutomationSection
 Holds a reference to a section of automation for a given Track. More...
 
class  TrackCompManager
 
struct  TrackInsertPoint
 Defines the place to insert Track[s]. More...
 
class  TrackItem
 Base class for EditItems that live in a Track, e.g. More...
 
struct  TrackList
 An iterable list of Track[s] that live either in an Edit or as subtracks of a Track. 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...
 
class  TrackOutput
 Represents the destination output device(s) for a track. More...
 
struct  TrackSection
 Defines a time raneg sectin of a Track. More...
 
class  TracktionArchiveFile
 
class  TracktionEngineNode
 Base class for Nodes that provides information about the current process call. More...
 
class  TracktionNodePlayer
 Plays back a Node with PlayHeadState and ProcessState. More...
 
class  TracktionThumbnailCache
 
class  TrackWaveInputDeviceNode
 A Node that takes audio from the output of a track and sends it to its corresponding InputDevice. More...
 
class  TransformCache
 
struct  TransientDetectionJob
 
struct  TransparentToMouseInTrackItemComp
 
class  TransportControl
 Controls the transport of an Edit's playback. More...
 
struct  TwoChannelDestination
 
class  UIBehaviour
 Create a subclass of UIBehaviour to custom UI elements created by the engine. More...
 
class  ValueSmoother
 Smooths a value between 0 and 1 at a constant rate. More...
 
struct  ValueTreeAllEventListener
 
struct  ValueTreeComparator
 
class  ValueTreeObjectList
 
class  VcaAutomatableParameter
 
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  VirtualMidiInputDevice
 
struct  VirtualMidiInputDeviceInstance
 
struct  VolAutomatableParameter
 
class  VolumeAndPanPlugin
 The built-in Tracktion volume/pan plugin. More...
 
struct  VolumeEffect
 
class  VSTXML
 
struct  WarpedTime
 
struct  WarpMarker
 A WarpMarker is a point that maps from a linear "source" time to a "warped" time. More...
 
struct  WarpPoint
 
class  WarpReader
 
struct  WarpTimeEffect
 
class  WarpTimeEffectRenderJob
 
class  WarpTimeFactory
 A WarpTimeFactory manages WarpTimeManagers for Clips living in an Edit. 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  WarpTimeRenderJob
 
class  WaveAudioClip
 An audio clip that uses an audio file as its source. More...
 
class  WaveAudioNode
 An AudioNode that plays back a wave file. More...
 
class  WaveCompManager
 
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  WaveInputDeviceInstance
 
class  WaveInputDeviceNode
 A Node that intercepts incoming live audio and inserts it in to the playback graph. More...
 
class  WaveInputRecordingThread
 
class  WaveNode
 An Node that plays back a wave file. More...
 
class  WaveNodeRealTime
 An Node that plays back a wave file. More...
 
class  WaveOutputDevice
 A (virtual) audio output device. More...
 
class  WaveOutputDeviceInstance
 
struct  WordMatchOperation
 

Typedefs

using SampleCount = int64_t
 
using TimeRange = RangeType< TimePosition >
 A RangeType based on real time (i.e.
 
using BeatRange = RangeType< BeatPosition >
 A RangeType based on beats.
 
using EditBeatPosition = double
 
using ClipBeatPosition = double
 
using SequenceBeatPosition = double
 
using BlockBeatPosition = double
 
using EditBeatDuration = double
 
using ClipBeatDuration = double
 
using BlockBeatDuration = double
 
using EditBeatRange = juce::Range< double >
 
using ClipBeatRange = juce::Range< double >
 
using SequenceBeatRange = juce::Range< double >
 
using BlockBeatRange = juce::Range< double >
 
using WarpMap = std::vector< WarpPoint >
 
using SampleCount = int64_t
 
using SampleRange = juce::Range< SampleCount >
 
using HashCode = int64_t
 

Enumerations

enum  { initialTimerDelay }
 
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  LaunchQType {
  none , eightBars , fourBars , twoBars ,
  bar , halfT , half , halfD ,
  quarterT , quarter , quarterD , eighthT ,
  eighth , eighthD , sixteenthT , sixteenth ,
  sixteenthD , thirtySecondT , thirtySecond , thirtySecondD ,
  sixtyFourthT , sixtyFourth , sixtyFourthD
}
 
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 , PanLawLinear , PanLaw2point5dBCenter , PanLaw3dBCenter ,
  PanLaw4point5dBCenter , PanLaw6dBCenter
}
 All laws have been designed to be equal-power, excluding linear respectively. More...
 
enum class  AuxPosition { byBus , byPosition }
 
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 ,
  resetCursorOnPlay , retrospectiveRecord , reWireEnabled , safeRecord ,
  sendControllerOffMessages , simplifyAfterRecording , snapCursor , tempDirectory ,
  trackExpansionMode , use64Bit , xFade , xtCount ,
  xtIndices , virtualmididevices , virtualmidiin , midiScanIntervalSeconds ,
  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 ,
  externControlShowClipSlotSelection , addAcidMetadata
}
 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

template<class Container , class T , class BinaryOperation >
accumulate (const Container &container, T init)
 
template<class Container , class T , class BinaryOperation >
accumulate (const Container &container, T init, BinaryOperation op)
 
template<class Container , class UnaryFunction >
UnaryFunction for_each (const Container &container, UnaryFunction f)
 
template<class Container , class UnaryFunction >
bool contains (const Container &container, UnaryFunction f)
 
template<class Container >
bool contains_v (const Container &container, typename Container::value_type v)
 Returns true if a specific value is found in a container.
 
template<class Container >
void sort (Container &container)
 
template<class Container , class Compare >
void sort (Container &container, Compare comp)
 
template<class Container >
void stable_sort (Container &container)
 
template<class Container , class Compare >
void stable_sort (Container &container, Compare comp)
 
template<class Container >
std::optional< size_tindex_of (const Container &container, typename Container::value_type v)
 
template<class Container , class Predicate >
std::optional< size_tindex_if (const Container &container, Predicate p)
 
template<class Container , class IndexType >
std::optional< typename Container::value_type > get_checked (const Container &container, IndexType index)
 
template<class Container , class IndexType >
Container::value_type get_or (const Container &container, IndexType index, const typename Container::value_type &defaultValue)
 
template<class Type >
bool assign_if_valid (Type &dest, const std::optional< Type > &src)
 
template<class SmartPointerContainer >
SmartPointerContainer & erase_if_null (SmartPointerContainer &container)
 
template<class Container >
Container & stable_remove_duplicates (Container &container)
 Removes duplicates from a container maintaining the order.
 
BenchmarkDescription createBenchmarkDescription (std::string category, std::string name, std::string description)
 Creates a description by hashing the name and description fields.
 
BenchmarkResult createBenchmarkResult (BenchmarkDescription description, const tracktion::graph::PerformanceMeasurement::Statistics &stats)
 Creates a BenchmarkResult from a set of Statistics.
 
std::pair< double, doublegetBezierPoint (double x1, double y1, double x2, double y2, double c) noexcept
 
void getBezierEnds (const double x1, const double y1, const double x2, const double y2, const double c, double &x1out, double &y1out, double &x2out, double &y2out) noexcept
 
double getBezierYFromX (double x, double x1, double y1, double xb, double yb, double x2, double y2) noexcept
 
std::uint64_t rdtsc ()
 Returns the CPU cycle count, useful for benchmarking.
 
void pause ()
 Pauses the CPU for an instruction.
 
template<typename T >
void hash_combine (size_t &seed, const T &v)
 Hashes a type with a given seed, modifying the seed.
 
template<typename It >
std::size_t hash_range (It first, It last)
 Hashes a range with a default seed and returns the new hash value.
 
template<typename It >
void hash_range (std::size_t &seed, It first, It last)
 Hashes a range with a given seed, modifying the seed.
 
template<typename Container >
std::size_t hash_range (const Container &container)
 Hashes a container with a default seed and returns the hash value.
 
template<typename T >
size_t hash (size_t seed, const T &v)
 Hashes a type with a given seed and returns the new hash value.
 
constexpr BeatPosition operator* (TimePosition t, tempo::BeatsPerSecond bps)
 Converts time to beats.
 
constexpr BeatDuration operator* (TimeDuration t, tempo::BeatsPerSecond bps)
 Converts time to beats.
 
constexpr BeatPosition operator* (tempo::BeatsPerSecond bps, TimePosition t)
 Converts time to beats.
 
constexpr BeatDuration operator* (tempo::BeatsPerSecond bps, TimeDuration t)
 Converts time to beats.
 
constexpr BeatPosition operator* (TimePosition t, tempo::BeatsPerMinute bpm)
 Converts time to beats.
 
constexpr BeatDuration operator* (TimeDuration t, tempo::BeatsPerMinute bpm)
 Converts time to beats.
 
constexpr BeatPosition operator* (tempo::BeatsPerMinute bpm, TimePosition t)
 Converts time to beats.
 
constexpr BeatDuration operator* (tempo::BeatsPerMinute bpm, TimeDuration t)
 Converts time to beats.
 
constexpr TimePosition operator* (BeatPosition t, tempo::SecondsPerBeat spb)
 Converts beats to time.
 
constexpr TimeDuration operator* (BeatDuration t, tempo::SecondsPerBeat spb)
 Converts beats to time.
 
constexpr TimePosition operator* (tempo::SecondsPerBeat spb, BeatPosition t)
 Converts beats to time.
 
constexpr TimeDuration operator* (tempo::SecondsPerBeat spb, BeatDuration t)
 Converts beats to time.
 
constexpr tempo::BeatsPerSecond operator/ (double t, tempo::SecondsPerBeat spb)
 Converts a SecondsPerBeat to BeatsPerSecond.
 
constexpr tempo::SecondsPerBeat operator/ (double t, tempo::BeatsPerSecond bps)
 Converts a BeatsPerSecond to SecondsPerBeat.
 
constexpr bool operator== (tempo::Key k1, tempo::Key k2)
 Compares two Keys.
 
constexpr bool operator!= (tempo::Key k1, tempo::Key k2)
 Compares two Keys.
 
TimeRange toTime (const tempo::Sequence &, BeatRange)
 Converts a BeatRange to a TimeRange.
 
BeatRange toBeats (const tempo::Sequence &, TimeRange)
 Converts a TimeRange to a BeatRange.
 
TimeRange toTime (const tempo::Sequence &seq, BeatRange range)
 Converts a BeatRange to a TimeRange.
 
BeatRange toBeats (const tempo::Sequence &seq, TimeRange range)
 Converts a TimeRange to a BeatRange.
 
constexpr TimePosition operator- (TimePosition)
 Negates a TimePosition.
 
constexpr TimeDuration toDuration (TimePosition)
 Converts a TimePosition to a TimeDuration.
 
constexpr int64_t toSamples (TimePosition, double sampleRate)
 Converts a TimePosition to a number of samples.
 
TimePosition abs (TimePosition)
 Returns the absolute of this TimePosition.
 
constexpr TimeDuration operator- (TimeDuration)
 Negates a TimeDuration.
 
constexpr TimePosition toPosition (TimeDuration)
 Converts a TimeDuration to a TimePosition.
 
constexpr int64_t toSamples (TimeDuration, double sampleRate)
 Converts a TimeDuration to a number of samples.
 
TimeDuration abs (TimeDuration)
 Returns the absolute of this TimeDuration.
 
constexpr TimeDuration operator+ (const TimeDuration &, const TimeDuration &)
 Adds two TimeDurations together.
 
template<typename Type >
constexpr TimeDuration operator+ (const TimeDuration &, std::chrono::duration< Type >)
 Adds a time to a TimeDuration.
 
constexpr TimePosition operator+ (const TimePosition &, const TimeDuration &)
 Adds a TimeDuration to a TimePosition.
 
template<typename Type >
constexpr TimePosition operator+ (const TimePosition &, std::chrono::duration< Type >)
 Adds a time to a TimePosition.
 
constexpr TimeDuration operator- (const TimePosition &, const TimePosition &)
 Subtracts a TimePosition from another one, returning the duration bewteen them.
 
constexpr TimeDuration operator- (const TimeDuration &, const TimeDuration &)
 Subtracts a TimeDuration from another one.
 
template<typename Type >
constexpr TimeDuration operator- (const TimeDuration &, std::chrono::duration< Type >)
 Subtracts a time from a TimeDuration.
 
constexpr TimePosition operator- (const TimePosition &, const TimeDuration &)
 Subtracts a TimeDuration from a TimePosition.
 
template<typename Type >
constexpr TimePosition operator- (const TimePosition &, std::chrono::duration< Type >)
 Subtracts a time from a TimePosition.
 
constexpr TimePosition operator* (const TimePosition &, double)
 Multiplies a TimePosition by an ammount.
 
constexpr TimePosition operator/ (const TimePosition &, double)
 Divides a TimePosition by an ammount.
 
constexpr TimeDuration operator* (const TimeDuration &, double)
 Multiplies a TimeDuration by an ammount.
 
constexpr TimeDuration operator/ (const TimeDuration &, double)
 Divides a TimeDuration by an ammount.
 
constexpr double operator/ (const TimePosition &, const TimeDuration &)
 Divides a TimePosition by a TimeDuration.
 
constexpr double operator/ (const TimeDuration &, const TimeDuration &)
 Divides a TimeDuration by another TimeDuration.
 
constexpr bool operator== (const TimePosition &, const TimePosition &)
 Compares two TimePositions.
 
constexpr bool operator!= (const TimePosition &, const TimePosition &)
 Compares two TimeDurations.
 
constexpr bool operator== (const TimeDuration &, const TimeDuration &)
 Compares two TimeDurations.
 
constexpr bool operator!= (const TimeDuration &, const TimeDuration &)
 Compares two TimeDurations.
 
constexpr bool operator< (const TimePosition &, const TimePosition &)
 Compares two TimePositions.
 
constexpr bool operator<= (const TimePosition &, const TimePosition &)
 Compares two TimePosition.
 
constexpr bool operator> (const TimePosition &, const TimePosition &)
 Compares two TimePosition.
 
constexpr bool operator>= (const TimePosition &, const TimePosition &)
 Compares two TimePosition.
 
constexpr bool operator< (const TimeDuration &, const TimeDuration &)
 Compares two TimeDurations.
 
constexpr bool operator<= (const TimeDuration &, const TimeDuration &)
 Compares two TimeDurations.
 
constexpr bool operator> (const TimeDuration &, const TimeDuration &)
 Compares two TimeDurations.
 
constexpr bool operator>= (const TimeDuration &, const TimeDuration &)
 Compares two TimeDurations.
 
constexpr BeatPosition operator- (BeatPosition)
 Negates a BeatPosition.
 
constexpr BeatDuration toDuration (BeatPosition)
 Converts a BeatPosition to a BeatDuration.
 
BeatPosition roundToNearestBeat (BeatPosition)
 Rounds a BeatPosition to the nearest whole beat.
 
BeatPosition abs (BeatPosition)
 Returns the absolute of this BeatPosition.
 
constexpr BeatDuration operator- (BeatDuration)
 Negates a BeatDuration.
 
constexpr BeatPosition toPosition (BeatDuration)
 Converts a BeatDuration to a BeatPosition.
 
BeatDuration roundToNearestBeat (BeatDuration)
 Rounds a BeatDuration to the nearest whole beat.
 
BeatDuration abs (BeatDuration)
 Returns the absolute of this BeatDuration.
 
constexpr BeatDuration operator+ (const BeatDuration &, const BeatDuration &)
 Adds two BeatDurations together.
 
constexpr BeatPosition operator+ (const BeatPosition &, const BeatDuration &)
 Adds a BeatDuration to a BeatPosition.
 
constexpr BeatDuration operator- (const BeatPosition &, const BeatPosition &)
 Subtracts a BeatPosition from another one, returning the duration between them.
 
constexpr BeatDuration operator- (const BeatDuration &, const BeatDuration &)
 Subtracts a BeatDuration from another one.
 
constexpr BeatPosition operator- (const BeatPosition &, const BeatDuration &)
 Subtracts a BeatDuration from a BeatPosition.
 
template<typename Type >
constexpr BeatPosition operator* (const BeatPosition &, Type)
 Multiplies a BeatPosition by an ammount.
 
constexpr BeatPosition operator/ (const BeatPosition &, double)
 Divides a BeatPosition by an ammount.
 
template<typename Type >
constexpr BeatDuration operator* (const BeatDuration &, Type)
 Multiplies a BeatDuration by an ammount.
 
constexpr BeatDuration operator/ (const BeatDuration &, double)
 Divides a BeatDuration by an ammount.
 
constexpr double operator/ (const BeatPosition &, const BeatDuration &)
 Divides a BeatPosition by a BeatDuration.
 
constexpr double operator/ (const BeatDuration &, const BeatDuration &)
 Divides a BeatDuration by another BeatDuration.
 
constexpr bool operator== (const BeatPosition &, const BeatPosition &)
 Compares two BeatPositions.
 
constexpr bool operator!= (const BeatPosition &, const BeatPosition &)
 Compares two BeatPositions.
 
constexpr bool operator== (const BeatDuration &, const BeatDuration &)
 Compares two BeatDurations.
 
constexpr bool operator!= (const BeatDuration &, const BeatDuration &)
 Compares two BeatDurations.
 
constexpr bool operator< (const BeatPosition &, const BeatPosition &)
 Compares two BeatDurations.
 
constexpr bool operator<= (const BeatPosition &, const BeatPosition &)
 Compares two BeatDurations.
 
constexpr bool operator> (const BeatPosition &, const BeatPosition &)
 Compares two BeatDurations.
 
constexpr bool operator>= (const BeatPosition &, const BeatPosition &)
 Compares two BeatDurations.
 
constexpr bool operator< (const BeatDuration &, const BeatDuration &)
 Compares two BeatDurations.
 
constexpr bool operator<= (const BeatDuration &, const BeatDuration &)
 Compares two BeatDurations.
 
constexpr bool operator> (const BeatDuration &, const BeatDuration &)
 Compares two BeatDurations.
 
constexpr bool operator>= (const BeatDuration &, const BeatDuration &)
 Compares two BeatDurations.
 
constexpr TimePosition operator- (TimePosition t)
 Negates a TimePosition.
 
constexpr TimeDuration toDuration (TimePosition t)
 Converts a TimePosition to a TimeDuration.
 
constexpr int64_t toSamples (TimePosition p, double sampleRate)
 Converts a TimePosition to a number of samples.
 
TimePosition abs (TimePosition t)
 Returns the absolute of this TimePosition.
 
constexpr TimeDuration operator- (TimeDuration t)
 Negates a TimeDuration.
 
constexpr TimePosition toPosition (TimeDuration t)
 Converts a TimeDuration to a TimePosition.
 
constexpr int64_t toSamples (TimeDuration p, double sampleRate)
 Converts a TimeDuration to a number of samples.
 
TimeDuration abs (TimeDuration t)
 Returns the absolute of this TimeDuration.
 
constexpr TimeDuration operator+ (const TimeDuration &t1, const TimeDuration &t2)
 Adds two TimeDurations together.
 
constexpr TimePosition operator+ (const TimePosition &t1, const TimeDuration &t2)
 Adds a TimeDuration to a TimePosition.
 
constexpr TimeDuration operator- (const TimePosition &t1, const TimePosition &t2)
 Subtracts a TimePosition from another one, returning the duration bewteen them.
 
constexpr TimeDuration operator- (const TimeDuration &t1, const TimeDuration &t2)
 Subtracts a TimeDuration from another one.
 
constexpr TimePosition operator- (const TimePosition &t1, const TimeDuration &t2)
 Subtracts a TimeDuration from a TimePosition.
 
template<typename Type >
constexpr TimeDuration operator+ (const TimeDuration &t1, std::chrono::duration< Type > t2)
 Adds a time to a TimeDuration.
 
template<typename Type >
constexpr TimePosition operator+ (const TimePosition &t1, std::chrono::duration< Type > t2)
 Adds a time to a TimePosition.
 
template<typename Type >
constexpr TimeDuration operator- (const TimeDuration &t1, std::chrono::duration< Type > t2)
 Subtracts a time from a TimeDuration.
 
template<typename Type >
constexpr TimePosition operator- (const TimePosition &t1, std::chrono::duration< Type > t2)
 Subtracts a time from a TimePosition.
 
constexpr TimePosition operator* (const TimePosition &t, double ammount)
 Multiplies a TimePosition by an ammount.
 
constexpr TimePosition operator/ (const TimePosition &t, double ammount)
 Divides a TimePosition by an ammount.
 
constexpr TimeDuration operator* (const TimeDuration &t, double ammount)
 Multiplies a TimeDuration by an ammount.
 
constexpr TimeDuration operator/ (const TimeDuration &t, double ammount)
 Divides a TimeDuration by an ammount.
 
constexpr double operator/ (const TimePosition &t1, const TimeDuration &t2)
 Divides a TimePosition by a TimeDuration.
 
constexpr double operator/ (const TimeDuration &t1, const TimeDuration &t2)
 Divides a TimeDuration by another TimeDuration.
 
constexpr bool operator== (const TimePosition &t1, const TimePosition &t2)
 Compares two TimePositions.
 
constexpr bool operator!= (const TimePosition &t1, const TimePosition &t2)
 Compares two TimeDurations.
 
constexpr bool operator== (const TimeDuration &t1, const TimeDuration &t2)
 Compares two TimeDurations.
 
constexpr bool operator!= (const TimeDuration &t1, const TimeDuration &t2)
 Compares two TimeDurations.
 
constexpr bool operator< (const TimePosition &t1, const TimePosition &t2)
 Compares two TimePositions.
 
constexpr bool operator<= (const TimePosition &t1, const TimePosition &t2)
 Compares two TimePosition.
 
constexpr bool operator> (const TimePosition &t1, const TimePosition &t2)
 Compares two TimePosition.
 
constexpr bool operator>= (const TimePosition &t1, const TimePosition &t2)
 Compares two TimePosition.
 
constexpr bool operator< (const TimeDuration &t1, const TimeDuration &t2)
 Compares two TimeDurations.
 
constexpr bool operator<= (const TimeDuration &t1, const TimeDuration &t2)
 Compares two TimeDurations.
 
constexpr bool operator> (const TimeDuration &t1, const TimeDuration &t2)
 Compares two TimeDurations.
 
constexpr bool operator>= (const TimeDuration &t1, const TimeDuration &t2)
 Compares two TimeDurations.
 
BeatPosition abs (BeatPosition t)
 Returns the absolute of this BeatPosition.
 
constexpr BeatDuration toDuration (BeatPosition t)
 Converts a BeatPosition to a BeatDuration.
 
BeatPosition roundToNearestBeat (BeatPosition t)
 Rounds a BeatPosition to the nearest whole beat.
 
BeatDuration roundToNearestBeat (BeatDuration t)
 Rounds a BeatDuration to the nearest whole beat.
 
BeatDuration abs (BeatDuration t)
 Returns the absolute of this BeatDuration.
 
constexpr BeatPosition toPosition (BeatDuration t)
 Converts a BeatDuration to a BeatPosition.
 
constexpr BeatPosition operator- (BeatPosition t)
 Negates a BeatPosition.
 
constexpr BeatDuration operator- (BeatDuration t)
 Negates a BeatDuration.
 
constexpr BeatDuration operator+ (const BeatDuration &t1, const BeatDuration &t2)
 Adds two BeatDurations together.
 
constexpr BeatPosition operator+ (const BeatPosition &t1, const BeatDuration &t2)
 Adds a BeatDuration to a BeatPosition.
 
constexpr BeatDuration operator- (const BeatPosition &t1, const BeatPosition &t2)
 Subtracts a BeatPosition from another one, returning the duration between them.
 
constexpr BeatDuration operator- (const BeatDuration &t1, const BeatDuration &t2)
 Subtracts a BeatDuration from another one.
 
constexpr BeatPosition operator- (const BeatPosition &t1, const BeatDuration &t2)
 Subtracts a BeatDuration from a BeatPosition.
 
template<typename Type >
constexpr BeatPosition operator* (const BeatPosition &t, Type ammount)
 Multiplies a BeatPosition by an ammount.
 
constexpr BeatPosition operator/ (const BeatPosition &t, double ammount)
 Divides a BeatPosition by an ammount.
 
template<typename Type >
constexpr BeatDuration operator* (const BeatDuration &t, Type ammount)
 Multiplies a BeatDuration by an ammount.
 
constexpr BeatDuration operator/ (const BeatDuration &t, double ammount)
 Divides a BeatDuration by an ammount.
 
constexpr double operator/ (const BeatPosition &t1, const BeatDuration &t2)
 Divides a BeatPosition by a BeatDuration.
 
constexpr double operator/ (const BeatDuration &t1, const BeatDuration &t2)
 Divides a BeatDuration by another BeatDuration.
 
constexpr bool operator== (const BeatPosition &t1, const BeatPosition &t2)
 Compares two BeatPositions.
 
constexpr bool operator!= (const BeatPosition &t1, const BeatPosition &t2)
 Compares two BeatPositions.
 
constexpr bool operator== (const BeatDuration &t1, const BeatDuration &t2)
 Compares two BeatDurations.
 
constexpr bool operator!= (const BeatDuration &t1, const BeatDuration &t2)
 Compares two BeatDurations.
 
constexpr bool operator< (const BeatPosition &t1, const BeatPosition &t2)
 Compares two BeatDurations.
 
constexpr bool operator<= (const BeatPosition &t1, const BeatPosition &t2)
 Compares two BeatDurations.
 
constexpr bool operator> (const BeatPosition &t1, const BeatPosition &t2)
 Compares two BeatDurations.
 
constexpr bool operator>= (const BeatPosition &t1, const BeatPosition &t2)
 Compares two BeatDurations.
 
constexpr bool operator< (const BeatDuration &t1, const BeatDuration &t2)
 Compares two BeatDurations.
 
constexpr bool operator<= (const BeatDuration &t1, const BeatDuration &t2)
 Compares two BeatDurations.
 
constexpr bool operator> (const BeatDuration &t1, const BeatDuration &t2)
 Compares two BeatDurations.
 
constexpr bool operator>= (const BeatDuration &t1, const BeatDuration &t2)
 Compares two BeatDurations.
 
juce::Stringoperator<< (juce::String &s, TimeDuration d)
 
juce::Stringoperator<< (juce::String &s, TimePosition p)
 
juce::Stringoperator<< (juce::String &s, BeatDuration d)
 
juce::Stringoperator<< (juce::String &s, BeatPosition p)
 
std::ostreamoperator<< (std::ostream &os, const TimeDuration &v)
 
std::ostreamoperator<< (std::ostream &os, const TimePosition &v)
 
std::ostreamoperator<< (std::ostream &os, const BeatDuration &v)
 
std::ostreamoperator<< (std::ostream &os, const BeatPosition &v)
 
juce::Range< int64_ttoSamples (TimeRange, double sampleRate)
 Converts a TimeRange to a range of samples.
 
TimeRange timeRangeFromSamples (juce::Range< int64_t > sampleRange, double sampleRate)
 Creates a TimeRange from a range of samples.
 
template<typename SourceRangeType >
TimeRange timeRangeFromSeconds (SourceRangeType)
 Creates a TimeRange from a range of seconds.
 
template<typename PositionType >
bool operator== (const RangeType< PositionType > &, const RangeType< PositionType > &)
 Compares two ranges to check if they are equal.
 
template<typename PositionType >
bool operator!= (const RangeType< PositionType > &, const RangeType< PositionType > &)
 Compares two ranges to check if they are not equal.
 
template<typename PositionType >
RangeType< PositionType > operator+ (const RangeType< PositionType > &, typename RangeType< PositionType >::Duration)
 Adds a duration to a range, moving it forwards.
 
template<typename PositionType >
RangeType< PositionType > operator- (const RangeType< PositionType > &, typename RangeType< PositionType >::Duration)
 Subtracts a duration to a range, moving it backwards.
 
template<typename PositionType >
RangeType< PositionType > withEndExtended (RangeType< PositionType > &, typename RangeType< PositionType >::Duration)
 Adds an amount to the end of the range and returns a new range.
 
template<typename PositionType >
PositionType fromUnderlyingType (double)
 
template<>
TimePosition fromUnderlyingType< TimePosition > (double t)
 
template<>
TimeDuration fromUnderlyingType< TimeDuration > (double t)
 
double toUnderlyingType (TimePosition t)
 
double toUnderlyingType (TimeDuration t)
 
template<>
BeatPosition fromUnderlyingType< BeatPosition > (double t)
 
template<>
BeatDuration fromUnderlyingType< BeatDuration > (double t)
 
double toUnderlyingType (BeatPosition t)
 
double toUnderlyingType (BeatDuration t)
 
TimeRange timeRangeFromSamples (juce::Range< int64_t > r, double sampleRate)
 Creates a TimeRange from a range of samples.
 
template<typename SourceRangeType >
TimeRange timeRangeFromSeconds (SourceRangeType r)
 Creates a TimeRange from a range of seconds.
 
juce::Range< int64_ttoSamples (TimeRange r, double sampleRate)
 Converts a TimeRange to a range of samples.
 
template<typename PositionType >
bool operator== (const RangeType< PositionType > &r1, const RangeType< PositionType > &r2)
 Compares two ranges to check if they are equal.
 
template<typename PositionType >
bool operator!= (const RangeType< PositionType > &r1, const RangeType< PositionType > &r2)
 Compares two ranges to check if they are not equal.
 
template<typename PositionType >
RangeType< PositionType > operator+ (const RangeType< PositionType > &r, typename RangeType< PositionType >::Duration d)
 Adds a duration to a range, moving it forwards.
 
template<typename PositionType >
RangeType< PositionType > operator- (const RangeType< PositionType > &r, typename RangeType< PositionType >::Duration d)
 Subtracts a duration to a range, moving it backwards.
 
template<typename PositionType >
RangeType< PositionType > withEndExtended (RangeType< PositionType > &r, typename RangeType< PositionType >::Duration d)
 Adds an amount to the end of the range and returns a new range.
 
template<typename RangeType , std::enable_if_t< std::is_same_v< TimeRange, RangeType >||std::is_same_v< BeatRange, RangeType >, bool > = true>
std::string to_string (RangeType range)
 
std::ostreamoperator<< (std::ostream &os, const TimeRange &r)
 
std::ostreamoperator<< (std::ostream &os, const BeatRange &r)
 
void addMidiNoteOnExpressionToSequence (juce::MidiMessageSequence &seq, const juce::ValueTree &state, int midiChannel, double noteOnTime) noexcept
 
template<typename EventType >
const juce::Array< EventType * > & getEventsChecked (const juce::Array< EventType * > &events)
 
std::unique_ptr< juce::XmlElementexportProgramSet (ProgramSet &set)
 
BankSetgetBankSet (ProgramSet &set, const juce::String &name)
 
std::unique_ptr< juce::XmlElementconvertMidnamToXml (const juce::File &src)
 
juce::String fixLegacyChordNames (const juce::String &oldName)
 
juce::Array< KeyResultdetermineKeyOfNotes (const juce::Array< MidiNote * > &notes)
 
AutomatableParameter::ModifierSource * getSourceForAssignment (const AutomatableParameter::ModifierAssignment &)
 Iterates an Edit looking for the source of this assignment.
 
juce::ReferenceCountedArray< AutomatableParametergetAllParametersBeingModifiedBy (Edit &, AutomatableParameter::ModifierSource &)
 Iterates an Edit looking for all parameters that are being modified by the given ModifierSource.
 
AutomatableParametergetParameter (AutomatableParameter::ModifierAssignment &)
 Iterates an Edit looking for the parameter that this ModifierAssignment has been made from.
 
template<typename AssignmentType >
juce::ReferenceCountedArray< AssignmentType > getAssignmentsOfType (const AutomatableParameter &ap)
 Returns all the Assignments of a specific type.
 
template<typename ModifierType >
juce::Array< ModifierType * > getModifiersOfType (const AutomatableParameter &ap)
 Returns all the modifers in use of a specific type.
 
template<typename AssignmentType , typename ModifierSourceType , typename EditType >
juce::ReferenceCountedArray< AssignmentType > getAssignmentsForSource (EditType &edit, const ModifierSourceType &source)
 Iterates an Edit looking for all parameters that assigned to a given parameter.
 
int getIntParamValue (const AutomatableParameter &ap)
 Returns an int version of an AutomatableParameter.
 
bool getBoolParamValue (const AutomatableParameter &ap)
 Returns a bool version of an AutomatableParameter.
 
template<typename Type >
Type getTypedParamValue (const AutomatableParameter &ap)
 Returns an int version of an AutomatableParameter cast to a enum type.
 
int simplify (AutomationCurve &, int strength, TimeRange)
 Removes points from the curve to simplfy it and returns the number of points removed.
 
MacroParameter::Ptr getMacroParameterForID (Edit &, EditItemID)
 Searched the Edit for a MacroParameter with this ID.
 
Plugin::Ptr getOwnerPlugin (MacroParameterList *)
 If this MacroParameterList belongs to an Plugin, this will return it.
 
Modifier::Ptr findModifierForID (ModifierList &, EditItemID)
 Returns a Modifier if it can be found in the list.
 
template<typename ModifierType >
juce::ReferenceCountedArray< ModifierType > getModifiersOfType (const ModifierList &ml)
 Returns the modifers of a specific type.
 
void dumpSegments (const juce::Array< AudioSegmentList::Segment > &segments)
 
ClipfindClipForState (ClipOwner &, const juce::ValueTree &)
 Returns a clip with the given state if the ClipOwner contains it.
 
ClipfindClipForID (ClipOwner &, EditItemID)
 Returns a clip with the given ID if the ClipOwner contains it.
 
ClipinsertClipWithState (ClipOwner &, juce::ValueTree)
 Inserts a clip with the given state in to the ClipOwner's clip list.
 
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.
 
ClipinsertNewClip (ClipOwner &, TrackItem::Type, const juce::String &name, EditTimeRange)
 Inserts a new clip with the given type and name.
 
ClipinsertNewClip (ClipOwner &, TrackItem::Type, EditTimeRange)
 Inserts a new clip with the given type and a default name.
 
ClipinsertNewClip (ClipOwner &, TrackItem::Type, const juce::String &name, ClipPosition)
 Inserts a new clip with the given type and name.
 
juce::ReferenceCountedObjectPtr< WaveAudioClipinsertWaveClip (ClipOwner &, const juce::String &name, const juce::File &sourceFile, ClipPosition, DeleteExistingClips)
 Inserts a new WaveAudioClip into the ClipOwner's clip list.
 
WaveAudioClip::Ptr insertWaveClip (ClipOwner &, const juce::String &name, ProjectItemID sourceID, ClipPosition, DeleteExistingClips)
 Inserts a new WaveAudioClip into the ClipOwner's clip list.
 
MidiClip::Ptr insertMIDIClip (ClipOwner &, const juce::String &name, TimeRange)
 Inserts a new MidiClip into the ClipOwner's clip list.
 
MidiClip::Ptr insertMIDIClip (ClipOwner &, TimeRange)
 Inserts a new MidiClip into the ClipOwner's clip list.
 
EditClip::Ptr insertEditClip (ClipOwner &, TimeRange, ProjectItemID)
 Inserts a new EditClip into the ClipOwner's clip list.
 
juce::Array< Clip * > deleteRegion (ClipOwner &, TimeRange)
 Removes a region of a ClipOwner and returns any newly created clips.
 
juce::Array< Clip * > deleteRegion (Clip &, TimeRange)
 Removes a region of a clip and returns any newly created clips.
 
juce::Array< Clip * > split (ClipOwner &, TimePosition)
 Splits the given clp owner at the time and returns any newly created clips.
 
Clipsplit (Clip &, TimePosition)
 Splits the given clip at the time and returns the newly created clip.
 
bool containsAnyMIDIClips (const ClipOwner &)
 Returns true if the clip owner contains any MIDI clips.
 
bool isMasterTrack (const Track &)
 Returns true if this is a MasterTrack.
 
bool isTempoTrack (const Track &)
 Returns true if this is a TempoTrack.
 
bool isAutomationTrack (const Track &)
 Returns true if this is an AutomationTrack.
 
bool isAudioTrack (const Track &)
 Returns true if this is an AudioTrack.
 
bool isFolderTrack (const Track &)
 Returns true if this is a FolderTrack.
 
bool isMarkerTrack (const Track &)
 Returns true if this is a MarkerTrack.
 
bool isChordTrack (const Track &)
 Returns true if this is a ChordTrack.
 
bool isArrangerTrack (const Track &)
 Returns true if this is an ArrangerTrack.
 
bool isAudioTrack (const ClipOwner &)
 Returns true if this is an AudioTrack.
 
bool isFolderTrack (const ClipOwner &)
 Returns true if this is a FolderTrack.
 
bool isMarkerTrack (const ClipOwner &)
 Returns true if this is a MarkerTrack.
 
bool isChordTrack (const ClipOwner &)
 Returns true if this is a ChordTrack.
 
bool isArrangerTrack (const ClipOwner &)
 Returns true if this is an ArrangerTrack.
 
bool canContainMIDI (const ClipOwner &)
 Returns true if this Track can contain MidiClip[s].
 
bool canContainAudio (const ClipOwner &)
 Returns true if this Track can contain WaveAudioClip[s].
 
bool isOnTop (const Track &)
 Returns true if this a global Track and should be on top of others.
 
template<typename ClipType >
juce::Array< ClipType * > getClipsOfType (const ClipOwner &)
 Returns the subclips of the given type.
 
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.
 
bool isMovable (const Track &)
 Returns true if this Track is movable.
 
void mergeInMidiSequence (MidiClip &, juce::MidiMessageSequence, TimeDuration offsetToApply, MidiList::NoteAutomationType)
 Copies a zero-time origin based MIDI sequence in to a MidiClip.
 
HashCode hashDouble (double d) noexcept
 
juce::ValueTree loadEditFromProjectManager (ProjectManager &, ProjectItemID)
 Uses the ProjectManager to find an Edit file and load it as a ValueTree.
 
std::unique_ptr< EditloadEditForExamining (ProjectManager &, ProjectItemID, Edit::EditRole role=Edit::EditRole::forExamining)
 Uses the ProjectManager to find an Edit file and open it.
 
juce::ValueTree loadEditFromFile (Engine &, const juce::File &, ProjectItemID)
 Legacy, will be deprecated soon.
 
juce::ValueTree createEmptyEdit (Engine &)
 Legacy, will be deprecated soon.
 
std::unique_ptr< EditloadEditFromFile (Engine &, const juce::File &, Edit::EditRole role=Edit::EditRole::forEditing)
 Loads an edit from file, ready for playback / editing.
 
std::unique_ptr< EditcreateEmptyEdit (Engine &, const juce::File &)
 Creates a new edit for a file, ready for playback / editing.
 
juce::ValueTree updateLegacyEdit (const juce::ValueTree &)
 Converts old edit formats to the latest structure.
 
void updateLegacyEdit (juce::XmlElement &editXML)
 Converts old edit formats to the latest structure.
 
Project::Ptr getProjectForEdit (const Edit &)
 Tries to find the project that contains this edit (but may return nullptr!)
 
ProjectItem::Ptr getProjectItemForEdit (const Edit &)
 Tries to find the project item that refers to this edit (but may return nullptr!)
 
juce::File getEditFileFromProjectManager (Edit &)
 Uses the ProjectManager to look up the file for an Edit.
 
bool referencesProjectItem (Edit &, ProjectItemID)
 Returns true if the ProjectItemID is being used for any of the Edit's elements.
 
void insertSpaceIntoEdit (Edit &, TimeRange timeRangeToInsert)
 Inserts blank space in to an Edit, splitting clips if necessary.
 
void insertSpaceIntoEditFromBeatRange (Edit &, BeatRange)
 Inserts a number of blank beats in to the Edit.
 
juce::Array< Track * > getAllTracks (const Edit &)
 Returns all the tracks in an Edit.
 
juce::Array< Track * > getTopLevelTracks (const Edit &)
 Returns all of the non-foldered tracks in an Edit.
 
juce::Array< AudioTrack * > getAudioTracks (const Edit &)
 Returns all the AudioTracks in an Edit.
 
juce::Array< ClipTrack * > getClipTracks (const Edit &)
 Returns all the ClipTracks in an Edit.
 
int getTotalNumTracks (const Edit &)
 Returns the total number of Tracks in an Edit.
 
TrackfindTrackForID (const Edit &, EditItemID)
 Returns the Track with a given ID if contained in the Edit.
 
AudioTrackfindAudioTrackForID (const Edit &, EditItemID)
 Returns the AudioTrack with a given ID if contained in the Edit.
 
juce::Array< Track * > findTracksForIDs (const Edit &, const juce::Array< EditItemID > &)
 Returns the Tracks for the given IDs in the Edit.
 
TrackfindTrackForState (const Edit &, const juce::ValueTree &)
 Returns the Track with a given state if contained in the Edit.
 
AudioTrackgetFirstAudioTrack (const Edit &)
 Returns the first audio track in an Edit.
 
bool containsTrack (const Edit &, const Track &)
 Returns true if the Edit contains this Track.
 
TrackOutputgetTrackOutput (Track &)
 Returns the TrackOutput if the given track has one.
 
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.
 
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.
 
juce::Array< Track * > findAllTracksContainingSelectedItems (const SelectableList &)
 Returns all the tracks containing the selected tracks or TrackItems.
 
ClipTrackfindFirstClipTrackFromSelection (const SelectableList &)
 Returns the first ClipTrack from the selected tracks or clips.
 
Clip::Ptr duplicateClip (const Clip &)
 Creates a unique copy of this clip with a new EditItemID.
 
SelectableList splitClips (const SelectableList &clips, TimePosition time)
 Splits the clips at a given time.
 
void deleteRegionOfClip (Clip &, TimeRange rangeToDelete)
 Deletes a time range of a Clip.
 
void deleteRegionOfSelectedClips (SelectionManager &, TimeRange rangeToDelete, CloseGap, bool moveAllSubsequentClipsOnTrack)
 Deletes a time range of a Clip selection, optionally closing the gap.
 
void deleteRegionOfTracks (Edit &, TimeRange rangeToDelete, bool onlySelectedTracks, CloseGap, SelectionManager *)
 Deletes a time range of an Edit, optionally closing the gap.
 
void moveSelectedClips (const SelectableList &, Edit &, MoveClipAction mode, bool alsoMoveAutomation)
 Moves the selected clips within their track.
 
SelectableList getClipSelectionWithCollectionClipContents (const SelectableList &)
 Returns a list of clips.
 
juce::Array< ClipEffect * > getAllClipEffects (Edit &edit)
 Returns all clip effects.
 
ClipOwnerfindClipOwnerForID (const Edit &, EditItemID)
 Returns the ClipOwner with a given ID if it can be found in the Edit.
 
ClipSlotfindClipSlotForID (const Edit &, EditItemID)
 Returns the ClipSlot for the given ID.
 
int findClipSlotIndex (ClipSlot &)
 Returns the index of the ClipSlot in the list it is owned by.
 
ClipfindClipForID (const Edit &, EditItemID)
 Returns the Clip with a given ID if contained in the Edit.
 
ClipfindClipForState (const Edit &, const juce::ValueTree &)
 Returns the Clip for a given state if contained in the Edit.
 
bool containsClip (const Edit &, Clip *)
 Returns true if an Edit contains a given clip.
 
void visitAllTrackItems (const Edit &, std::function< bool(TrackItem &)>)
 Calls a function for all TrackItems in an Edit.
 
TimeRange getTimeRangeForSelectedItems (const SelectableList &)
 Returns the time range covered by the given items.
 
MidiNotefindNoteForState (const Edit &, const juce::ValueTree &)
 Returns the MidiNote with a given state.
 
juce::Result mergeMidiClips (juce::Array< MidiClip * >, SelectionManager *sm=nullptr)
 Merges a set of MIDI clips in to one new one.
 
juce::OwnedArray< MidiListreadFileToMidiList (juce::File midiFile, bool importAsNoteExpression)
 Helper function to read a file to a number of MidiLists.
 
MidiClip::Ptr createClipFromFile (juce::File midiFile, ClipOwner &, bool importAsNoteExpression)
 Helper function to read a MIDI file and create a MidiClip from it.
 
Plugin::Array getAllPlugins (const Edit &, bool includeMasterVolume)
 Returns all the plugins in a given Edit.
 
Plugin::Ptr findPluginForState (const Edit &, const juce::ValueTree &)
 Returns the plugin with given state.
 
Plugin::Ptr findPluginForID (const Edit &, EditItemID)
 Returns the plugin with given EditItemID.
 
TrackgetTrackContainingPlugin (const Edit &, const Plugin *)
 Returns the track for the track which the plugin is located on.
 
bool areAnyPluginsMissing (const Edit &)
 Returns true if any plugins couldn't be loaded beacuse their files are missing.
 
juce::Array< RackInstance * > getRackInstancesInEditForType (const RackType &)
 Returns all of the instances of a specific RackType in an Edit.
 
void muteOrUnmuteAllPlugins (const Edit &)
 Toggles the enabled state of all plugins in an Edit.
 
void injectMIDIToAllPlugins (const Edit &, const std::span< juce::MidiMessage > &messagesToSend)
 Sends a list of MIDI messages to all the plugins in this edit.
 
void midiPanic (Edit &, bool resetPlugins)
 Performs a "MIDI panic" on the edit, by resetting playback, and sending some all-note-off messages to all plugins in the edit, and optionally resetting them to kill any reverb tails, etc.
 
juce::Array< AutomatableEditItem * > getAllAutomatableEditItems (const Edit &)
 Returns all AutomatableEditItems in an Edit.
 
void deleteAutomation (const SelectableList &selectedClips)
 Deletes the automation covered by the selected clips.
 
juce::Array< AutomatableParameter::ModifierSource * > getAllModifierSources (const Edit &)
 Returns all the ModifierSources in an Edit.
 
juce::ReferenceCountedArray< ModifiergetAllModifiers (const Edit &)
 Returns all the Modifiers in an Edit.
 
Modifier::Ptr findModifierForID (const Edit &, EditItemID)
 Returns the Modifier with a given ID.
 
Modifier::Ptr findModifierForID (const RackType &, EditItemID)
 Returns the Modifier with a given ID if the RackType contains it.
 
TrackgetTrackContainingModifier (const Edit &, const Modifier::Ptr &)
 Returns the Track containing a Modifier.
 
juce::Array< MacroParameterList * > getAllMacroParameterLists (const Edit &)
 Returns all the MacroParameterLists in an Edit.
 
juce::Array< MacroParameterElement * > getAllMacroParameterElements (const Edit &)
 Returns all the MacroParameterElement in an Edit.
 
InputDeviceInstance::RecordingParameters getDefaultRecordingParameters (const EditPlaybackContext &, TimePosition playStart, TimePosition punchIn)
 Returns the default set of recording parameters.
 
juce::Result prepareAndPunchRecord (InputDeviceInstance &, EditItemID)
 Starts an InputDeviceInstance recording to the given target without any count-in etc.
 
tl::expected< Clip::Array, juce::StringpunchOutRecording (InputDeviceInstance &)
 If the instance is currently recording, this will stop it and return any created clips or an error message.
 
bool isRecording (EditPlaybackContext &)
 Returns true if any inputs are currently recording.
 
template<typename TrackType >
juce::Array< TrackType * > getTracksOfType (const Edit &, bool recursive)
 Returns the tracks of a given type in an Edit.
 
template<typename TrackItemType >
juce::Array< TrackItemType * > getTrackItemsOfType (const Track &)
 
template<typename PluginType >
juce::ReferenceCountedObjectPtr< PluginType > insertNewPlugin (Track &, int index=0)
 Adds a new instance of the given plugin to the track's plugin list at the specified index.
 
template<typename ModifierType >
ModifierType::Ptr findModifierTypeForID (const Edit &, EditItemID)
 Returns the Modifier with a given type and ID.
 
juce::StringArray getLaunchQTypeChoices ()
 Returns a list of quantisation type options in the order of LaunchQType.
 
std::optional< LaunchQType > launchQTypeFromName (const juce::String &)
 Returns a the launch Q from a string returned from getLaunchQTypeChoices().
 
juce::String getName (LaunchQType)
 Retuns the name of a LaunchQType for display purposes.
 
double toBarFraction (LaunchQType) noexcept
 Returns the fraction of a bar to be used for a given rate type.
 
LaunchQType fromBarFraction (double) noexcept
 Returns the fraction of a bar to be used for a given rate type.
 
BeatPosition getNext (LaunchQType, const tempo::Sequence &, BeatPosition) noexcept
 Returns the next quantised position.
 
BeatPosition getNext (LaunchQType, const TempoSequence &, BeatPosition) noexcept
 Returns the next quantised position.
 
bool operator< (const PitchSetting &p1, const PitchSetting &p2) noexcept
 
tempo::Sequence::Position createPosition (const TempoSequence &)
 Creates a Position to iterate over the given TempoSequence.
 
juce::String incrementLastDigit (const juce::String &in)
 
BeatPosition toBeats (TimePosition, const TempoSequence &)
 Converts a TimePosition to a BeatPosition given a TempoSequence.
 
TimePosition toTime (BeatPosition, const TempoSequence &)
 Converts a BeatPosition to a TimePosition given a TempoSequence.
 
BeatRange toBeats (TimeRange, const TempoSequence &)
 Converts a TimeRange to a BeatRange given a TempoSequence.
 
TimeRange toTime (BeatRange, const TempoSequence &)
 Converts a BeatRange to a TimeRange given a TempoSequence.
 
ClipPosition createClipPosition (const TempoSequence &, TimeRange, TimeDuration offset={})
 Creates a ClipPosition from either a time or beat range.
 
ClipPosition createClipPosition (const TempoSequence &, BeatRange, BeatDuration offset={})
 Creates a ClipPosition from either a time or beat range.
 
TimePosition toTime (EditTime, const TempoSequence &)
 Converts an EditTime to a TimePosition.
 
BeatPosition toBeats (EditTime, const TempoSequence &)
 Converts an EditTime to a BeatPosition.
 
TimeRange toTime (EditTimeRange, const TempoSequence &)
 Converts an EditTimeRange to a TimeRange.
 
BeatRange toBeats (EditTimeRange, const TempoSequence &)
 Converts an EditTimeRange to a BeatRange.
 
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).
 
template<typename ArrayType >
int findIndexOfNextItemAt (const ArrayType &items, TimePosition time)
 Returns the index of the next item after the given time.
 
template<typename ArrayType >
TimeRange findUnionOfEditTimeRanges (const ArrayType &items)
 Returns the the time range that covers all the given TrackItems.
 
TimeRange toTimeRange (legacy::EditTimeRange r)
 @temporary
 
legacy::EditTimeRange toEditTimeRange (TimeRange r)
 @temporary
 
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::Array< std::pair< AudioTrack *, int > > getTargetTracksAndIndexes (InputDeviceInstance &)
 Returns the AudioTracks and their indexes this instance is assigned to.
 
juce::Array< AudioTrack * > getTargetTracks (InputDeviceInstance &)
 Returns the AudioTracks this instance is assigned to.
 
bool isOnTargetTrack (InputDeviceInstance &, const Track &, int idx)
 Returns true if this instance is assigned to the given Track at the given index .
 
juce::Result clearFromTargets (InputDeviceInstance &, juce::UndoManager *)
 Removes this instance from all assigned targets.
 
bool isAttached (InputDeviceInstance &)
 Returns true if this input is assigned to a target.
 
InputDeviceInstance::Destination * getDestination (InputDeviceInstance &, const Track &track, int index)
 Returns the destination if one has been assigned for the given arguments.
 
InputDeviceInstance::Destination * getDestination (InputDeviceInstance &, const ClipSlot &)
 Returns the destination if one has been assigned for the given arguments.
 
InputDeviceInstance::Destination * getDestination (InputDeviceInstance &, const juce::ValueTree &destinationState)
 Returns the destination if one has been assigned for the given arguments.
 
bool hasErrors (const InputDeviceInstance::PreparedContext &pc)
 Returns true if all the targets were fully prepared.
 
InputDeviceInstance::PreparedContext & append (InputDeviceInstance::PreparedContext &dest, InputDeviceInstance::PreparedContext &&src)
 Appends a PreparedContent to another.
 
std::pair< std::vector< std::unique_ptr< InputDeviceInstance::RecordingContext > >, juce::StringArrayextract (InputDeviceInstance::PreparedContext &&pc)
 Splits the PreparedContext in to valid RecordingContexts and an array of error messages.
 
juce::String createDescriptionOfChannels (const std::vector< ChannelIndex > &)
 Creates a String description of the channels.
 
juce::AudioChannelSet createChannelSet (const std::vector< ChannelIndex > &)
 Creates an AudioChannelSet for a list of ChannelIndexes.
 
juce::AudioChannelSet::ChannelType channelTypeFromAbbreviatedName (const juce::String &)
 Returns the ChannelType for an abbreviated name.
 
juce::AudioChannelSet channelSetFromSpeakerArrangmentString (const juce::String &)
 Creates an AudioChannelSet from a list of abbreviated channel names.
 
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.
 
std::unique_ptr< tracktion::graph::NodecreateNodeForEdit (Edit &, const CreateNodeParams &)
 Creates a Node to render an Edit.
 
WarpedTime warpTime (const WarpMap &map, TimePosition time)
 
void updateProcessPriority (Engine &engine)
 
bool anyEnabledMidiOutDevicesSendingMMC (DeviceManager &dm)
 
void toStart (TransportControl &, const SelectableList &)
 Moves the transport to the start of the selected objects.
 
void toEnd (TransportControl &, const SelectableList &)
 Moves the transport to the end of the selected objects.
 
void tabBack (TransportControl &)
 Moves the transport back to the previous point of interest.
 
void tabForward (TransportControl &)
 Moves the transport forwards to the next point of interest.
 
void markIn (TransportControl &)
 Sets the mark in position to the current transport position.
 
void markOut (TransportControl &)
 Sets the mark out position to the current transport position.
 
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.
 
void freePlaybackContextIfNotRecording (TransportControl &)
 Frees the playback context if no recording is in progress, useful for when an app is minimised.
 
juce::String getCmajorPatchPluginFormatName ()
 
bool isCmajorPatchPluginFormat (const juce::String &formatName)
 
bool isCmajorPatchPluginFormat (const juce::PluginDescription &pd)
 
std::string getCmajorVersion ()
 
juce::String getCmajorPatchCompileError (Plugin &)
 
std::unique_ptr< juce::AudioPluginFormatcreateCmajorPatchPluginFormat (tracktion::Engine &)
 
std::unique_ptr< juce::AudioPluginFormatcreateCmajorPatchPluginFormat (Engine &)
 
void clip (float *data, int numSamples)
 
juce::String createIdentifierString (const juce::PluginDescription &d)
 
void cleanUpDanglingPlugins ()
 
juce::MemoryBlock createScanMessage (const juce::XmlElement &xml)
 
SettingID getPluginListPropertyName ()
 
SearchOperationcreatePluralOptions (juce::String s)
 
SearchOperationmultipleWordMatch (const juce::String &s)
 
SearchOperationcreateCondition (const juce::StringArray &words, int start, int length)
 
SearchOperationcreateSearchForKeywords (const juce::String &keywords)
 Turns a keyword string into a search condition tree.
 
AudioTrackgetOrInsertAudioTrackNearestIndex (Edit &edit, int trackIndex)
 
bool isRecursiveEditClipPaste (const Clipboard::ProjectItems &items, Edit &edit)
 
template<typename SelectableType >
SafeSelectable< SelectableType > makeSafeRef (SelectableType &selectable)
 Creates a SafeSelectable for a given selectable object.
 
template<typename Iterable >
auto makeSafeVector (const Iterable &selectables) -> std::vector< SafeSelectable< typename std::remove_reference< decltype(*selectables[0])>::type > >
 Creates a std::vector<SafeSelectable<Something>> for a given juce::Array of selectable objects.
 
bool callBlocking (std::function< void()> f)
 
void sanitiseValues (juce::AudioBuffer< float > &buffer, int start, int numSamps, float maxAbsValue, float minAbsThreshold)
 
void resetFP () noexcept
 
void clearFP () noexcept
 
bool hasFloatingPointDenormaliseOccurred () noexcept
 
void zeroDenormalisedValuesIfNeeded (juce::AudioBuffer< float > &buffer) noexcept
 
void addAntiDenormalisationNoise (juce::AudioBuffer< float > &buffer, int start, int numSamples) noexcept
 
float dbToGain (float db) noexcept
 
float gainToDb (float gain) noexcept
 
float decibelsToVolumeFaderPosition (float db) noexcept
 
float volumeFaderPositionToDB (float pos) noexcept
 
float volumeFaderPositionToGain (float pos) noexcept
 
float gainToVolumeFaderPosition (float gain) noexcept
 
juce::String gainToDbString (float gain, float infLevel, int decPlaces)
 
float dbStringToDb (const juce::String &dbStr)
 
float dbStringToGain (const juce::String &dbStr)
 
juce::String getPanString (float pan)
 
juce::String getSemitonesAsString (double semitones)
 
bool isAudioDataAlmostSilent (const float *data, int num)
 
float getAudioDataMagnitude (const float *data, int num)
 
void getGainsFromVolumeFaderPositionAndPan (float volSliderPos, float pan, const PanLaw panLaw, float &leftGain, float &rightGain) noexcept
 
PanLaw getDefaultPanLaw () noexcept
 
void setDefaultPanLaw (const PanLaw panLaw)
 
juce::StringArray getPanLawChoices (bool includeDefault) noexcept
 
void convertIntsToFloats (juce::AudioBuffer< float > &buffer)
 
void convertFloatsToInts (juce::AudioBuffer< float > &buffer)
 
template<typename FloatType >
FloatType midiNoteToFrequency (FloatType midiNote)
 
template<typename FloatType >
FloatType frequencyToMidiNote (FloatType freq)
 
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.
 
void clearChannels (juce::AudioBuffer< float > &buffer, int startChannel, int endChannel=-1, int startSample=0, int endSample=-1)
 
juce::AudioPlayHead::CurrentPositionInfo getCurrentPositionInfo (Edit &)
 Converts an Edit's internal transport information to a juce::AudioPlayHead::CurrentPositionInfo.
 
void synchroniseEditPosition (Edit &, const juce::AudioPlayHead::CurrentPositionInfo &)
 Syncs an Edit's transport and tempo sequence to a juce AudioPlayHead.
 
juce::File getNonExistentSiblingWithIncrementedNumberSuffix (const juce::File &file, bool addHashSymbol)
 
bool isMidiFile (const juce::File &f)
 
bool isTracktionEditFile (const juce::File &f)
 
bool isTracktionArchiveFile (const juce::File &f)
 
bool isTracktionProjectFile (const juce::File &f)
 
bool isTracktionPresetFile (const juce::File &f)
 
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.
 
int oddEven (int x)
 
MonotonicBeatRange getMonotonicBeatRange (const SyncRange &)
 
BeatRange getBeatRange (const SyncRange &)
 
int64_t getNumSamples (const SyncRange &)
 
template<typename VarType >
void convertPropertyToType (juce::ValueTree &v, const juce::Identifier &id)
 Ensures a property is a given type which can avoid having to parse a string every time it is read after loading from XML.
 
template<typename Type >
bool matchesAnyOf (const Type &needle, const std::initializer_list< Type > &haystack)
 Returns true if the needle is found in the haystack.
 
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.
 
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.
 
juce::Array< juce::ValueTreegetTreesOfType (const juce::Array< juce::ValueTree > &trees, const juce::Identifier &type)
 Returns a new array with any trees without the given type removed.
 
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.
 
bool operator< (NodeAndID n1, NodeAndID n2)
 Compares two NodeAndIDs.
 
bool operator== (NodeAndID n1, NodeAndID n2)
 Compares two NodeAndIDs.
 
std::unique_ptr< NodeGraphcreateNodeGraph (std::unique_ptr< Node >)
 Transforms a Node and then returns a NodeGraph of it ready to be initialised.
 
template<typename Visitor >
void visitNodes (Node &, Visitor &&, bool preordering)
 Should call the visitor for any direct inputs to the node exactly once.
 
template<typename Visitor >
void visitNodes (Node &node, Visitor &&visitor, bool preordering)
 Should call the visitor for any direct inputs to the node exactly once.
 
template<typename Visitor >
void visitNodesBFS (Node &node, Visitor &&visitor)
 
std::vector< Node * > getNodes (Node &node, VertexOrdering vertexOrdering)
 Returns all the nodes in a Node graph in the order given by vertexOrdering.
 
void addNodesRecursive (std::vector< NodeAndID > &nodeMap, Node &n)
 
std::vector< NodeAndIDcreateNodeMap (const std::vector< Node * > &nodes)
 
std::unique_ptr< NodeGraphcreateNodeGraph (std::unique_ptr< Node > rootNode)
 Transforms a Node and then returns a NodeGraph of it ready to be initialised.
 
LockFreeMultiThreadedNodePlayer::ThreadPoolCreator getPoolCreatorFunction (ThreadPoolStrategy poolType)
 Returns a function to create a ThreadPool for the given stategy.
 
LockFreeMultiThreadedNodePlayer::ThreadPoolCreator getPoolCreatorFunction (ThreadPoolStrategy)
 Returns a function to create a ThreadPool for the given stategy.
 
SplitTimelineRange referenceSampleRangeToSplitTimelineRange (const PlayHead &playHead, juce::Range< int64_t > referenceSampleRange)
 Converts a reference sample range to a TimelinePositionWindow which could have two time ranges if the stream range overlaps the end of the loop range.
 
template<typename IntType >
constexpr double sampleToTime (IntType samplePosition, double sampleRate)
 Converts an integer sample number to a time in seconds.
 
constexpr int64_t timeToSample (double timeInSeconds, double sampleRate)
 Converts a time in seconds to a sample number.
 
template<typename IntType >
constexpr juce::Range< doublesampleToTime (juce::Range< IntType > sampleRange, double sampleRate)
 Converts an integer sample range to a time range in seconds.
 
constexpr juce::Range< int64_ttimeToSample (juce::Range< double > timeInSeconds, double sampleRate)
 Converts a time range in seconds to a range of sample numbers.
 
template<typename RangeType >
constexpr juce::Range< int64_ttimeToSample (RangeType timeInSeconds, double sampleRate)
 Converts a time range in seconds to a range of sample numbers.
 
template<typename NodeType , typename Predicate >
NodeType * findNode (NodeGraph &nodeGraph, Predicate pred)
 Attempts to find a Node of a given type with a specified ID.
 
template<typename NodeType >
NodeType * findNodeWithID (NodeGraph &nodeGraph, size_t nodeIDToLookFor)
 Attempts to find a Node of a given type with a specified ID.
 
template<typename NodeType >
NodeType * findNodeWithIDIfNonZero (NodeGraph *nodeGraph, size_t nodeIDToLookFor)
 Attempts to find a Node of a given type with a specified ID.
 
juce::AudioBuffer< floattoAudioBuffer (choc::buffer::ChannelArrayView< float > view)
 Creates a juce::AudioBuffer from a choc::buffer::BufferView.
 
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.
 
choc::buffer::FrameRange createFrameRange (std::integral auto start, std::integral auto end)
 Creates a FrameRange from any integral type.
 
juce::MidiMessage toMidiMessage (const choc::midi::Sequence::Event &e)
 Converts a choc::midi event to a juce::MidiMessage.
 
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.
 
template<typename BufferType , typename GainType >
void applyGainRamp (BufferType &&buffer, GainType startGain, GainType endGain) noexcept
 Applies a gain ram to a choc::buffer::BufferView.
 
choc::buffer::FrameRange frameRangeWithStartAndLength (choc::buffer::FrameCount start, choc::buffer::FrameCount length)
 Returns a FrameRange with a start and length.
 
choc::buffer::ChannelRange channelRangeWithStartAndLength (choc::buffer::ChannelCount start, choc::buffer::ChannelCount length)
 Returns a ChannelRange with a start and length.
 
template<typename Buffer >
void sanitise (Buffer &buffer)
 
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.
 
template<typename HandleType >
bool setThreadPriority (HandleType handle, int priority)
 
bool tryToUpgradeCurrentThreadToRealtime (const juce::Thread::RealtimeOptions &)
 Tries to upgrade the current thread to realtime priority.
 
bool setThreadPriority (std::thread &t, int priority)
 Changes the thread's priority.
 
bool setThreadPriority (std::thread &, int priority)
 Changes the thread's priority.
 
bool tryToUpgradeCurrentThreadToRealtime (const juce::Thread::RealtimeOptions &)
 Tries to upgrade the current thread to realtime priority.
 

Variables

const int numSamplesPerFlush
 
const charbasic8SwingXML
 
const charbasic16SwingXML
 
const char *const projectFileSuffix
 
const char *const editFileSuffix
 
const char *const legacyEditFileSuffix
 
const char *const archiveFileSuffix
 
const char *const soundFileWildCard
 
const char *const soundFileAndMidiWildCard
 
const char *const midiFileWildCard
 
const char *const soundFileExtensions
 
const char *const soundFileAndMidiExtensions
 
const char *const midiFileExtensions
 
const char *const keyMapWildCard
 
const char *const keyMapSuffix
 
const char *const customControllerFileSuffix
 
const char *const customProgramSetWildcard
 
const char *const customProgramSetFileSuffix
 
const char *const presetFileSuffix
 
const char *const rackFileSuffix
 
const char *const scriptFileSuffix
 
const char *const grooveTemplateSuffix
 
const char *const grooveTemplateWildCard
 
constexpr HertzTag HertzTag_t
 

Detailed Description


Aims:


Notes:


Initialisation:

Avoiding incontinuities when latency changes:

Buffer optimisation:

Typedef Documentation

◆ BeatRange

A RangeType based on beats.

This uses the BeatPosition and BeatDuration objects to represent a range in beats.

The length in time will vary depending on the tempo and time signature applied to the beats.

Definition at line 36 of file tracktion_TimeRange.h.

◆ SampleCount [1/2]

using tracktion::core::SampleCount = typedef int64_t

Definition at line 16 of file tracktion_Types.h.

◆ TimeRange

A RangeType based on real time (i.e.

seconds). This uses the TimePosition and TimeDuration objects to represent a range in time.

Definition at line 27 of file tracktion_TimeRange.h.

Enumeration Type Documentation

◆ AllocateAudioBuffer

Enumerator
no 

Don't allocate an audio buffer, your subclass will ignore the dest buffer passed to process and simply use setAudioOutput to pass the buffer along.

yes 

Do allocate an audio buffer so your subclass use the dest buffer passed to process.

Definition at line 176 of file tracktion_Node.h.

◆ ClearBuffers

enum class tracktion::graph::ClearBuffers
strong
Enumerator
no 

Don't clear buffers before passing them to process, your subclass will take care of that.

yes 

Do clear buffers before passing to process so your subclass can simply add in to them.

Definition at line 170 of file tracktion_Node.h.

◆ ThreadPoolStrategy

Available strategies for thread pools.

This will determine how worker threads are handled when no Nodes are available for processing.

Enumerator
conditionVariable 

Uses CVs to pause threads.

realTime 

Uses pause, yield and sleeps to suspend threads.

hybrid 

Uses a combination of the above, avoiding CVs on the audio thread.

semaphore 

Uses a semaphore to suspend threads.

lightweightSemaphore 

Uses a semaphore/spin mechanism to suspend threads.

lightweightSemHybrid 

Uses a combination of semaphores/spin and yields to suspend threads.

Definition at line 23 of file tracktion_NodePlayerThreadPools.h.

◆ TransformResult

Enum to signify the result of the transform function.

Enumerator
connectionsMade 

No transform has been made.

nodesDeleted 

New connections have been made.

Nodes have been deleted.

Definition at line 163 of file tracktion_Node.h.

◆ VertexOrdering

Specifies the ordering algorithm.

Definition at line 408 of file tracktion_Node.h.

Function Documentation

◆ abs() [1/8]

BeatDuration tracktion::core::abs ( BeatDuration  t)

Returns the absolute of this BeatDuration.

Definition at line 727 of file tracktion_Time.h.

◆ abs() [2/8]

BeatDuration tracktion::core::abs ( BeatDuration  t)

Returns the absolute of this BeatDuration.

Definition at line 727 of file tracktion_Time.h.

◆ abs() [3/8]

BeatPosition tracktion::core::abs ( BeatPosition  t)

Returns the absolute of this BeatPosition.

Definition at line 678 of file tracktion_Time.h.

◆ abs() [4/8]

BeatPosition tracktion::core::abs ( BeatPosition  t)

Returns the absolute of this BeatPosition.

Definition at line 678 of file tracktion_Time.h.

◆ abs() [5/8]

TimeDuration tracktion::core::abs ( TimeDuration  t)

Returns the absolute of this TimeDuration.

Definition at line 550 of file tracktion_Time.h.

◆ abs() [6/8]

TimeDuration tracktion::core::abs ( TimeDuration  t)

Returns the absolute of this TimeDuration.

Definition at line 550 of file tracktion_Time.h.

◆ abs() [7/8]

TimePosition tracktion::core::abs ( TimePosition  t)

Returns the absolute of this TimePosition.

Definition at line 484 of file tracktion_Time.h.

◆ abs() [8/8]

TimePosition tracktion::core::abs ( TimePosition  t)

Returns the absolute of this TimePosition.

Definition at line 484 of file tracktion_Time.h.

◆ accumulate() [1/2]

template<class Container , class T , class BinaryOperation >
T tracktion::core::accumulate ( const Container &  container,
init 
)

Definition at line 17 of file tracktion_AlgorithmAdapters.h.

◆ accumulate() [2/2]

template<class Container , class T , class BinaryOperation >
T tracktion::core::accumulate ( const Container &  container,
init,
BinaryOperation  op 
)

Definition at line 23 of file tracktion_AlgorithmAdapters.h.

◆ addNodesRecursive()

void tracktion::graph::addNodesRecursive ( std::vector< NodeAndID > &  nodeMap,
Node n 
)

Definition at line 750 of file tracktion_Node.h.

◆ applyGainRamp()

template<typename BufferType , typename GainType >
void tracktion::graph::applyGainRamp ( BufferType &&  buffer,
GainType  startGain,
GainType  endGain 
)
noexcept

Applies a gain ram to a choc::buffer::BufferView.

Definition at line 71 of file tracktion_GlueCode.h.

◆ assign_if_valid()

template<class Type >
bool tracktion::core::assign_if_valid ( Type &  dest,
const std::optional< Type > &  src 
)

Definition at line 116 of file tracktion_AlgorithmAdapters.h.

◆ channelRangeWithStartAndLength()

choc::buffer::ChannelRange tracktion::graph::channelRangeWithStartAndLength ( choc::buffer::ChannelCount  start,
choc::buffer::ChannelCount  length 
)

Returns a ChannelRange with a start and length.

Definition at line 94 of file tracktion_GlueCode.h.

◆ contains()

template<class Container , class UnaryFunction >
bool tracktion::core::contains ( const Container &  container,
UnaryFunction  f 
)

Definition at line 35 of file tracktion_AlgorithmAdapters.h.

◆ contains_v()

template<class Container >
bool tracktion::core::contains_v ( const Container &  container,
typename Container::value_type  v 
)

Returns true if a specific value is found in a container.

Definition at line 43 of file tracktion_AlgorithmAdapters.h.

◆ createFrameRange()

choc::buffer::FrameRange tracktion::graph::createFrameRange ( std::integral auto  start,
std::integral auto  end 
)

Creates a FrameRange from any integral type.

Definition at line 31 of file tracktion_GlueCode.h.

◆ createNodeGraph() [1/2]

std::unique_ptr< NodeGraph > tracktion::graph::createNodeGraph ( std::unique_ptr< Node rootNode)

Transforms a Node and then returns a NodeGraph of it ready to be initialised.

Definition at line 772 of file tracktion_Node.h.

◆ createNodeGraph() [2/2]

std::unique_ptr< NodeGraph > tracktion::graph::createNodeGraph ( std::unique_ptr< Node rootNode)

Transforms a Node and then returns a NodeGraph of it ready to be initialised.

Definition at line 772 of file tracktion_Node.h.

◆ createNodeMap()

std::vector< NodeAndID > tracktion::graph::createNodeMap ( const std::vector< Node * > &  nodes)

Definition at line 758 of file tracktion_Node.h.

◆ erase_if_null()

template<class SmartPointerContainer >
SmartPointerContainer & tracktion::core::erase_if_null ( SmartPointerContainer &  container)

Definition at line 126 of file tracktion_AlgorithmAdapters.h.

◆ findNode()

template<typename NodeType , typename Predicate >
NodeType * tracktion::graph::findNode ( NodeGraph nodeGraph,
Predicate  pred 
)

Attempts to find a Node of a given type with a specified ID.

This uses the sortedNodes vector so should be relatively quick (much quicker than traversing from the root node.

Definition at line 61 of file tracktion_Utility.h.

◆ findNodeWithID()

template<typename NodeType >
NodeType * tracktion::graph::findNodeWithID ( NodeGraph nodeGraph,
size_t  nodeIDToLookFor 
)

Attempts to find a Node of a given type with a specified ID.

This uses the sortedNodes vector so should be relatively quick (much quicker than traversing from the root node.

Definition at line 85 of file tracktion_Utility.h.

◆ findNodeWithIDIfNonZero()

template<typename NodeType >
NodeType * tracktion::graph::findNodeWithIDIfNonZero ( NodeGraph nodeGraph,
size_t  nodeIDToLookFor 
)

Attempts to find a Node of a given type with a specified ID.

This uses the sortedNodes vector so should be relatively quick (much quicker than traversing from the root node.

Definition at line 106 of file tracktion_Utility.h.

◆ for_each()

template<class Container , class UnaryFunction >
UnaryFunction tracktion::core::for_each ( const Container &  container,
UnaryFunction  f 
)

Definition at line 29 of file tracktion_AlgorithmAdapters.h.

◆ frameRangeWithStartAndLength()

choc::buffer::FrameRange tracktion::graph::frameRangeWithStartAndLength ( choc::buffer::FrameCount  start,
choc::buffer::FrameCount  length 
)

Returns a FrameRange with a start and length.

Definition at line 88 of file tracktion_GlueCode.h.

◆ fromUnderlyingType< BeatDuration >()

template<>
BeatDuration tracktion::core::fromUnderlyingType< BeatDuration > ( double  t)

Definition at line 211 of file tracktion_TimeRange.h.

◆ fromUnderlyingType< BeatPosition >()

template<>
BeatPosition tracktion::core::fromUnderlyingType< BeatPosition > ( double  t)

Definition at line 210 of file tracktion_TimeRange.h.

◆ fromUnderlyingType< TimeDuration >()

template<>
TimeDuration tracktion::core::fromUnderlyingType< TimeDuration > ( double  t)

Definition at line 206 of file tracktion_TimeRange.h.

◆ fromUnderlyingType< TimePosition >()

template<>
TimePosition tracktion::core::fromUnderlyingType< TimePosition > ( double  t)

Definition at line 205 of file tracktion_TimeRange.h.

◆ get_checked()

template<class Container , class IndexType >
std::optional< typename Container::value_type > tracktion::core::get_checked ( const Container &  container,
IndexType  index 
)

Definition at line 94 of file tracktion_AlgorithmAdapters.h.

◆ get_or()

template<class Container , class IndexType >
Container::value_type tracktion::core::get_or ( const Container &  container,
IndexType  index,
const typename Container::value_type &  defaultValue 
)

Definition at line 105 of file tracktion_AlgorithmAdapters.h.

◆ getBezierEnds()

void tracktion::core::getBezierEnds ( const double  x1,
const double  y1,
const double  x2,
const double  y2,
const double  c,
double x1out,
double y1out,
double x2out,
double y2out 
)
noexcept

Definition at line 48 of file tracktion_Bezier.h.

◆ getBezierPoint()

std::pair< double, double > tracktion::core::getBezierPoint ( double  x1,
double  y1,
double  x2,
double  y2,
double  c 
)
noexcept

Definition at line 19 of file tracktion_Bezier.h.

◆ getBezierYFromX()

double tracktion::core::getBezierYFromX ( double  x,
double  x1,
double  y1,
double  xb,
double  yb,
double  x2,
double  y2 
)
noexcept

Definition at line 73 of file tracktion_Bezier.h.

◆ getNodes()

std::vector< Node * > tracktion::graph::getNodes ( Node node,
VertexOrdering  vertexOrdering 
)

Returns all the nodes in a Node graph in the order given by vertexOrdering.

Definition at line 723 of file tracktion_Node.h.

◆ getPoolCreatorFunction() [1/2]

LockFreeMultiThreadedNodePlayer::ThreadPoolCreator tracktion::graph::getPoolCreatorFunction ( ThreadPoolStrategy  poolType)

Returns a function to create a ThreadPool for the given stategy.

Definition at line 685 of file tracktion_NodePlayerThreadPools.cpp.

◆ getPoolCreatorFunction() [2/2]

LockFreeMultiThreadedNodePlayer::ThreadPoolCreator tracktion::graph::getPoolCreatorFunction ( ThreadPoolStrategy  poolType)

Returns a function to create a ThreadPool for the given stategy.

Definition at line 685 of file tracktion_NodePlayerThreadPools.cpp.

◆ hash()

template<typename T >
size_t tracktion::core::hash ( size_t  seed,
const T &  v 
)

Hashes a type with a given seed and returns the new hash value.

Definition at line 91 of file tracktion_Hash.h.

◆ hash_combine()

template<typename T >
void tracktion::core::hash_combine ( size_t seed,
const T &  v 
)

Hashes a type with a given seed, modifying the seed.

Definition at line 56 of file tracktion_Hash.h.

◆ hash_range() [1/3]

template<typename Container >
std::size_t tracktion::core::hash_range ( const Container &  container)

Hashes a container with a default seed and returns the hash value.

Definition at line 84 of file tracktion_Hash.h.

◆ hash_range() [2/3]

template<typename It >
std::size_t tracktion::core::hash_range ( It  first,
It  last 
)

Hashes a range with a default seed and returns the new hash value.

Definition at line 64 of file tracktion_Hash.h.

◆ hash_range() [3/3]

template<typename It >
void tracktion::core::hash_range ( std::size_t seed,
It  first,
It  last 
)

Hashes a range with a given seed, modifying the seed.

Definition at line 76 of file tracktion_Hash.h.

◆ index_if()

template<class Container , class Predicate >
std::optional< size_t > tracktion::core::index_if ( const Container &  container,
Predicate  p 
)

Definition at line 84 of file tracktion_AlgorithmAdapters.h.

◆ index_of()

template<class Container >
std::optional< size_t > tracktion::core::index_of ( const Container &  container,
typename Container::value_type  v 
)

Definition at line 74 of file tracktion_AlgorithmAdapters.h.

◆ makeNode()

template<typename NodeType , typename... Args>
std::unique_ptr< Node > tracktion::graph::makeNode ( Args &&...  args)

Creates a node of the given type and returns it as the base Node class.

Definition at line 82 of file tracktion_Node.h.

◆ multiplyBy()

template<typename BufferViewType , typename SampleType , typename SmoothingType >
void tracktion::graph::multiplyBy ( BufferViewType &  view,
juce::SmoothedValue< SampleType, SmoothingType > &  value 
)
noexcept

Mutiplies a choc::buffer::BufferView by a juce::SmoothedValue.

Definition at line 48 of file tracktion_GlueCode.h.

◆ operator!=() [1/11]

constexpr bool tracktion::core::operator!= ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 822 of file tracktion_Time.h.

◆ operator!=() [2/11]

constexpr bool tracktion::core::operator!= ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 822 of file tracktion_Time.h.

◆ operator!=() [3/11]

constexpr bool tracktion::core::operator!= ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatPositions.

Definition at line 819 of file tracktion_Time.h.

◆ operator!=() [4/11]

constexpr bool tracktion::core::operator!= ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatPositions.

Definition at line 819 of file tracktion_Time.h.

◆ operator!=() [5/11]

template<typename PositionType >
bool tracktion::core::operator!= ( const RangeType< PositionType > &  r1,
const RangeType< PositionType > &  r2 
)

Compares two ranges to check if they are not equal.

Definition at line 372 of file tracktion_TimeRange.h.

◆ operator!=() [6/11]

template<typename PositionType >
bool tracktion::core::operator!= ( const RangeType< PositionType > &  r1,
const RangeType< PositionType > &  r2 
)

Compares two ranges to check if they are not equal.

Definition at line 372 of file tracktion_TimeRange.h.

◆ operator!=() [7/11]

constexpr bool tracktion::core::operator!= ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 652 of file tracktion_Time.h.

◆ operator!=() [8/11]

constexpr bool tracktion::core::operator!= ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 652 of file tracktion_Time.h.

◆ operator!=() [9/11]

constexpr bool tracktion::core::operator!= ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimeDurations.

Definition at line 649 of file tracktion_Time.h.

◆ operator!=() [10/11]

constexpr bool tracktion::core::operator!= ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimeDurations.

Definition at line 649 of file tracktion_Time.h.

◆ operator!=() [11/11]

constexpr bool tracktion::core::operator!= ( tempo::Key  k1,
tempo::Key  k2 
)
constexpr

Compares two Keys.

Definition at line 316 of file tracktion_Tempo.h.

◆ operator*() [1/20]

constexpr TimeDuration tracktion::core::operator* ( BeatDuration  t,
tempo::SecondsPerBeat  spb 
)
constexpr

Converts beats to time.

Definition at line 302 of file tracktion_Tempo.h.

◆ operator*() [2/20]

constexpr TimePosition tracktion::core::operator* ( BeatPosition  t,
tempo::SecondsPerBeat  spb 
)
constexpr

Converts beats to time.

Definition at line 300 of file tracktion_Tempo.h.

◆ operator*() [3/20]

template<typename Type >
constexpr BeatDuration tracktion::core::operator* ( const BeatDuration t,
Type  ammount 
)
constexpr

Multiplies a BeatDuration by an ammount.

Definition at line 798 of file tracktion_Time.h.

◆ operator*() [4/20]

template<typename Type >
constexpr BeatDuration tracktion::core::operator* ( const BeatDuration t,
Type  ammount 
)
constexpr

Multiplies a BeatDuration by an ammount.

Definition at line 798 of file tracktion_Time.h.

◆ operator*() [5/20]

template<typename Type >
constexpr BeatPosition tracktion::core::operator* ( const BeatPosition t,
Type  ammount 
)
constexpr

Multiplies a BeatPosition by an ammount.

Definition at line 787 of file tracktion_Time.h.

◆ operator*() [6/20]

template<typename Type >
constexpr BeatPosition tracktion::core::operator* ( const BeatPosition t,
Type  ammount 
)
constexpr

Multiplies a BeatPosition by an ammount.

Definition at line 787 of file tracktion_Time.h.

◆ operator*() [7/20]

constexpr TimeDuration tracktion::core::operator* ( const TimeDuration t,
double  ammount 
)
constexpr

Multiplies a TimeDuration by an ammount.

Definition at line 628 of file tracktion_Time.h.

◆ operator*() [8/20]

constexpr TimeDuration tracktion::core::operator* ( const TimeDuration t,
double  ammount 
)
constexpr

Multiplies a TimeDuration by an ammount.

Definition at line 628 of file tracktion_Time.h.

◆ operator*() [9/20]

constexpr TimePosition tracktion::core::operator* ( const TimePosition t,
double  ammount 
)
constexpr

Multiplies a TimePosition by an ammount.

Definition at line 618 of file tracktion_Time.h.

◆ operator*() [10/20]

constexpr TimePosition tracktion::core::operator* ( const TimePosition t,
double  ammount 
)
constexpr

Multiplies a TimePosition by an ammount.

Definition at line 618 of file tracktion_Time.h.

◆ operator*() [11/20]

constexpr BeatDuration tracktion::core::operator* ( tempo::BeatsPerMinute  bpm,
TimeDuration  t 
)
constexpr

Converts time to beats.

Definition at line 297 of file tracktion_Tempo.h.

◆ operator*() [12/20]

constexpr BeatPosition tracktion::core::operator* ( tempo::BeatsPerMinute  bpm,
TimePosition  t 
)
constexpr

Converts time to beats.

Definition at line 295 of file tracktion_Tempo.h.

◆ operator*() [13/20]

constexpr BeatDuration tracktion::core::operator* ( tempo::BeatsPerSecond  bps,
TimeDuration  t 
)
constexpr

Converts time to beats.

Definition at line 288 of file tracktion_Tempo.h.

◆ operator*() [14/20]

constexpr BeatPosition tracktion::core::operator* ( tempo::BeatsPerSecond  bps,
TimePosition  t 
)
constexpr

Converts time to beats.

Definition at line 286 of file tracktion_Tempo.h.

◆ operator*() [15/20]

constexpr TimeDuration tracktion::core::operator* ( tempo::SecondsPerBeat  spb,
BeatDuration  t 
)
constexpr

Converts beats to time.

Definition at line 306 of file tracktion_Tempo.h.

◆ operator*() [16/20]

constexpr TimePosition tracktion::core::operator* ( tempo::SecondsPerBeat  spb,
BeatPosition  t 
)
constexpr

Converts beats to time.

Definition at line 304 of file tracktion_Tempo.h.

◆ operator*() [17/20]

constexpr BeatDuration tracktion::core::operator* ( TimeDuration  t,
tempo::BeatsPerMinute  bpm 
)
constexpr

Converts time to beats.

Definition at line 293 of file tracktion_Tempo.h.

◆ operator*() [18/20]

constexpr BeatDuration tracktion::core::operator* ( TimeDuration  t,
tempo::BeatsPerSecond  bps 
)
constexpr

Converts time to beats.

Definition at line 284 of file tracktion_Tempo.h.

◆ operator*() [19/20]

constexpr BeatPosition tracktion::core::operator* ( TimePosition  t,
tempo::BeatsPerMinute  bpm 
)
constexpr

Converts time to beats.

Definition at line 291 of file tracktion_Tempo.h.

◆ operator*() [20/20]

constexpr BeatPosition tracktion::core::operator* ( TimePosition  t,
tempo::BeatsPerSecond  bps 
)
constexpr

Converts time to beats.

Definition at line 282 of file tracktion_Tempo.h.

◆ operator+() [1/14]

constexpr BeatDuration tracktion::core::operator+ ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Adds two BeatDurations together.

Definition at line 761 of file tracktion_Time.h.

◆ operator+() [2/14]

constexpr BeatDuration tracktion::core::operator+ ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Adds two BeatDurations together.

Definition at line 761 of file tracktion_Time.h.

◆ operator+() [3/14]

constexpr BeatPosition tracktion::core::operator+ ( const BeatPosition t1,
const BeatDuration t2 
)
constexpr

Adds a BeatDuration to a BeatPosition.

Definition at line 766 of file tracktion_Time.h.

◆ operator+() [4/14]

constexpr BeatPosition tracktion::core::operator+ ( const BeatPosition t1,
const BeatDuration t2 
)
constexpr

Adds a BeatDuration to a BeatPosition.

Definition at line 766 of file tracktion_Time.h.

◆ operator+() [5/14]

template<typename PositionType >
RangeType< PositionType > tracktion::core::operator+ ( const RangeType< PositionType > &  r,
typename RangeType< PositionType >::Duration  d 
)

Adds a duration to a range, moving it forwards.

Definition at line 375 of file tracktion_TimeRange.h.

◆ operator+() [6/14]

template<typename PositionType >
RangeType< PositionType > tracktion::core::operator+ ( const RangeType< PositionType > &  r,
typename RangeType< PositionType >::Duration  d 
)

Adds a duration to a range, moving it forwards.

Definition at line 375 of file tracktion_TimeRange.h.

◆ operator+() [7/14]

constexpr TimeDuration tracktion::core::operator+ ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Adds two TimeDurations together.

Definition at line 569 of file tracktion_Time.h.

◆ operator+() [8/14]

template<typename Type >
constexpr TimeDuration tracktion::core::operator+ ( const TimeDuration t1,
std::chrono::duration< Type >  t2 
)
constexpr

Adds a time to a TimeDuration.

Definition at line 595 of file tracktion_Time.h.

◆ operator+() [9/14]

constexpr TimeDuration tracktion::core::operator+ ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Adds two TimeDurations together.

Definition at line 569 of file tracktion_Time.h.

◆ operator+() [10/14]

template<typename Type >
constexpr TimeDuration tracktion::core::operator+ ( const TimeDuration t1,
std::chrono::duration< Type >  t2 
)
constexpr

Adds a time to a TimeDuration.

Definition at line 595 of file tracktion_Time.h.

◆ operator+() [11/14]

constexpr TimePosition tracktion::core::operator+ ( const TimePosition t1,
const TimeDuration t2 
)
constexpr

Adds a TimeDuration to a TimePosition.

Definition at line 574 of file tracktion_Time.h.

◆ operator+() [12/14]

template<typename Type >
constexpr TimePosition tracktion::core::operator+ ( const TimePosition t1,
std::chrono::duration< Type >  t2 
)
constexpr

Adds a time to a TimePosition.

Definition at line 601 of file tracktion_Time.h.

◆ operator+() [13/14]

constexpr TimePosition tracktion::core::operator+ ( const TimePosition t1,
const TimeDuration t2 
)
constexpr

Adds a TimeDuration to a TimePosition.

Definition at line 574 of file tracktion_Time.h.

◆ operator+() [14/14]

template<typename Type >
constexpr TimePosition tracktion::core::operator+ ( const TimePosition t1,
std::chrono::duration< Type >  t2 
)
constexpr

Adds a time to a TimePosition.

Definition at line 601 of file tracktion_Time.h.

◆ operator-() [1/26]

constexpr BeatDuration tracktion::core::operator- ( BeatDuration  t)
constexpr

Negates a BeatDuration.

Definition at line 755 of file tracktion_Time.h.

◆ operator-() [2/26]

constexpr BeatDuration tracktion::core::operator- ( BeatDuration  t)
constexpr

Negates a BeatDuration.

Definition at line 755 of file tracktion_Time.h.

◆ operator-() [3/26]

constexpr BeatPosition tracktion::core::operator- ( BeatPosition  t)
constexpr

Negates a BeatPosition.

Definition at line 750 of file tracktion_Time.h.

◆ operator-() [4/26]

constexpr BeatPosition tracktion::core::operator- ( BeatPosition  t)
constexpr

Negates a BeatPosition.

Definition at line 750 of file tracktion_Time.h.

◆ operator-() [5/26]

constexpr BeatDuration tracktion::core::operator- ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Subtracts a BeatDuration from another one.

Definition at line 776 of file tracktion_Time.h.

◆ operator-() [6/26]

constexpr BeatDuration tracktion::core::operator- ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Subtracts a BeatDuration from another one.

Definition at line 776 of file tracktion_Time.h.

◆ operator-() [7/26]

constexpr BeatPosition tracktion::core::operator- ( const BeatPosition t1,
const BeatDuration t2 
)
constexpr

Subtracts a BeatDuration from a BeatPosition.

Definition at line 781 of file tracktion_Time.h.

◆ operator-() [8/26]

constexpr BeatDuration tracktion::core::operator- ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Subtracts a BeatPosition from another one, returning the duration between them.

Definition at line 771 of file tracktion_Time.h.

◆ operator-() [9/26]

constexpr BeatPosition tracktion::core::operator- ( const BeatPosition t1,
const BeatDuration t2 
)
constexpr

Subtracts a BeatDuration from a BeatPosition.

Definition at line 781 of file tracktion_Time.h.

◆ operator-() [10/26]

constexpr BeatDuration tracktion::core::operator- ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Subtracts a BeatPosition from another one, returning the duration between them.

Definition at line 771 of file tracktion_Time.h.

◆ operator-() [11/26]

template<typename PositionType >
RangeType< PositionType > tracktion::core::operator- ( const RangeType< PositionType > &  r,
typename RangeType< PositionType >::Duration  d 
)

Subtracts a duration to a range, moving it backwards.

Definition at line 377 of file tracktion_TimeRange.h.

◆ operator-() [12/26]

template<typename PositionType >
RangeType< PositionType > tracktion::core::operator- ( const RangeType< PositionType > &  r,
typename RangeType< PositionType >::Duration  d 
)

Subtracts a duration to a range, moving it backwards.

Definition at line 377 of file tracktion_TimeRange.h.

◆ operator-() [13/26]

constexpr TimeDuration tracktion::core::operator- ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Subtracts a TimeDuration from another one.

Definition at line 584 of file tracktion_Time.h.

◆ operator-() [14/26]

template<typename Type >
constexpr TimeDuration tracktion::core::operator- ( const TimeDuration t1,
std::chrono::duration< Type >  t2 
)
constexpr

Subtracts a time from a TimeDuration.

Definition at line 607 of file tracktion_Time.h.

◆ operator-() [15/26]

constexpr TimeDuration tracktion::core::operator- ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Subtracts a TimeDuration from another one.

Definition at line 584 of file tracktion_Time.h.

◆ operator-() [16/26]

template<typename Type >
constexpr TimeDuration tracktion::core::operator- ( const TimeDuration t1,
std::chrono::duration< Type >  t2 
)
constexpr

Subtracts a time from a TimeDuration.

Definition at line 607 of file tracktion_Time.h.

◆ operator-() [17/26]

constexpr TimePosition tracktion::core::operator- ( const TimePosition t1,
const TimeDuration t2 
)
constexpr

Subtracts a TimeDuration from a TimePosition.

Definition at line 589 of file tracktion_Time.h.

◆ operator-() [18/26]

constexpr TimeDuration tracktion::core::operator- ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Subtracts a TimePosition from another one, returning the duration bewteen them.

Definition at line 579 of file tracktion_Time.h.

◆ operator-() [19/26]

template<typename Type >
constexpr TimePosition tracktion::core::operator- ( const TimePosition t1,
std::chrono::duration< Type >  t2 
)
constexpr

Subtracts a time from a TimePosition.

Definition at line 613 of file tracktion_Time.h.

◆ operator-() [20/26]

constexpr TimePosition tracktion::core::operator- ( const TimePosition t1,
const TimeDuration t2 
)
constexpr

Subtracts a TimeDuration from a TimePosition.

Definition at line 589 of file tracktion_Time.h.

◆ operator-() [21/26]

constexpr TimeDuration tracktion::core::operator- ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Subtracts a TimePosition from another one, returning the duration bewteen them.

Definition at line 579 of file tracktion_Time.h.

◆ operator-() [22/26]

template<typename Type >
constexpr TimePosition tracktion::core::operator- ( const TimePosition t1,
std::chrono::duration< Type >  t2 
)
constexpr

Subtracts a time from a TimePosition.

Definition at line 613 of file tracktion_Time.h.

◆ operator-() [23/26]

constexpr TimeDuration tracktion::core::operator- ( TimeDuration  t)
constexpr

Negates a TimeDuration.

Definition at line 534 of file tracktion_Time.h.

◆ operator-() [24/26]

constexpr TimeDuration tracktion::core::operator- ( TimeDuration  t)
constexpr

Negates a TimeDuration.

Definition at line 534 of file tracktion_Time.h.

◆ operator-() [25/26]

constexpr TimePosition tracktion::core::operator- ( TimePosition  t)
constexpr

Negates a TimePosition.

Definition at line 468 of file tracktion_Time.h.

◆ operator-() [26/26]

constexpr TimePosition tracktion::core::operator- ( TimePosition  t)
constexpr

Negates a TimePosition.

Definition at line 468 of file tracktion_Time.h.

◆ operator/() [1/18]

constexpr double tracktion::core::operator/ ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Divides a BeatDuration by another BeatDuration.

Definition at line 813 of file tracktion_Time.h.

◆ operator/() [2/18]

constexpr BeatDuration tracktion::core::operator/ ( const BeatDuration t,
double  ammount 
)
constexpr

Divides a BeatDuration by an ammount.

Definition at line 803 of file tracktion_Time.h.

◆ operator/() [3/18]

constexpr BeatDuration tracktion::core::operator/ ( const BeatDuration t,
double  ammount 
)
constexpr

Divides a BeatDuration by an ammount.

Definition at line 803 of file tracktion_Time.h.

◆ operator/() [4/18]

constexpr double tracktion::core::operator/ ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Divides a BeatDuration by another BeatDuration.

Definition at line 813 of file tracktion_Time.h.

◆ operator/() [5/18]

constexpr double tracktion::core::operator/ ( const BeatPosition t1,
const BeatDuration t2 
)
constexpr

Divides a BeatPosition by a BeatDuration.

Definition at line 808 of file tracktion_Time.h.

◆ operator/() [6/18]

constexpr BeatPosition tracktion::core::operator/ ( const BeatPosition t,
double  ammount 
)
constexpr

Divides a BeatPosition by an ammount.

Definition at line 792 of file tracktion_Time.h.

◆ operator/() [7/18]

constexpr BeatPosition tracktion::core::operator/ ( const BeatPosition t,
double  ammount 
)
constexpr

Divides a BeatPosition by an ammount.

Definition at line 792 of file tracktion_Time.h.

◆ operator/() [8/18]

constexpr double tracktion::core::operator/ ( const BeatPosition t1,
const BeatDuration t2 
)
constexpr

Divides a BeatPosition by a BeatDuration.

Definition at line 808 of file tracktion_Time.h.

◆ operator/() [9/18]

constexpr double tracktion::core::operator/ ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Divides a TimeDuration by another TimeDuration.

Definition at line 643 of file tracktion_Time.h.

◆ operator/() [10/18]

constexpr TimeDuration tracktion::core::operator/ ( const TimeDuration t,
double  ammount 
)
constexpr

Divides a TimeDuration by an ammount.

Definition at line 633 of file tracktion_Time.h.

◆ operator/() [11/18]

constexpr TimeDuration tracktion::core::operator/ ( const TimeDuration t,
double  ammount 
)
constexpr

Divides a TimeDuration by an ammount.

Definition at line 633 of file tracktion_Time.h.

◆ operator/() [12/18]

constexpr double tracktion::core::operator/ ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Divides a TimeDuration by another TimeDuration.

Definition at line 643 of file tracktion_Time.h.

◆ operator/() [13/18]

constexpr double tracktion::core::operator/ ( const TimePosition t1,
const TimeDuration t2 
)
constexpr

Divides a TimePosition by a TimeDuration.

Definition at line 638 of file tracktion_Time.h.

◆ operator/() [14/18]

constexpr TimePosition tracktion::core::operator/ ( const TimePosition t,
double  ammount 
)
constexpr

Divides a TimePosition by an ammount.

Definition at line 623 of file tracktion_Time.h.

◆ operator/() [15/18]

constexpr TimePosition tracktion::core::operator/ ( const TimePosition t,
double  ammount 
)
constexpr

Divides a TimePosition by an ammount.

Definition at line 623 of file tracktion_Time.h.

◆ operator/() [16/18]

constexpr double tracktion::core::operator/ ( const TimePosition t1,
const TimeDuration t2 
)
constexpr

Divides a TimePosition by a TimeDuration.

Definition at line 638 of file tracktion_Time.h.

◆ operator/() [17/18]

constexpr tempo::SecondsPerBeat tracktion::core::operator/ ( double  t,
tempo::BeatsPerSecond  bps 
)
constexpr

Converts a BeatsPerSecond to SecondsPerBeat.

Definition at line 311 of file tracktion_Tempo.h.

◆ operator/() [18/18]

constexpr tempo::BeatsPerSecond tracktion::core::operator/ ( double  t,
tempo::SecondsPerBeat  spb 
)
constexpr

Converts a SecondsPerBeat to BeatsPerSecond.

Definition at line 309 of file tracktion_Tempo.h.

◆ operator<() [1/10]

constexpr bool tracktion::core::operator< ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 829 of file tracktion_Time.h.

◆ operator<() [2/10]

constexpr bool tracktion::core::operator< ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 829 of file tracktion_Time.h.

◆ operator<() [3/10]

constexpr bool tracktion::core::operator< ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 824 of file tracktion_Time.h.

◆ operator<() [4/10]

constexpr bool tracktion::core::operator< ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 824 of file tracktion_Time.h.

◆ operator<() [5/10]

constexpr bool tracktion::core::operator< ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 659 of file tracktion_Time.h.

◆ operator<() [6/10]

constexpr bool tracktion::core::operator< ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 659 of file tracktion_Time.h.

◆ operator<() [7/10]

constexpr bool tracktion::core::operator< ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePositions.

Definition at line 654 of file tracktion_Time.h.

◆ operator<() [8/10]

constexpr bool tracktion::core::operator< ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePositions.

Definition at line 654 of file tracktion_Time.h.

◆ operator<() [9/10]

bool tracktion::graph::operator< ( NodeAndID  n1,
NodeAndID  n2 
)

Compares two NodeAndIDs.

Definition at line 109 of file tracktion_Node.h.

◆ operator<<() [1/10]

juce::String & tracktion::core::operator<< ( juce::String s,
BeatDuration  d 
)

Definition at line 836 of file tracktion_Time.h.

◆ operator<<() [2/10]

juce::String & tracktion::core::operator<< ( juce::String s,
BeatPosition  p 
)

Definition at line 837 of file tracktion_Time.h.

◆ operator<<() [3/10]

juce::String & tracktion::core::operator<< ( juce::String s,
TimeDuration  d 
)

Definition at line 834 of file tracktion_Time.h.

◆ operator<<() [4/10]

juce::String & tracktion::core::operator<< ( juce::String s,
TimePosition  p 
)

Definition at line 835 of file tracktion_Time.h.

◆ operator<<() [5/10]

std::ostream & tracktion::core::operator<< ( std::ostream os,
const BeatDuration v 
)

Definition at line 841 of file tracktion_Time.h.

◆ operator<<() [6/10]

std::ostream & tracktion::core::operator<< ( std::ostream os,
const BeatPosition v 
)

Definition at line 842 of file tracktion_Time.h.

◆ operator<<() [7/10]

std::ostream & tracktion::core::operator<< ( std::ostream os,
const BeatRange &  r 
)

Definition at line 396 of file tracktion_TimeRange.h.

◆ operator<<() [8/10]

std::ostream & tracktion::core::operator<< ( std::ostream os,
const TimeDuration v 
)

Definition at line 839 of file tracktion_Time.h.

◆ operator<<() [9/10]

std::ostream & tracktion::core::operator<< ( std::ostream os,
const TimePosition v 
)

Definition at line 840 of file tracktion_Time.h.

◆ operator<<() [10/10]

std::ostream & tracktion::core::operator<< ( std::ostream os,
const TimeRange &  r 
)

Definition at line 395 of file tracktion_TimeRange.h.

◆ operator<=() [1/8]

constexpr bool tracktion::core::operator<= ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 830 of file tracktion_Time.h.

◆ operator<=() [2/8]

constexpr bool tracktion::core::operator<= ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 830 of file tracktion_Time.h.

◆ operator<=() [3/8]

constexpr bool tracktion::core::operator<= ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 825 of file tracktion_Time.h.

◆ operator<=() [4/8]

constexpr bool tracktion::core::operator<= ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 825 of file tracktion_Time.h.

◆ operator<=() [5/8]

constexpr bool tracktion::core::operator<= ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 660 of file tracktion_Time.h.

◆ operator<=() [6/8]

constexpr bool tracktion::core::operator<= ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 660 of file tracktion_Time.h.

◆ operator<=() [7/8]

constexpr bool tracktion::core::operator<= ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePosition.

Definition at line 655 of file tracktion_Time.h.

◆ operator<=() [8/8]

constexpr bool tracktion::core::operator<= ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePosition.

Definition at line 655 of file tracktion_Time.h.

◆ operator==() [1/12]

constexpr bool tracktion::core::operator== ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 821 of file tracktion_Time.h.

◆ operator==() [2/12]

constexpr bool tracktion::core::operator== ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 821 of file tracktion_Time.h.

◆ operator==() [3/12]

constexpr bool tracktion::core::operator== ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatPositions.

Definition at line 818 of file tracktion_Time.h.

◆ operator==() [4/12]

constexpr bool tracktion::core::operator== ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatPositions.

Definition at line 818 of file tracktion_Time.h.

◆ operator==() [5/12]

template<typename PositionType >
bool tracktion::core::operator== ( const RangeType< PositionType > &  r1,
const RangeType< PositionType > &  r2 
)

Compares two ranges to check if they are equal.

Definition at line 370 of file tracktion_TimeRange.h.

◆ operator==() [6/12]

template<typename PositionType >
bool tracktion::core::operator== ( const RangeType< PositionType > &  r1,
const RangeType< PositionType > &  r2 
)

Compares two ranges to check if they are equal.

Definition at line 370 of file tracktion_TimeRange.h.

◆ operator==() [7/12]

constexpr bool tracktion::core::operator== ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 651 of file tracktion_Time.h.

◆ operator==() [8/12]

constexpr bool tracktion::core::operator== ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 651 of file tracktion_Time.h.

◆ operator==() [9/12]

constexpr bool tracktion::core::operator== ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePositions.

Definition at line 648 of file tracktion_Time.h.

◆ operator==() [10/12]

constexpr bool tracktion::core::operator== ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePositions.

Definition at line 648 of file tracktion_Time.h.

◆ operator==() [11/12]

bool tracktion::graph::operator== ( NodeAndID  n1,
NodeAndID  n2 
)

Compares two NodeAndIDs.

Definition at line 115 of file tracktion_Node.h.

◆ operator==() [12/12]

constexpr bool tracktion::core::operator== ( tempo::Key  k1,
tempo::Key  k2 
)
constexpr

Compares two Keys.

Definition at line 314 of file tracktion_Tempo.h.

◆ operator>() [1/8]

constexpr bool tracktion::core::operator> ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 831 of file tracktion_Time.h.

◆ operator>() [2/8]

constexpr bool tracktion::core::operator> ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 831 of file tracktion_Time.h.

◆ operator>() [3/8]

constexpr bool tracktion::core::operator> ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 826 of file tracktion_Time.h.

◆ operator>() [4/8]

constexpr bool tracktion::core::operator> ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 826 of file tracktion_Time.h.

◆ operator>() [5/8]

constexpr bool tracktion::core::operator> ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 661 of file tracktion_Time.h.

◆ operator>() [6/8]

constexpr bool tracktion::core::operator> ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 661 of file tracktion_Time.h.

◆ operator>() [7/8]

constexpr bool tracktion::core::operator> ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePosition.

Definition at line 656 of file tracktion_Time.h.

◆ operator>() [8/8]

constexpr bool tracktion::core::operator> ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePosition.

Definition at line 656 of file tracktion_Time.h.

◆ operator>=() [1/8]

constexpr bool tracktion::core::operator>= ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 832 of file tracktion_Time.h.

◆ operator>=() [2/8]

constexpr bool tracktion::core::operator>= ( const BeatDuration t1,
const BeatDuration t2 
)
constexpr

Compares two BeatDurations.

Definition at line 832 of file tracktion_Time.h.

◆ operator>=() [3/8]

constexpr bool tracktion::core::operator>= ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 827 of file tracktion_Time.h.

◆ operator>=() [4/8]

constexpr bool tracktion::core::operator>= ( const BeatPosition t1,
const BeatPosition t2 
)
constexpr

Compares two BeatDurations.

Definition at line 827 of file tracktion_Time.h.

◆ operator>=() [5/8]

constexpr bool tracktion::core::operator>= ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 662 of file tracktion_Time.h.

◆ operator>=() [6/8]

constexpr bool tracktion::core::operator>= ( const TimeDuration t1,
const TimeDuration t2 
)
constexpr

Compares two TimeDurations.

Definition at line 662 of file tracktion_Time.h.

◆ operator>=() [7/8]

constexpr bool tracktion::core::operator>= ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePosition.

Definition at line 657 of file tracktion_Time.h.

◆ operator>=() [8/8]

constexpr bool tracktion::core::operator>= ( const TimePosition t1,
const TimePosition t2 
)
constexpr

Compares two TimePosition.

Definition at line 657 of file tracktion_Time.h.

◆ pause()

void tracktion::core::pause ( )

Pauses the CPU for an instruction.

Can be used in constructs like spin locks to allow other cores to progress.

Definition at line 51 of file tracktion_CPU.h.

◆ rdtsc()

std::uint64_t tracktion::core::rdtsc ( )

Returns the CPU cycle count, useful for benchmarking.

Definition at line 31 of file tracktion_CPU.h.

◆ referenceSampleRangeToSplitTimelineRange()

SplitTimelineRange tracktion::graph::referenceSampleRangeToSplitTimelineRange ( const PlayHead playHead,
juce::Range< int64_t referenceSampleRange 
)

Converts a reference sample range to a TimelinePositionWindow which could have two time ranges if the stream range overlaps the end of the loop range.

Definition at line 365 of file tracktion_PlayHead.h.

◆ roundToNearestBeat() [1/4]

BeatDuration tracktion::core::roundToNearestBeat ( BeatDuration  t)

Rounds a BeatDuration to the nearest whole beat.

Definition at line 722 of file tracktion_Time.h.

◆ roundToNearestBeat() [2/4]

BeatDuration tracktion::core::roundToNearestBeat ( BeatDuration  t)

Rounds a BeatDuration to the nearest whole beat.

Definition at line 722 of file tracktion_Time.h.

◆ roundToNearestBeat() [3/4]

BeatPosition tracktion::core::roundToNearestBeat ( BeatPosition  t)

Rounds a BeatPosition to the nearest whole beat.

Definition at line 717 of file tracktion_Time.h.

◆ roundToNearestBeat() [4/4]

BeatPosition tracktion::core::roundToNearestBeat ( BeatPosition  t)

Rounds a BeatPosition to the nearest whole beat.

Definition at line 717 of file tracktion_Time.h.

◆ sampleToTime() [1/2]

template<typename IntType >
constexpr double tracktion::graph::sampleToTime ( IntType  samplePosition,
double  sampleRate 
)
constexpr

Converts an integer sample number to a time in seconds.

Definition at line 20 of file tracktion_Utility.h.

◆ sampleToTime() [2/2]

template<typename IntType >
constexpr juce::Range< double > tracktion::graph::sampleToTime ( juce::Range< IntType >  sampleRange,
double  sampleRate 
)
constexpr

Converts an integer sample range to a time range in seconds.

Definition at line 33 of file tracktion_Utility.h.

◆ sanitise()

template<typename Buffer >
void tracktion::graph::sanitise ( Buffer &  buffer)

Definition at line 102 of file tracktion_GlueCode.h.

◆ sanityCheckView()

template<typename SampleType , template< typename > typename LayoutType>
void tracktion::graph::sanityCheckView ( const choc::buffer::BufferView< SampleType, LayoutType > &  view)

Checks that the channels have valid pointers if they have a non-zero number of frames.

Definition at line 113 of file tracktion_GlueCode.h.

◆ setThreadPriority() [1/3]

template<typename HandleType >
bool tracktion::graph::setThreadPriority ( HandleType  handle,
int  priority 
)

Definition at line 37 of file tracktion_Threads.cpp.

◆ setThreadPriority() [2/3]

bool tracktion::graph::setThreadPriority ( std::thread t,
int  priority 
)

Changes the thread's priority.

May return false if for some reason the priority can't be changed.

Parameters
prioritythe new priority, in the range 0 (lowest) to 10 (highest). A priority of 5 is normal.

Definition at line 117 of file tracktion_Threads.cpp.

◆ setThreadPriority() [3/3]

bool tracktion::graph::setThreadPriority ( std::thread t,
int  priority 
)

Changes the thread's priority.

May return false if for some reason the priority can't be changed.

Parameters
prioritythe new priority, in the range 0 (lowest) to 10 (highest). A priority of 5 is normal.

Definition at line 117 of file tracktion_Threads.cpp.

◆ sort() [1/2]

template<class Container >
void tracktion::core::sort ( Container &  container)

Definition at line 50 of file tracktion_AlgorithmAdapters.h.

◆ sort() [2/2]

template<class Container , class Compare >
void tracktion::core::sort ( Container &  container,
Compare  comp 
)

Definition at line 56 of file tracktion_AlgorithmAdapters.h.

◆ stable_remove_duplicates()

template<class Container >
Container & tracktion::core::stable_remove_duplicates ( Container &  container)

Removes duplicates from a container maintaining the order.

This is slower than sorting the container and using std::unique and also alocates memory so should be used only if the order is important.

Definition at line 138 of file tracktion_AlgorithmAdapters.h.

◆ stable_sort() [1/2]

template<class Container >
void tracktion::core::stable_sort ( Container &  container)

Definition at line 62 of file tracktion_AlgorithmAdapters.h.

◆ stable_sort() [2/2]

template<class Container , class Compare >
void tracktion::core::stable_sort ( Container &  container,
Compare  comp 
)

Definition at line 68 of file tracktion_AlgorithmAdapters.h.

◆ timeRangeFromSamples() [1/2]

TimeRange tracktion::core::timeRangeFromSamples ( juce::Range< int64_t r,
double  sampleRate 
)

Creates a TimeRange from a range of samples.

Definition at line 215 of file tracktion_TimeRange.h.

◆ timeRangeFromSamples() [2/2]

TimeRange tracktion::core::timeRangeFromSamples ( juce::Range< int64_t sampleRange,
double  sampleRate 
)

Creates a TimeRange from a range of samples.

Definition at line 215 of file tracktion_TimeRange.h.

◆ timeRangeFromSeconds() [1/2]

template<typename SourceRangeType >
TimeRange tracktion::core::timeRangeFromSeconds ( SourceRangeType  r)

Creates a TimeRange from a range of seconds.

Definition at line 222 of file tracktion_TimeRange.h.

◆ timeRangeFromSeconds() [2/2]

template<typename SourceRangeType >
TimeRange tracktion::core::timeRangeFromSeconds ( SourceRangeType  r)

Creates a TimeRange from a range of seconds.

Definition at line 222 of file tracktion_TimeRange.h.

◆ timeToSample() [1/3]

constexpr int64_t tracktion::graph::timeToSample ( double  timeInSeconds,
double  sampleRate 
)
constexpr

Converts a time in seconds to a sample number.

Definition at line 26 of file tracktion_Utility.h.

◆ timeToSample() [2/3]

constexpr juce::Range< int64_t > tracktion::graph::timeToSample ( juce::Range< double timeInSeconds,
double  sampleRate 
)
constexpr

Converts a time range in seconds to a range of sample numbers.

Definition at line 40 of file tracktion_Utility.h.

◆ timeToSample() [3/3]

template<typename RangeType >
constexpr juce::Range< int64_t > tracktion::graph::timeToSample ( RangeType  timeInSeconds,
double  sampleRate 
)
constexpr

Converts a time range in seconds to a range of sample numbers.

Definition at line 48 of file tracktion_Utility.h.

◆ to_string()

template<typename RangeType , std::enable_if_t< std::is_same_v< TimeRange, RangeType >||std::is_same_v< BeatRange, RangeType >, bool > = true>
std::string tracktion::core::to_string ( RangeType  range)

Definition at line 389 of file tracktion_TimeRange.h.

◆ toAudioBuffer()

juce::AudioBuffer< float > tracktion::graph::toAudioBuffer ( choc::buffer::ChannelArrayView< float view)

Creates a juce::AudioBuffer from a choc::buffer::BufferView.

Definition at line 16 of file tracktion_GlueCode.h.

◆ toBeats() [1/6]

BeatRange tracktion::core::toBeats ( const tempo::Sequence &  seq,
TimeRange  range 
)

Converts a TimeRange to a BeatRange.

Definition at line 342 of file tracktion_Tempo.h.

◆ toBeats() [2/6]

BeatRange tracktion::core::toBeats ( const tempo::Sequence &  seq,
TimeRange  range 
)

Converts a TimeRange to a BeatRange.

Definition at line 342 of file tracktion_Tempo.h.

◆ toBufferView() [1/2]

template<typename SampleType >
choc::buffer::BufferView< SampleType, choc::buffer::SeparateChannelLayout > tracktion::graph::toBufferView ( juce::AudioBuffer< SampleType > &  buffer)

Converts a juce::AudioBuffer<SampleType> to a choc::buffer::BufferView.

Definition at line 23 of file tracktion_GlueCode.h.

◆ toDuration() [1/4]

constexpr BeatDuration tracktion::core::toDuration ( BeatPosition  t)
constexpr

Converts a BeatPosition to a BeatDuration.

Definition at line 712 of file tracktion_Time.h.

◆ toDuration() [2/4]

constexpr BeatDuration tracktion::core::toDuration ( BeatPosition  t)
constexpr

Converts a BeatPosition to a BeatDuration.

Definition at line 712 of file tracktion_Time.h.

◆ toDuration() [3/4]

constexpr TimeDuration tracktion::core::toDuration ( TimePosition  t)
constexpr

Converts a TimePosition to a TimeDuration.

Definition at line 473 of file tracktion_Time.h.

◆ toDuration() [4/4]

constexpr TimeDuration tracktion::core::toDuration ( TimePosition  t)
constexpr

Converts a TimePosition to a TimeDuration.

Definition at line 473 of file tracktion_Time.h.

◆ toMidiMessage()

juce::MidiMessage tracktion::graph::toMidiMessage ( const choc::midi::Sequence::Event &  e)

Converts a choc::midi event to a juce::MidiMessage.

Definition at line 40 of file tracktion_GlueCode.h.

◆ toPosition() [1/4]

constexpr BeatPosition tracktion::core::toPosition ( BeatDuration  t)
constexpr

Converts a BeatDuration to a BeatPosition.

Definition at line 745 of file tracktion_Time.h.

◆ toPosition() [2/4]

constexpr BeatPosition tracktion::core::toPosition ( BeatDuration  t)
constexpr

Converts a BeatDuration to a BeatPosition.

Definition at line 745 of file tracktion_Time.h.

◆ toPosition() [3/4]

constexpr TimePosition tracktion::core::toPosition ( TimeDuration  t)
constexpr

Converts a TimeDuration to a TimePosition.

Definition at line 539 of file tracktion_Time.h.

◆ toPosition() [4/4]

constexpr TimePosition tracktion::core::toPosition ( TimeDuration  t)
constexpr

Converts a TimeDuration to a TimePosition.

Definition at line 539 of file tracktion_Time.h.

◆ toSamples() [1/6]

constexpr int64_t tracktion::core::toSamples ( TimeDuration  p,
double  sampleRate 
)
constexpr

Converts a TimeDuration to a number of samples.

Definition at line 544 of file tracktion_Time.h.

◆ toSamples() [2/6]

constexpr int64_t tracktion::core::toSamples ( TimeDuration  p,
double  sampleRate 
)
constexpr

Converts a TimeDuration to a number of samples.

Definition at line 544 of file tracktion_Time.h.

◆ toSamples() [3/6]

constexpr int64_t tracktion::core::toSamples ( TimePosition  p,
double  sampleRate 
)
constexpr

Converts a TimePosition to a number of samples.

Definition at line 478 of file tracktion_Time.h.

◆ toSamples() [4/6]

constexpr int64_t tracktion::core::toSamples ( TimePosition  p,
double  sampleRate 
)
constexpr

Converts a TimePosition to a number of samples.

Definition at line 478 of file tracktion_Time.h.

◆ toSamples() [5/6]

juce::Range< int64_t > tracktion::core::toSamples ( TimeRange  r,
double  sampleRate 
)

Converts a TimeRange to a range of samples.

Definition at line 363 of file tracktion_TimeRange.h.

◆ toSamples() [6/6]

juce::Range< int64_t > tracktion::core::toSamples ( TimeRange  r,
double  sampleRate 
)

Converts a TimeRange to a range of samples.

Definition at line 363 of file tracktion_TimeRange.h.

◆ toTime() [1/6]

TimeRange tracktion::core::toTime ( const tempo::Sequence &  seq,
BeatRange  range 
)

Converts a BeatRange to a TimeRange.

Definition at line 336 of file tracktion_Tempo.h.

◆ toTime() [2/6]

TimeRange tracktion::core::toTime ( const tempo::Sequence &  seq,
BeatRange  range 
)

Converts a BeatRange to a TimeRange.

Definition at line 336 of file tracktion_Tempo.h.

◆ toUnderlyingType() [1/4]

double tracktion::core::toUnderlyingType ( BeatDuration  t)

Definition at line 213 of file tracktion_TimeRange.h.

◆ toUnderlyingType() [2/4]

double tracktion::core::toUnderlyingType ( BeatPosition  t)

Definition at line 212 of file tracktion_TimeRange.h.

◆ toUnderlyingType() [3/4]

double tracktion::core::toUnderlyingType ( TimeDuration  t)

Definition at line 208 of file tracktion_TimeRange.h.

◆ toUnderlyingType() [4/4]

double tracktion::core::toUnderlyingType ( TimePosition  t)

Definition at line 207 of file tracktion_TimeRange.h.

◆ tryToUpgradeCurrentThreadToRealtime() [1/2]

bool tracktion::graph::tryToUpgradeCurrentThreadToRealtime ( const juce::Thread::RealtimeOptions )

Tries to upgrade the current thread to realtime priority.

Definition at line 111 of file tracktion_Threads.cpp.

◆ tryToUpgradeCurrentThreadToRealtime() [2/2]

bool tracktion::graph::tryToUpgradeCurrentThreadToRealtime ( const juce::Thread::RealtimeOptions )

Tries to upgrade the current thread to realtime priority.

Definition at line 111 of file tracktion_Threads.cpp.

◆ visitNodes() [1/2]

template<typename Visitor >
void tracktion::graph::visitNodes ( Node node,
Visitor &&  visitor,
bool  preordering 
)

Should call the visitor for any direct inputs to the node exactly once.

If preordering is true, nodes will be visited before their inputs, if false, inputs will be visited first.

Parameters
Visitorhas the signature
void (Node&)
Main graph Node processor class.

Definition at line 710 of file tracktion_Node.h.

◆ visitNodes() [2/2]

template<typename Visitor >
void tracktion::graph::visitNodes ( Node node,
Visitor &&  visitor,
bool  preordering 
)

Should call the visitor for any direct inputs to the node exactly once.

If preordering is true, nodes will be visited before their inputs, if false, inputs will be visited first.

Parameters
Visitorhas the signature
void (Node&)

Definition at line 710 of file tracktion_Node.h.

◆ visitNodesBFS()

template<typename Visitor >
void tracktion::graph::visitNodesBFS ( Node node,
Visitor &&  visitor 
)

Definition at line 717 of file tracktion_Node.h.

◆ withEndExtended() [1/2]

template<typename PositionType >
RangeType< PositionType > tracktion::core::withEndExtended ( RangeType< PositionType > &  r,
typename RangeType< PositionType >::Duration  d 
)

Adds an amount to the end of the range and returns a new range.

Definition at line 380 of file tracktion_TimeRange.h.

◆ withEndExtended() [2/2]

template<typename PositionType >
RangeType< PositionType > tracktion::core::withEndExtended ( RangeType< PositionType > &  r,
typename RangeType< PositionType >::Duration  d 
)

Adds an amount to the end of the range and returns a new range.

Definition at line 380 of file tracktion_TimeRange.h.