11namespace tracktion {
inline namespace engine
43 static constexpr double minBPM = 20.0;
46 static constexpr double maxBPM = 300.0;
57 double getBpm()
const {
return bpm; }
73 void set (
BeatPosition,
double newBpm,
float newCurve,
bool remapEditPositions);
76 void setBpm (
double newBpm);
102 HashCode getHash() const noexcept;
105 juce::ValueTree state;
108 juce::CachedValue<
double> bpm;
109 juce::CachedValue<
float> curve;
The Tracktion Edit class!
Holds a list of TempoSetting objects, to form a sequence of tempo changes.
A tempo value, as used in a TempoSequence.
void setBpm(double newBpm)
Sets the BPM of this tempo setting.
BeatPosition getStartBeat() const
Returns the start beat of the setting.
static constexpr double minBPM
Minimum BPM a setting can have.
~TempoSetting() override
Destructor.
juce::String getSelectableDescription() override
Returns the description of this Selectable.
TimeSigSetting & getMatchingTimeSig() const
Returns the time signature at this tempo's time in the sequence.
TimePosition getStartTime() const
Returns the start time in seconds of the tempo setting.
TempoSetting * getPreviousTempo() const
Returns the previous tempo setting in the sequence.
void setCurve(float curve)
Sets the curve of this tempo setting.
double getBpm() const
Returns the BPM of the setting.
TimeDuration getApproxBeatLength() const
Returns the approximate length of one beat based on the bpm and matching time sig denonimator.
static constexpr double maxBPM
Maximum BPM a setting can have.
static juce::ValueTree create(BeatPosition startBeat, double bpm, float curve)
Creates a tree to prepresent a TempoSetting.
void removeFromEdit()
Removes the TempoSetting from the sequence.
Edit & getEdit() const
Returns the Edit this setting belongs to.
float getCurve() const
Returns the curve of the setting.
Represents a position in beats.
Represents a duration in real-life time.
Represents a position in real-life time.