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

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
tracktion::engine::WaveAudioClip Class Reference

An audio clip that uses an audio file as its source. More...

#include "tracktion_WaveAudioClip.h"

Inheritance diagram for tracktion::engine::WaveAudioClip:
tracktion::engine::AudioClipBase tracktion::engine::Clip tracktion::engine::RenderManager::Job::Listener juce::Timer tracktion::engine::TrackItem tracktion::engine::Exportable juce::ValueTree::Listener tracktion::engine::EditItem tracktion::engine::Selectable juce::ReferenceCountedObject

Public Types

using Ptr = juce::ReferenceCountedObjectPtr< WaveAudioClip >
 
- Public Types inherited from tracktion::engine::AudioClipBase
enum  FadeBehaviour { gainFade , speedRamp }
 Describes the fade behaviour. More...
 
enum  AutoPitchMode { pitchTrack , chordTrackMono , chordTrackPoly }
 Defines the auto pitch mode. More...
 
enum class  ClipDirection { previous , next , none }
 Defines a prevous/next direction. More...
 
using Ptr = juce::ReferenceCountedObjectPtr< AudioClipBase >
 
- Public Types inherited from tracktion::engine::Clip
enum class  FollowActionDurationType { beats , loops }
 Defines the types of duration follow actions can use. More...
 
enum  SyncType { syncBarsBeats , syncAbsolute }
 Determines the clip sync type. More...
 
using Ptr = juce::ReferenceCountedObjectPtr< Clip >
 
using Array = juce::ReferenceCountedArray< Clip >
 
- Public Types inherited from tracktion::engine::TrackItem
enum class  Type {
  unknown , wave , midi , edit ,
  step , marker , pitch , timeSig ,
  collection , video , recording , chord ,
  arranger , container
}
 Defines the types of item that can live on Track[s]. More...
 
- Public Types inherited from tracktion::engine::Selectable
using WeakRef = juce::WeakReference< Selectable >
 

Public Member Functions

 WaveAudioClip (const juce::ValueTree &, EditItemID, ClipOwner &)
 Creates a WaveAudioClip from a given state.
 
 ~WaveAudioClip () override
 Destructor.
 
void addTake (ProjectItemID)
 Adds a new take with the ProjectItemID as the source.
 
void addTake (const juce::File &)
 Adds a new take with the given file as the source.
 
void deleteAllUnusedTakes (bool deleteSourceFiles)
 Deletes all but the current takes.
 
void deleteAllUnusedTakesConfirmingWithUser (bool deleteSourceFiles)
 Deletes all but the current takes but shows a confirmation dialog first.
 
WaveCompManagergetCompManager ()
 Returns the WaveCompManager for this clip.
 
bool needsRender () const override
 Subclasses should override this to return true if they need the rest of the render callbacks.
 
RenderManager::Job::Ptr getRenderJob (const AudioFile &destFile) override
 Subclasses should override this to return a RenderJob suitable for rendering its source file.
 
juce::String getRenderMessage () override
 Override this to return a custom message to be displayed over waveforms during rendering.
 
void renderComplete () override
 Callback to indicate that the render has completed.
 
bool isUsingFile (const AudioFile &) override
 Should return true if the clip is referencing the file in any way.
 
void initialise () override
 Initialises the Clip.
 
void cloneFrom (Clip *) override
 Clones the given clip to this clip.
 
juce::String getSelectableDescription () override
 Subclasses must return a description of what they are.
 
bool isMidi () const override
 Returns true if this is a MidiClip.
 
bool usesSourceFile () const override
 True if it references a source file - i.e.
 
TimeDuration getSourceLength () const override
 Must return the length in seconds of the source material e.g.
 
void sourceMediaChanged () override
 Called when the source media file reference (attribute "source") has changed - i.e.
 
juce::File getOriginalFile () const override
 Must return the file that the source ProjectItemID refers to.
 
HashCode getHash () const override
 Must return a unique hash for this clip's source.
 
void setLoopDefaults () override
 Override this to fill in the LoopInfo structure as best fits the source.
 
juce::StringArray getTakeDescriptions () const override
 Returns the descriptions of any takes.
 
bool hasAnyTakes () const override
 Returns true if this clip has any takes.
 
int getNumTakes (bool includeComps) override
 Returns the total number of takes.
 
juce::Array< ProjectItemIDgetTakes () const override
 Returns the ProjectItemID of the clip's takes.
 
void clearTakes () override
 Clears any takes this clip has.
 
int getCurrentTake () const override
 Returns the current take index.
 
void setCurrentTake (int takeIndex) override
 Sets a given take index to be the current take.
 
bool isCurrentTakeComp () override
 Returns true if the current take is a comp.
 
Clip::Array unpackTakes (bool toNewTracks) override
 Attempts to unpack the takes to new clips.
 
void reassignReferencedItem (const ReferencedItem &, ProjectItemID newID, double newStartTime) override
 
- Public Member Functions inherited from tracktion::engine::AudioClipBase
 AudioClipBase (const juce::ValueTree &, EditItemID, Type, ClipOwner &)
 Creates a basic AudioClip.
 
 ~AudioClipBase () override
 Destructor.
 
TimeDuration getMaximumLength () override
 Returns the maximum length for this clip.
 
virtual AudioFile getAudioFile () const
 Returns the file used to play back the source and will get proxied etc.
 
AudioFile getPlaybackFile ()
 Returns the current AudioFile being used by the Clip, either the original source or a proxy.
 
virtual AudioFileInfo getWaveInfo ()
 Returns the WaveInfo for a clip.
 
void markAsDirty ()
 Resets the dirty flag so that a new render will be attempted.
 
void updateSourceFile ()
 Checks the current source file to see if it's up to date and then triggers a source render if needed.
 
virtual juce::String getClipMessage ()
 Override this to return a custom message to display over the clip where the "file missing" text usually goes.
 
void cancelCurrentRender ()
 If a render is in progress, this will cancel it.
 
void setGainDB (float dB)
 Sets the gain of the clip in dB.
 
float getGainDB () const noexcept
 Returns the gain of the clip in dB.
 
float getGain () const noexcept
 Returns the gain of the clip.
 
void setPan (float pan)
 Sets the pan of the clip.
 
float getPan () const noexcept
 Returns the pan of the clip from -1 to 1.
 
void setMuted (bool shouldBeMuted) override
 Mutes or unmutes the clip.
 
bool isMuted () const override
 Returns true if the clip is muted.
 
LiveClipLevel getLiveClipLevel ()
 Returns a LiveClipLevel which can be used to read the gain, pan and mute statuses.
 
void setLeftChannelActive (bool)
 Enables the left channel of the clip.
 
bool isLeftChannelActive () const
 Returns whether the left channel of the clip is enabled.
 
void setRightChannelActive (bool)
 Enables the right channel of the clip.
 
bool isRightChannelActive () const
 Returns whether the right channel of the clip is enabled.
 
juce::AudioChannelSet getActiveChannels () const
 Returns the layout of the active channels.
 
bool setFadeIn (TimeDuration length)
 Sets the fade in duration in seconds.
 
TimeDuration getFadeIn () const
 Returns the fade in duration in seconds.
 
bool setFadeOut (TimeDuration length)
 Sets the fade out duration in seconds.
 
TimeDuration getFadeOut () const
 Returns the fade out duration in seconds.
 
void setFadeInType (AudioFadeCurve::Type)
 Sets the curve shape for the fade in to use.
 
AudioFadeCurve::Type getFadeInType () const
 Returns the curve shape for the fade in to use.
 
void setFadeOutType (AudioFadeCurve::Type newType)
 Sets the curve shape for the fade out to use.
 
AudioFadeCurve::Type getFadeOutType () const
 Returns the curve shape for the fade out to use.
 
void setAutoCrossfade (bool shouldAutoCrossfade)
 Enables/disables auto-crossfading.
 
bool getAutoCrossfade () const noexcept
 Returns whether auto-crossfade is enabled.
 
void updateAutoCrossfadesAsync (bool updateOverlapped)
 Triggers an update of the auto-crossfades.
 
void applyEdgeFades ()
 Sets the fade in/out lengths to be 0.03s to avoid any clicks at the start/end of th clip.
 
void copyFadeToAutomation (bool fadeIn, bool removeClipFade)
 Copies the fade in curve to a volume automation curve.
 
void setFadeInBehaviour (FadeBehaviour newBehaviour)
 Sets the fade in behaviour.
 
FadeBehaviour getFadeInBehaviour () const
 Returns the fade in behaviour.
 
void setFadeOutBehaviour (FadeBehaviour newBehaviour)
 Sets the fade out behaviour.
 
FadeBehaviour getFadeOutBehaviour () const
 Returns the fade out behaviour.
 
void setLoopInfo (const LoopInfo &)
 Sets a LoopInfo to describe this clip's tempo, time sig etc.
 
const LoopInfogetLoopInfo () const
 Returns the LoopInfo being used to describe this clip.
 
LoopInfogetLoopInfo ()
 Returns the LoopInfo being used to describe this clip.
 
TimeRange getLoopRange () const
 Returns the loop range in seconds.
 
bool canLoop () const override
 Returns true if this clip is capable of looping.
 
bool isLooping () const override
 Returns true if this clip is currently looping.
 
bool beatBasedLooping () const override
 Returns true if this clip's looping is based on beats or false if absolute time.
 
void setNumberOfLoops (int num) override
 Sets the clip looping a number of times.
 
void disableLooping () override
 Disables all looping.
 
BeatPosition getLoopStartBeats () const override
 Returns the beat position of the loop start point.
 
TimePosition getLoopStart () const override
 Returns the start time of the loop start point.
 
BeatDuration getLoopLengthBeats () const override
 Returns the length of loop in beats.
 
TimeDuration getLoopLength () const override
 Returns the length of loop in seconds.
 
void setLoopRange (TimeRange) override
 Sets the loop range the clip should use in seconds.
 
void setLoopRangeBeats (BeatRange) override
 Sets the loop range the clip should use in beats.
 
void setAutoDetectBeats (bool)
 Enables auto-detection of beats.
 
bool getAutoDetectBeats () const
 Returns true if auto-detect of beats is enabled.
 
void setBeatSensitivity (float s)
 Sets the beat sensitivity, triggering a LoopInfo update if auto-detect is enabled.
 
float getBeatSensitivity () const
 Returns the beat sensitivity.
 
void pitchTempoTrackChanged () override
 Called when there are pitch or tempo changes made which might require clips to adjust timing information.
 
void setSpeedRatio (double newSpeed) override
 Sets a speed ratio i.e.
 
void setTimeStretchMode (TimeStretcher::Mode mode)
 Sets a time-stretch mode to use.
 
TimeStretcher::Mode getTimeStretchMode () const noexcept
 Returns the time-stretch mode that has been set.
 
TimeStretcher::Mode getActualTimeStretchMode () const noexcept
 Returns the time-stretch mode that is in use.
 
void setAutoTempo (bool shouldUseAutoTempo)
 Enables/disables auto-tempo.
 
bool getAutoTempo () const
 Returns true if auto-tempo has been set.
 
void setAutoPitch (bool shouldUseAutoPitch)
 Enables/disables auto-pitch.
 
bool getAutoPitch () const
 Returns true if auto-pitch has been set.
 
void setAutoPitchMode (AutoPitchMode m)
 Sets the AutoPitchMode to use.
 
AutoPitchMode getAutoPitchMode ()
 Returns the AutoPitchMode in use.
 
void setWarpTime (bool shouldUseWarpTime)
 Enables/disables warp time.
 
bool getWarpTime () const
 Returns true if warp time is enabled.
 
WarpTimeManagergetWarpTimeManager () const
 Returns the WarpTimeManager for this clip used to maipluate warp markers.
 
void setTranspose (int numSemitones)
 Sets the number of semitones to transpose the clip by.
 
int getTransposeSemiTones (bool includeAutoPitch) const
 Returns the number of semitones this clip will be changed by.
 
void setPitchChange (float semitones)
 Sets the number of semitones to transpose the clip by.
 
float getPitchChange () const
 Returns the number of semitones to transpose the clip by.
 
float getPitchRatio () const
 Returns the pitch change as a normalised ratio.
 
void setIsReversed (bool shouldBeReversed)
 Enables reversing of the clip's source material.
 
bool getIsReversed () const noexcept
 Returns true if the clip's source material is reversed.
 
LoopInfo autoDetectBeatMarkers (const LoopInfo &current, bool autoBeat, float sensitivity) const
 Scans the current source file for any beats and adds them to the LoopInfo returned.
 
bool performTempoDetect ()
 Performs a tempo-detection task and if successful sets the clip's LoopInfo tempo to this.
 
juce::StringArray getPitchChoices ()
 Returns an array describng what pitch each semitone change will be.
 
virtual bool canHaveEffects () const
 Returns true if this clip can have ClipEffects added to it.
 
void enableEffects (bool enable, bool warn)
 Enables/disables ClipEffects for this clip.
 
bool effectsEnabled () const
 Returns true if ClipEffects are enabled.
 
void addEffect (const juce::ValueTree &effectsTree)
 Adds a ClipEffect to this clip.
 
void setEffectsVisible (bool b)
 Sets the effectsVisible flag for this clip.
 
bool getEffectsVisible () const
 Returns true if the effectsVisible flag is set for this clip.
 
ClipEffectsgetClipEffects () const noexcept
 Returns the ClipEffects for this clip if it has been enabled.
 
bool canSnapToOriginalBWavTime ()
 Returns true if source file has a bwav time reference metadata property.
 
void snapToOriginalBWavTime ()
 Moves the clip to the bwav time reference metadata property time.
 
juce::String canAddClipPlugin (const Plugin::Ptr &) const
 Returns an empty string if this plugin can be added, otherwise an error message due to the clip plugin being an incorrect type (e.g.
 
AudioFile getProxyFileToCreate (bool renderTimestretched)
 Returns the AudioFile to create to play this clip back.
 
void setUsesProxy (bool canUseProxy) noexcept
 Can be used to disable proxy file generation for this clip.
 
bool canUseProxy () const noexcept
 Retuns true if this clip can use a proxy file.
 
bool usesTimeStretchedProxy () const
 Retuns true if this clip use a proxy file due to timestretching.
 
std::unique_ptr< ProxyRenderingInfocreateProxyRenderingInfo ()
 Creates a ProxyRenderingInfo object to decribe the stretch segements of this clip.
 
HashCode getProxyHash ()
 Returns a hash identifying the proxy settings.
 
void beginRenderingNewProxyIfNeeded ()
 Triggers creation of a new proxy file if one is required.
 
const AudioSegmentListgetAudioSegmentList ()
 Returns an AudioSegmentList describing this file if it is using auto-tempo.
 
void setResamplingQuality (ResamplingQuality)
 Sets the resampling qulity to use.
 
ResamplingQuality getResamplingQuality () const
 Returns the resampling quality to the be used.
 
void reverseLoopPoints ()
 Reverses the loop points to expose the same section of the source file but reversed.
 
void checkFadeLengthsForOverrun ()
 Trims the fade in out lengths to avoid any overlap between them.
 
AudioClipBasegetOverlappingClip (ClipDirection) const
 Returns the previous/next overlapping clip if one exists.
 
bool isUsingMelodyne () const
 Returns true if this clip is using Melodyne.
 
void showMelodyneWindow ()
 Shows the Melodyne window if this clip is using Melodyne.
 
void hideMelodyneWindow ()
 Hides the Melodyne window if this clip is using Melodyne.
 
void melodyneConvertToMIDI ()
 If this clip is using Melodyne, this will create a new MIDI clip based on the Melodyne analysis.
 
void loadMelodyneState ()
 
bool setupARA (bool dontPopupErrorMessages)
 This internal method is used solely to find out if createAudioNode() should return nullptr or not.
 
void flushStateToValueTree () override
 Can be overridden to ensure any state (e.g.
 
void setParent (ClipOwner *) override
 
bool canBeAddedTo (ClipOwner &) override
 Tests whether this clip can go on the given parent.
 
void changed () override
 This should be called to send a change notification to any SelectableListeners that are registered with this object.
 
juce::Colour getDefaultColour () const override
 Returns the default colour for this clip.
 
PatternGeneratorgetPatternGenerator () override
 Returns the PatternGenerator for this clip if it has one.
 
void addMark (TimePosition relCursorPos)
 
void moveMarkTo (TimePosition relCursorPos)
 
void deleteMark (TimePosition relCursorPos)
 
void getRescaledMarkPoints (juce::Array< TimePosition > &rescaled, juce::Array< int > &orig) const
 
juce::Array< TimePositiongetRescaledMarkPoints () const override
 Returns the mark points relative to the start of the clip, rescaled to the current speed.
 
juce::Array< ReferencedItemgetReferencedItems () override
 
std::shared_ptr< LaunchHandlegetLaunchHandle () override
 Some clip types can be launched, if that's possible, this returns a handle to trigger starting/stopping the clip.
 
void setUsesGlobalLaunchQuatisation (bool useGlobal) override
 Some clip types can be launched, if that's possible, this sets whether the clip's quantisation or the global quantisation should be used.
 
bool usesGlobalLaunchQuatisation () override
 Some clip types can be launched, if that's possible, this returns whether the clip's quantisation or the global quantisation should be used.
 
LaunchQuantisationgetLaunchQuantisation () override
 Some clip types can be launched, if that's possible, this returns a quantisation that can be used for this clip.
 
FollowActions * getFollowActions () override
 Some clip types can be launched, if that's possible, this can be used to determine the action to perform after a clip has played.
 
bool addClipPlugin (const Plugin::Ptr &, SelectionManager &) override
 Adds a plugin to the clip.
 
Plugin::Array getAllPlugins () override
 Returns all the plugins on the clip.
 
void sendMirrorUpdateToAllPlugins (Plugin &) const override
 Sends an update to all plugins mirroing the one passed in.
 
PluginListgetPluginList () override
 Returns the PluginList for this clip if it has one.
 
- Public Member Functions inherited from tracktion::engine::Clip
 Clip (const juce::ValueTree &, ClipOwner &, EditItemID, Type)
 Creates a clip of a given type from a ValueTree state.
 
 ~Clip () override
 Destructor.
 
virtual juce::String getName () const override
 Returns the name of the clip.
 
void setName (const juce::String &newName)
 Sets a new name for a clip.
 
SourceFileReferencegetSourceFileReference ()
 Returns the SourceFileReference of the Clip.
 
juce::File getCurrentSourceFile () const
 Returns the current source file, this is different to the SourceFileReference as it could be a temporary comp file, clipFX, reverse render etc.
 
juce::Array< ReferencedItemgetReferencedItems () override
 Returns an array of any ReferencedItem[s] e.g.
 
ClipPosition getPosition () const override
 Returns the ClipPosition on the parent Track.
 
BeatPosition getContentBeatAtTime (TimePosition) const
 Returns the beat number (with offset) at the given time.
 
TimePosition getTimeOfContentBeat (BeatPosition) const
 Returns time of a beat number.
 
virtual juce::Array< TimePositiongetInterestingTimes ()
 Returns times for snapping to, relative to the Edit.
 
TimePosition getSpottingPoint () const
 Returns the first marked time in the source file which can be used for syncronising newly added clips.
 
TimeRange getLoopRange () const
 Returns the loop range in seconds.
 
BeatRange getLoopRangeBeats () const
 Returns the loop range in beats.
 
virtual void setSyncType (SyncType sync)
 Sets the sync type for the clip.
 
SyncType getSyncType () const
 Returns the sync type clip is using.
 
void setPosition (ClipPosition newPosition)
 Sets the position of the clip.
 
void setStart (TimePosition newStart, bool preserveSync, bool keepLength)
 Sets the start time of the clip.
 
void setLength (TimeDuration newLength, bool preserveSync)
 Sets the length of the clip.
 
void setEnd (TimePosition newEnd, bool preserveSync)
 Sets the end of the clip.
 
void setOffset (TimeDuration newOffset)
 Sets the offset of the clip, i.e.
 
void trimAwayOverlap (TimeRange editRangeToTrim)
 Trims away any part of the clip that overlaps this region.
 
void removeFromParent ()
 Removes this clip from the parent track or container clip.
 
bool moveTo (ClipOwner &)
 Moves the clip to a new parent (if possible).
 
double getSpeedRatio () const noexcept
 Returns the speed ratio i.e.
 
virtual void rescale (TimePosition pivotTimeInEdit, double factor)
 stretches and scales this clip relative to a fixed point in the edit.
 
bool isGrouped () const override
 Returns true if the clip is part of a group.
 
TrackItemgetGroupParent () const override
 Returns the parent TrackItem if part of a group.
 
void setGroup (EditItemID newGroupID)
 Sets the clip to be part of a group.
 
EditItemID getGroupID () const noexcept
 Returns the ID of the group.
 
CollectionClipgetGroupClip () const
 Returns this as a CollectionClip if it is one.
 
bool isLinked () const
 Returns true if this clip is linked with any others.
 
void setLinkGroupID (juce::String newLinkID)
 Sets the link ID to link this clip with others.
 
juce::String getLinkGroupID () const
 Returns the link ID of this clip.
 
ClipOwnergetParent () const
 Returns the parent ClipOwner this clip is on.
 
ClipTrackgetClipTrack () const
 Returns the parent ClipTrack this clip is on (if any).
 
TrackgetTrack () const override
 Returns the parent Track this clip is on (if any).
 
ClipSlotgetClipSlot () const
 Returns the parent ClipSlot this clip is on (if any).
 
virtual juce::Colour getColour () const
 Returns the colour property of this clip.
 
void setColour (juce::Colour col)
 Sets the colour property of this clip.
 
virtual void removePlugin (const Plugin::Ptr &)
 Removes the given plugin from the clip if the clip supports plugins.
 
virtual void setShowingTakes (bool shouldShow)
 Sets whether the clip should be showing takes.
 
virtual bool isShowingTakes () const
 Returns true if the clip is showing takes.
 
void updateLinkedClips ()
 Triggers a call to cloneFrom for all clips with the same linkID.
 
void addListener (Listener *)
 Adds a Listener.
 
void removeListener (Listener *)
 Removes a Listener.
 
juce::ListenerList< Listener > & getListeners ()
 Returns the listener list so Nodes can manually call them.
 
void changed () override
 This should be called to send a change notification to any SelectableListeners that are registered with this object.
 
juce::UndoManagergetUndoManager () const
 Returns the UndoManager.
 
- Public Member Functions inherited from tracktion::engine::TrackItem
 TrackItem (Edit &, EditItemID, Type)
 Creates a TrackItem with an ID and type.
 
 ~TrackItem ()
 Destructor.
 
TimeRange getEditTimeRange () const
 Returns the time range of this item.
 
BeatRange getEditBeatRange () const
 Returns the beat range of this item.
 
BeatPosition getStartBeat () const
 Returns the start beat in the Edit of this item.
 
BeatPosition getContentStartBeat () const
 Returns the start beat of the content in the Edit of this item.
 
BeatPosition getEndBeat () const
 Returns the end beat in the Edit of this item.
 
BeatDuration getLengthInBeats () const
 Returns the duration in beats the of this item.
 
TimePosition getTimeOfRelativeBeat (BeatDuration) const
 Returns an Edit time point for a given number of beats from the start of this item.
 
BeatPosition getBeatOfRelativeTime (TimeDuration) const
 Returns an Edit beat point for a given number of seconds from the start of this item.
 
BeatDuration getOffsetInBeats () const
 Returns an the offset of this item in beats.
 
EditItemID getTrackID () const
 Returns the ID of the Track this item lives on.
 
- Public Member Functions inherited from tracktion::engine::EditItem
 EditItem (EditItemID, Edit &)
 
- Public Member Functions inherited from tracktion::engine::Selectable
virtual void selectionStatusChanged (bool isNowSelected)
 Can be overridden to tell this object that it has just been selected or deselected.
 
virtual void selectableAboutToBeDeleted ()
 Called just before the selectable is about to be deleted so any subclasses should still be valid at this point.
 
void addListener (SelectableListener *)
 
void removeListener (SelectableListener *)
 
void addSelectableListener (SelectableListener *)
 
void removeSelectableListener (SelectableListener *)
 
void cancelAnyPendingUpdates ()
 If changed() has been called, this will cancel any pending async change notificaions.
 
void deselect ()
 
void propertiesChanged ()
 
void notifyListenersOfDeletion ()
 
WeakRef getWeakRef ()
 
- Public Member Functions inherited from juce::ReferenceCountedObject
void incReferenceCount () noexcept
 
void decReferenceCount () noexcept
 
bool decReferenceCountWithoutDeleting () noexcept
 
int getReferenceCount () const noexcept
 
- Public Member Functions inherited from tracktion::engine::RenderManager::Job::Listener
virtual void jobStarted (RenderManager::Job &)
 

Additional Inherited Members

- Static Public Member Functions inherited from tracktion::engine::AudioClipBase
static juce::StringArray getRootNoteChoices (Engine &)
 Returns an array of the root note choices e.g.
 
- Static Public Member Functions inherited from tracktion::engine::Clip
static bool isClipState (const juce::ValueTree &)
 Checks whether a ValueTree is some kind of clip state.
 
static bool isClipState (const juce::Identifier &)
 Checks whether a ValueTree type is some kind of clip state.
 
static Ptr createClipForState (const juce::ValueTree &, ClipOwner &targetParent)
 Creates a clip for a given ValueTree representation.
 
- Static Public Member Functions inherited from tracktion::engine::TrackItem
static const chartypeToString (Type)
 Returns the string version of a TrackItem::Type.
 
static juce::Identifier clipTypeToXMLType (Type)
 Returns an Identifier version of a TrackItem::Type.
 
static TrackItem::Type xmlTagToType (juce::StringRef)
 Returns the TrackItem::Type of a type string.
 
static TrackItem::Type stringToType (const juce::String &)
 Returns the TrackItem::Type of a type string.
 
static juce::String getSuggestedNameForNewItem (Type)
 Returns a text string for a new clip of the given type.
 
template<typename ArrayType >
static void sortByTime (ArrayType &items)
 Helper function to sort an array of TrackItem[s] by their start time.
 
template<typename ArrayType >
static void stableSortByTime (ArrayType &items)
 Helper function to sort an array of TrackItem[s] by their start time without changing the order of items at the same time.
 
- Static Public Member Functions inherited from tracktion::engine::Selectable
static void initialise ()
 
static bool isSelectableValid (const Selectable *) noexcept
 checks whether this object has been deleted.
 
- Static Public Member Functions inherited from tracktion::engine::Exportable
static juce::Array< Exportable * > addAllExportables (Edit &)
 Returns all the Exportables contained in an Edit.
 
- Public Attributes inherited from tracktion::engine::AudioClipBase
juce::ReferenceCountedObjectPtr< MelodyneFileReadermelodyneProxy
 The MelodyneFileReader proxy if this clip is using Melodyne.
 
juce::CachedValue< TimeStretcher::ElastiqueProOptionselastiqueProOptions
 The ElastiqueProOptions for fine tuning Elastique (if available).
 
- Public Attributes inherited from tracktion::engine::Clip
juce::CachedValue< FollowActionDurationTypefollowActionDurationType
 The type of duration to use for when to trigger the follow action.
 
juce::CachedValue< BeatDurationfollowActionBeats
 Determines the time for which a launched clip will play before a follow action is taken.
 
juce::CachedValue< doublefollowActionNumLoops
 Determines the number of loops for which a launched clip will play before a follow action is taken.
 
juce::ValueTree state
 The ValueTree of the Clip state.
 
juce::CachedValue< juce::Colourcolour
 The colour property.
 
juce::CachedValue< bool > disabled
 Whether the Clip is disabled or not.
 
- Public Attributes inherited from tracktion::engine::TrackItem
const Type type
 The type of this item.
 
- Public Attributes inherited from tracktion::engine::EditItem
Editedit
 
const EditItemID itemID
 Every EditItem has an ID which is unique within the edit.
 
- Public Attributes inherited from tracktion::engine::Selectable
WeakRef::Master masterReference
 
- Protected Member Functions inherited from tracktion::engine::AudioClipBase
void updateLeftRightChannelActivenessFlags ()
 
void createNewProxyAsync ()
 Triggers a source or proxy render after a timeout.
 
void valueTreeParentChanged (juce::ValueTree &) override
 
- Protected Member Functions inherited from tracktion::engine::Clip
void setCurrentSourceFile (const juce::File &)
 Sets a new source file for this clip.
 
void valueTreeParentChanged (juce::ValueTree &) override
 
- Protected Member Functions inherited from juce::ReferenceCountedObject
 ReferenceCountedObject (const ReferenceCountedObject &) noexcept
 
 ReferenceCountedObject (ReferenceCountedObject &&) noexcept
 
ReferenceCountedObjectoperator= (const ReferenceCountedObject &) noexcept
 
ReferenceCountedObjectoperator= (ReferenceCountedObject &&) noexcept
 
void resetReferenceCount () noexcept
 
- Protected Member Functions inherited from juce::ValueTree::Listener
virtual void valueTreeRedirected (ValueTree &treeWhichHasBeenChanged)
 
- Protected Attributes inherited from tracktion::engine::AudioClipBase
std::shared_ptr< ClipLevellevel
 
juce::CachedValue< juce::Stringchannels
 
juce::CachedValue< TimeDurationfadeIn
 
juce::CachedValue< TimeDurationfadeOut
 
TimeDuration autoFadeIn
 
TimeDuration autoFadeOut
 
juce::CachedValue< AudioFadeCurve::TypefadeInType
 
juce::CachedValue< AudioFadeCurve::TypefadeOutType
 
juce::CachedValue< bool > autoCrossfade
 
juce::CachedValue< FadeBehaviourfadeInBehaviour
 
juce::CachedValue< FadeBehaviourfadeOutBehaviour
 
juce::CachedValue< ResamplingQualityresamplingQuality
 
juce::CachedValue< TimePositionloopStart
 
juce::CachedValue< TimeDurationloopLength
 
juce::CachedValue< BeatPositionloopStartBeats
 
juce::CachedValue< BeatDurationloopLengthBeats
 
juce::CachedValue< intproxyAllowed
 
juce::CachedValue< inttranspose
 
juce::CachedValue< floatpitchChange
 
LoopInfo loopInfo
 
juce::CachedValue< floatbeatSensitivity
 
juce::CachedValue< TimeStretcher::ModetimeStretchMode
 
juce::CachedValue< bool > autoPitch
 
juce::CachedValue< bool > autoTempo
 
juce::CachedValue< bool > isReversed
 
juce::CachedValue< bool > autoDetectBeats
 
juce::CachedValue< bool > warpTime
 
juce::CachedValue< bool > clipEffectsVisible
 
juce::CachedValue< AutoPitchModeautoPitchMode
 
WarpTimeManager::Ptr warpTimeManager
 
std::unique_ptr< AudioSegmentListaudioSegmentList
 
std::unique_ptr< ClipEffectsclipEffects
 
AsyncFunctionCaller asyncFunctionCaller
 
juce::AudioChannelSet activeChannels
 
PluginList pluginList
 
bool lastRenderJobFailed
 
RenderManager::Job::Ptr renderJob
 
AudioFile lastProxy
 
- Protected Attributes inherited from tracktion::engine::Clip
bool isInitialised
 
bool cloneInProgress
 
juce::CachedValue< juce::StringclipName
 
ClipOwnerparent
 
juce::CachedValue< TimePositionclipStart
 
juce::CachedValue< TimeDurationlength
 
juce::CachedValue< TimeDurationoffset
 
juce::CachedValue< doublespeedRatio
 
SourceFileReference sourceFileReference
 
juce::CachedValue< EditItemIDgroupID
 
juce::CachedValue< juce::StringlinkID
 
juce::File currentSourceFile
 
juce::CachedValue< SyncTypesyncType
 
juce::CachedValue< bool > showingTakes
 
std::unique_ptr< PatternGeneratorpatternGenerator
 
AsyncCaller updateLinkedClipsCaller
 
juce::ListenerList< Listenerlisteners
 

Detailed Description

An audio clip that uses an audio file as its source.

Definition at line 18 of file tracktion_WaveAudioClip.h.

Member Typedef Documentation

◆ Ptr

Definition at line 27 of file tracktion_WaveAudioClip.h.

Constructor & Destructor Documentation

◆ WaveAudioClip()

tracktion::engine::WaveAudioClip::WaveAudioClip ( const juce::ValueTree v,
EditItemID  clipID,
ClipOwner co 
)

Creates a WaveAudioClip from a given state.

See also
ClipTrack::insertWaveClip.

Definition at line 14 of file tracktion_WaveAudioClip.cpp.

◆ ~WaveAudioClip()

tracktion::engine::WaveAudioClip::~WaveAudioClip ( )
override

Destructor.

Definition at line 19 of file tracktion_WaveAudioClip.cpp.

Member Function Documentation

◆ addTake() [1/2]

void tracktion::engine::WaveAudioClip::addTake ( const juce::File f)

Adds a new take with the given file as the source.

Definition at line 177 of file tracktion_WaveAudioClip.cpp.

◆ addTake() [2/2]

void tracktion::engine::WaveAudioClip::addTake ( ProjectItemID  id)

Adds a new take with the ProjectItemID as the source.

Definition at line 167 of file tracktion_WaveAudioClip.cpp.

◆ clearTakes()

void tracktion::engine::WaveAudioClip::clearTakes ( )
overridevirtual

Clears any takes this clip has.

Reimplemented from tracktion::engine::Clip.

Definition at line 213 of file tracktion_WaveAudioClip.cpp.

◆ cloneFrom()

void tracktion::engine::WaveAudioClip::cloneFrom ( Clip c)
overridevirtual

Clones the given clip to this clip.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 37 of file tracktion_WaveAudioClip.cpp.

◆ deleteAllUnusedTakes()

void tracktion::engine::WaveAudioClip::deleteAllUnusedTakes ( bool  deleteSourceFiles)

Deletes all but the current takes.

Parameters
deleteSourceFilesIf true, also deletes the source files

Definition at line 414 of file tracktion_WaveAudioClip.cpp.

◆ deleteAllUnusedTakesConfirmingWithUser()

void tracktion::engine::WaveAudioClip::deleteAllUnusedTakesConfirmingWithUser ( bool  deleteSourceFiles)

Deletes all but the current takes but shows a confirmation dialog first.

Parameters
deleteSourceFilesIf true, also deletes the source files

Definition at line 341 of file tracktion_WaveAudioClip.cpp.

◆ getCompManager()

WaveCompManager & tracktion::engine::WaveAudioClip::getCompManager ( )

Returns the WaveCompManager for this clip.

Definition at line 508 of file tracktion_WaveAudioClip.cpp.

◆ getCurrentTake()

int tracktion::engine::WaveAudioClip::getCurrentTake ( ) const
overridevirtual

Returns the current take index.

Reimplemented from tracktion::engine::Clip.

Definition at line 223 of file tracktion_WaveAudioClip.cpp.

◆ getHash()

HashCode tracktion::engine::WaveAudioClip::getHash ( ) const
overridevirtual

Must return a unique hash for this clip's source.

This should be the same until the clip changes as it is used to determine if the proxy needs regenerating.

Implements tracktion::engine::AudioClipBase.

Definition at line 100 of file tracktion_WaveAudioClip.cpp.

◆ getNumTakes()

int tracktion::engine::WaveAudioClip::getNumTakes ( bool  )
overridevirtual

Returns the total number of takes.

Parameters
includeCompsWhether comps should be included in the count

Reimplemented from tracktion::engine::Clip.

Definition at line 192 of file tracktion_WaveAudioClip.cpp.

◆ getOriginalFile()

juce::File tracktion::engine::WaveAudioClip::getOriginalFile ( ) const
overridevirtual

Must return the file that the source ProjectItemID refers to.

Implements tracktion::engine::AudioClipBase.

Definition at line 85 of file tracktion_WaveAudioClip.cpp.

◆ getRenderJob()

RenderManager::Job::Ptr tracktion::engine::WaveAudioClip::getRenderJob ( const AudioFile )
overridevirtual

Subclasses should override this to return a RenderJob suitable for rendering its source file.

Note that because we can only render one source this should also check to see if the source should be reversed and do so accordingly. This will be called on the message thread so should complete quickly, if your source needs some time consuming setup (e.g. loading Edits) then make sure your render job does this in its render thread.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 528 of file tracktion_WaveAudioClip.cpp.

◆ getRenderMessage()

juce::String tracktion::engine::WaveAudioClip::getRenderMessage ( )
overridevirtual

Override this to return a custom message to be displayed over waveforms during rendering.

This is called periodically once a render has started. Once you are done, this should return an empty string to let the AudioStripBase know to stop updating.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 560 of file tracktion_WaveAudioClip.cpp.

◆ getSelectableDescription()

juce::String tracktion::engine::WaveAudioClip::getSelectableDescription ( )
overridevirtual

Subclasses must return a description of what they are.

Implements tracktion::engine::Selectable.

Definition at line 50 of file tracktion_WaveAudioClip.cpp.

◆ getSourceLength()

TimeDuration tracktion::engine::WaveAudioClip::getSourceLength ( ) const
overridevirtual

Must return the length in seconds of the source material e.g.

the length of the audio file or edit.

Implements tracktion::engine::AudioClipBase.

Definition at line 55 of file tracktion_WaveAudioClip.cpp.

◆ getTakeDescriptions()

juce::StringArray tracktion::engine::WaveAudioClip::getTakeDescriptions ( ) const
overridevirtual

Returns the descriptions of any takes.

Reimplemented from tracktion::engine::Clip.

Definition at line 314 of file tracktion_WaveAudioClip.cpp.

◆ getTakes()

juce::Array< ProjectItemID > tracktion::engine::WaveAudioClip::getTakes ( ) const
overridevirtual

Returns the ProjectItemID of the clip's takes.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 200 of file tracktion_WaveAudioClip.cpp.

◆ hasAnyTakes()

bool tracktion::engine::WaveAudioClip::hasAnyTakes ( ) const
overridevirtual

Returns true if this clip has any takes.

Reimplemented from tracktion::engine::Clip.

Definition at line 94 of file tracktion_WaveAudioClip.h.

◆ initialise()

void tracktion::engine::WaveAudioClip::initialise ( )
overridevirtual

Initialises the Clip.

Called once automatically after construction.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 25 of file tracktion_WaveAudioClip.cpp.

◆ isCurrentTakeComp()

bool tracktion::engine::WaveAudioClip::isCurrentTakeComp ( )
overridevirtual

Returns true if the current take is a comp.

Reimplemented from tracktion::engine::Clip.

Definition at line 306 of file tracktion_WaveAudioClip.cpp.

◆ isMidi()

bool tracktion::engine::WaveAudioClip::isMidi ( ) const
overridevirtual

Returns true if this is a MidiClip.

Implements tracktion::engine::Clip.

Definition at line 73 of file tracktion_WaveAudioClip.h.

◆ isUsingFile()

bool tracktion::engine::WaveAudioClip::isUsingFile ( const AudioFile af)
overridevirtual

Should return true if the clip is referencing the file in any way.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 577 of file tracktion_WaveAudioClip.cpp.

◆ needsRender()

bool tracktion::engine::WaveAudioClip::needsRender ( ) const
overridevirtual

Subclasses should override this to return true if they need the rest of the render callbacks.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 93 of file tracktion_WaveAudioClip.cpp.

◆ reassignReferencedItem()

void tracktion::engine::WaveAudioClip::reassignReferencedItem ( const ReferencedItem item,
ProjectItemID  newID,
double  newStartTime 
)
overridevirtual

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 129 of file tracktion_WaveAudioClip.cpp.

◆ renderComplete()

void tracktion::engine::WaveAudioClip::renderComplete ( )
overridevirtual

Callback to indicate that the render has completed.

If you override this, make sure to call the base class implementation first.

Reimplemented from tracktion::engine::AudioClipBase.

Definition at line 108 of file tracktion_WaveAudioClip.cpp.

◆ setCurrentTake()

void tracktion::engine::WaveAudioClip::setCurrentTake ( int  )
overridevirtual

Sets a given take index to be the current take.

Reimplemented from tracktion::engine::Clip.

Definition at line 283 of file tracktion_WaveAudioClip.cpp.

◆ setLoopDefaults()

void tracktion::engine::WaveAudioClip::setLoopDefaults ( )
overridevirtual

Override this to fill in the LoopInfo structure as best fits the source.

Implements tracktion::engine::AudioClipBase.

Definition at line 114 of file tracktion_WaveAudioClip.cpp.

◆ sourceMediaChanged()

void tracktion::engine::WaveAudioClip::sourceMediaChanged ( )
overridevirtual

Called when the source media file reference (attribute "source") has changed - i.e.

when the clip has a new ProjectItemID assigned, not when the file itself changes.

Reimplemented from tracktion::engine::Clip.

Definition at line 71 of file tracktion_WaveAudioClip.cpp.

◆ unpackTakes()

Clip::Array tracktion::engine::WaveAudioClip::unpackTakes ( bool  )
overridevirtual

Attempts to unpack the takes to new clips.

Parameters
toNewTracksIf true this will create new tracks for the new clips, otherwise they'll be placed on existing tracks

Reimplemented from tracktion::engine::Clip.

Definition at line 462 of file tracktion_WaveAudioClip.cpp.

◆ usesSourceFile()

bool tracktion::engine::WaveAudioClip::usesSourceFile ( ) const
overridevirtual

True if it references a source file - i.e.

audio clips do, midi doesn't.

Reimplemented from tracktion::engine::Clip.

Definition at line 75 of file tracktion_WaveAudioClip.h.


The documentation for this class was generated from the following files: