![]() |
Audacity 3.2.0
|
#include "MixAndRender.h"
#include "BasicUI.h"
#include "Mix.h"
#include "RealtimeEffectList.h"
#include "WaveTrack.h"
#include "RealtimeEffectState.h"
#include "Project.h"
Go to the source code of this file.
Typedefs | |
using | WaveTrackConstArray = std::vector< std::shared_ptr< const WaveTrack > > |
Functions | |
void | MixAndRender (const TrackIterRange< const WaveTrack > &trackRange, const Mixer::WarpOptions &warpOptions, const wxString &newTrackName, WaveTrackFactory *trackFactory, double rate, sampleFormat format, double startTime, double endTime, WaveTrack::Holder &uLeft, WaveTrack::Holder &uRight) |
Mixes together all input tracks, applying any envelopes, amplitude gain, panning, and real-time effects in the process. More... | |
std::vector< MixerOptions::StageSpecification > | GetEffectStages (const WaveTrack &track) |
using WaveTrackConstArray = std::vector < std::shared_ptr < const WaveTrack > > |
Definition at line 18 of file MixAndRender.cpp.
std::vector< MixerOptions::StageSpecification > GetEffectStages | ( | const WaveTrack & | track | ) |
Definition at line 207 of file MixAndRender.cpp.
References RealtimeEffectList::Get(), and settings().
Referenced by ExportPlugin::CreateMixer(), MixAndRender(), and EffectStereoToMono::ProcessOne().
void MixAndRender | ( | const TrackIterRange< const WaveTrack > & | trackRange, |
const Mixer::WarpOptions & | warpOptions, | ||
const wxString & | newTrackName, | ||
WaveTrackFactory * | factory, | ||
double | rate, | ||
sampleFormat | format, | ||
double | startTime, | ||
double | endTime, | ||
std::shared_ptr< WaveTrack > & | uLeft, | ||
std::shared_ptr< WaveTrack > & | uRight | ||
) |
Mixes together all input tracks, applying any envelopes, amplitude gain, panning, and real-time effects in the process.
Takes one or more tracks as input; of all the WaveTrack s, it mixes them together, applying any envelopes, amplitude gain, panning, and real-time effects in the process. The resulting pair of tracks (stereo) are "rendered" and have no effects, gain, panning, or envelopes. Other sorts of tracks are ignored. If the start and end times passed are the same this is taken as meaning no explicit time range to process, and the whole occupied length of the input tracks is processed. Channel group properties of the result are copied from the first input track.
newTrackName | used only when there is more than one input track (one mono channel or a stereo pair); else the unique track's name is copied |
Definition at line 21 of file MixAndRender.cpp.
References IteratorRange< Iterator >::begin(), RefreshCode::Cancelled, TrackList::Channels(), RealtimeEffectList::Clear(), WaveTrackFactory::Create(), Mixer::EffectiveFormat(), IteratorRange< Iterator >::empty(), format, RealtimeEffectList::Get(), Mixer::GetBuffer(), GetEffectStages(), WaveTrackFactory::GetSampleBlockFactory(), BasicUI::MakeProgress(), Mixer::MixGetCurrentTime(), Track::MonoChannel, Mixer::Process(), size, BasicUI::Success, and XO().
Referenced by anonymous_namespace{TrackMenus.cpp}::DoMixAndRender(), and EffectBase::Preview().
|
static |
Definition at line 242 of file MixAndRender.cpp.
|
static |
Definition at line 247 of file MixAndRender.cpp.
|
static |
Definition at line 252 of file MixAndRender.cpp.
|
static |
Definition at line 257 of file MixAndRender.cpp.