Tempo ramps - more comment fixes.
This commit is contained in:
parent
7ab9f36c8a
commit
bf96a74e96
@ -589,17 +589,20 @@ MeterSection::get_state() const
|
|||||||
Tempo is the rate of the musical pulse.
|
Tempo is the rate of the musical pulse.
|
||||||
Meters divide the pulses into measures and beats.
|
Meters divide the pulses into measures and beats.
|
||||||
|
|
||||||
|
TempoSections - provide pulses in the form of beats_per_minute() and note_type() where note_type is the division of a whole pulse,
|
||||||
|
and beats_per_minute is the number of note_types in one minute (unlike what its name suggests).
|
||||||
Note that Tempo::beats_per_minute() has nothing to do with musical beats.
|
Note that Tempo::beats_per_minute() has nothing to do with musical beats.
|
||||||
It should rather be thought of as tempo note divisions per minute.
|
|
||||||
|
|
||||||
TempoSections, which are nice to think of in whole pulses per minute,
|
MeterSecions - divide pulses into measures (via divisions_per_bar) and beats (via note_divisor).
|
||||||
and MeterSecions which divide tempo pulses into measures (via divisions_per_bar)
|
|
||||||
and beats (via note_divisor) are used to form a tempo map.
|
Both tempos and meters have a pulse position and a frame position.
|
||||||
|
Meters also have a beat position, which is always 0.0 for the first meter.
|
||||||
TempoSections and MeterSections may be locked to either audio or music (position lock style).
|
TempoSections and MeterSections may be locked to either audio or music (position lock style).
|
||||||
We construct the tempo map by first using the frame or pulse position (depending on position lock style) of each tempo.
|
The lock style determines the 'true' position of the section wich is used to calculate the other postion parameters of the section.
|
||||||
We then use this pulse/frame layout to find the beat & pulse or frame position of each meter (again depending on lock style).
|
|
||||||
|
|
||||||
Having done this, we can now find any one of tempo, beat, frame or pulse if a beat, frame, pulse or tempo is known.
|
The first tempo and first meter are special. they must move together, and must be locked to audio.
|
||||||
|
Audio locked tempos which lie before the first meter are made inactive.
|
||||||
|
They will be re-activated if the first meter is again placed before them.
|
||||||
|
|
||||||
With tepo sections potentially being ramped, meters provide a way of mapping beats to whole pulses without
|
With tepo sections potentially being ramped, meters provide a way of mapping beats to whole pulses without
|
||||||
referring to the tempo function(s) involved as the distance in whole pulses between a meter and a subsequent beat is
|
referring to the tempo function(s) involved as the distance in whole pulses between a meter and a subsequent beat is
|
||||||
@ -614,18 +617,13 @@ MeterSection::get_state() const
|
|||||||
Remembering that ramped tempo sections interact, it is important to avoid referring to any other tempos when moving tempo sections,
|
Remembering that ramped tempo sections interact, it is important to avoid referring to any other tempos when moving tempo sections,
|
||||||
Here, beats (meters) are used to determine the new pulse (see predict_tempo_position())
|
Here, beats (meters) are used to determine the new pulse (see predict_tempo_position())
|
||||||
|
|
||||||
The first tempo and first meter are special. they must move together, and must be locked to audio.
|
Recomputing the map is the process where the 'missing' position
|
||||||
Audio locked tempos which lie before the first meter are made inactive.
|
|
||||||
They will be re-activated if the first meter is again placed before them.
|
|
||||||
|
|
||||||
Both tempos and meters have a pulse position and a frame position.
|
|
||||||
Meters also have a beat position, which is always 0.0 for the first meter.
|
|
||||||
|
|
||||||
A tempo locked to music is locked to musical pulses.
|
|
||||||
A meter locked to music is locked to beats.
|
|
||||||
|
|
||||||
Recomputing the tempo map is the process where the 'missing' position
|
|
||||||
(tempo pulse or meter pulse & beat in the case of AudioTime, frame for MusicTime) is calculated.
|
(tempo pulse or meter pulse & beat in the case of AudioTime, frame for MusicTime) is calculated.
|
||||||
|
We construct the tempo map by first using the frame or pulse position (depending on position lock style) of each tempo.
|
||||||
|
We then use this tempo map (really just the tempos) to find the pulse or frame position of each meter (again depending on lock style).
|
||||||
|
|
||||||
|
Having done this, we can now find any musical duration by selecting the tempo and meter covering the position (or tempo) in question
|
||||||
|
and querying its appropriate meter/tempo.
|
||||||
|
|
||||||
It is important to keep the _metrics in an order that makes sense.
|
It is important to keep the _metrics in an order that makes sense.
|
||||||
Because ramped MusicTime and AudioTime tempos can interact with each other,
|
Because ramped MusicTime and AudioTime tempos can interact with each other,
|
||||||
|
Loading…
Reference in New Issue
Block a user