temporal: use "pulses" info from old tempo maps
Note: pulses are whole notes
This commit is contained in:
parent
f8d86c8d19
commit
fbc578fdb6
@ -4499,14 +4499,18 @@ TempoMap::parse_tempo_state_3x (const XMLNode& node, LegacyTempoState& lts)
|
||||
}
|
||||
}
|
||||
|
||||
/* position is the only data we extract from older XML */
|
||||
|
||||
if (!node.get_property ("frame", lts.sample)) {
|
||||
error << _("Legacy tempo section XML does not have a \"frame\" node - map will be ignored") << endmsg;
|
||||
cerr << _("Legacy tempo section XML does not have a \"frame\" node - map will be ignored") << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!node.get_property ("pulse", lts.pulses)) {
|
||||
error << _("Legacy tempo section XML does not have a \"pulse\" node - map will be ignored") << endmsg;
|
||||
cerr << _("Legacy tempo section XML does not have a \"pulse\" node - map will be ignored") << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (node.get_property ("beats-per-minute", lts.note_types_per_minute)) {
|
||||
if (lts.note_types_per_minute < 0.0) {
|
||||
error << _("TempoSection XML node has an illegal \"beats_per_minute\" value") << endmsg;
|
||||
@ -4575,6 +4579,12 @@ TempoMap::parse_meter_state_3x (const XMLNode& node, LegacyMeterState& lms)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!node.get_property ("pulse", lms.pulses)) {
|
||||
error << _("Legacy meter section XML does not have a \"pulse\" node - map will be ignored") << endmsg;
|
||||
cerr << _("Legacy meter section XML does not have a \"pulse\" node - map will be ignored") << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!node.get_property ("beat", lms.beat)) {
|
||||
lms.beat = 0.0;
|
||||
}
|
||||
@ -4653,7 +4663,7 @@ TempoMap::set_state_3x (const XMLNode& node)
|
||||
Tempo t (lts.note_types_per_minute,
|
||||
lts.end_note_types_per_minute,
|
||||
lts.note_type);
|
||||
TempoPoint* tp = new TempoPoint (*this, t, samples_to_superclock (0, TEMPORAL_SAMPLE_RATE), Beats(), BBT_Time());
|
||||
TempoPoint* tp = new TempoPoint (*this, t, samples_to_superclock (0, TEMPORAL_SAMPLE_RATE), Beats::from_double (lts.pulses * 4.0), BBT_Time());
|
||||
|
||||
tp->set_continuing (lts.continuing);
|
||||
|
||||
@ -4730,7 +4740,7 @@ TempoMap::set_state_3x (const XMLNode& node)
|
||||
lts.end_note_types_per_minute,
|
||||
lts.note_type);
|
||||
|
||||
set_tempo (t, timepos_t (lts.sample));
|
||||
set_tempo (t, timepos_t (lts.sample), Beats::from_double (lts.pulses * 4.0));
|
||||
|
||||
} else if (child->name() == Meter::xml_node_name) {
|
||||
|
||||
|
@ -1162,6 +1162,7 @@ class /*LIBTEMPORAL_API*/ TempoMap : public PBD::StatefulDestructible
|
||||
struct LegacyTempoState
|
||||
{
|
||||
samplepos_t sample;
|
||||
double pulses;
|
||||
double note_types_per_minute;
|
||||
double end_note_types_per_minute;
|
||||
double note_type;
|
||||
@ -1171,6 +1172,7 @@ class /*LIBTEMPORAL_API*/ TempoMap : public PBD::StatefulDestructible
|
||||
struct LegacyMeterState
|
||||
{
|
||||
samplepos_t sample;
|
||||
double pulses;
|
||||
BBT_Time bbt;
|
||||
double beat;
|
||||
double divisions_per_bar;
|
||||
|
Loading…
Reference in New Issue
Block a user