1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
/**********************************************************************
Audacity: A Digital Audio Editor
MixAndRender.h
@brief Generate mono or stereo track mixing other given tracks
Paul Licameli split from Mix.h
**********************************************************************/
#ifndef __AUDACITY_MIX_AND_RENDER_H
#define __AUDACITY_MIX_AND_RENDER_H
#include "Mix.h"
#include "SampleFormat.h"
#include "Track.h"
class AudacityProject;
class WaveTrack;
class WaveTrackFactory;
#include <memory>
/** @brief Mixes together all input tracks, applying any envelopes, per-track
* real-time effects, volume, panning and real-time effects in the process.
*
* Takes one or more tracks as input; of all the WaveTracs,
* it mixes together all input tracks, applying any envelopes, per-track
* real-time effects, volume, panning and real-time effects in the process. The
* resulting pair of tracks (stereo) are "rendered" and have no effects, volume,
* 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,
* except that `newTrackName` is applied when more than one track is mixed.
*
* @param 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
*/
EFFECTS_API Track::Holder MixAndRender(
const TrackIterRange<const WaveTrack> &trackRange,
const Mixer::WarpOptions &warpOptions,
const wxString &newTrackName,
WaveTrackFactory *factory,
double rate, sampleFormat format,
double startTime, double endTime);
enum ChannelName : int;
using ChannelNames = const ChannelName *;
EFFECTS_API
std::vector<MixerOptions::StageSpecification>
GetEffectStages(const WaveTrack &track);
EFFECTS_API
std::vector<MixerOptions::StageSpecification>
GetMasterEffectStages(const AudacityProject& project);
#endif
|