Skip to content

Commit

Permalink
Remove global automation from MIDI import (#5223)
Browse files Browse the repository at this point in the history
  • Loading branch information
Veratil authored and PhysSong committed Oct 15, 2019
1 parent d7a78fe commit 170d28f
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions plugins/MidiImport/MidiImport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,10 +309,20 @@ bool MidiImport::readSMF( TrackContainer* tc )
smfMidiChannel chs[256];

MeterModel & timeSigMM = Engine::getSong()->getTimeSigModel();
AutomationPattern * timeSigNumeratorPat =
AutomationPattern::globalAutomationPattern( &timeSigMM.numeratorModel() );
AutomationPattern * timeSigDenominatorPat =
AutomationPattern::globalAutomationPattern( &timeSigMM.denominatorModel() );
AutomationTrack * nt = dynamic_cast<AutomationTrack*>(
Track::create(Track::AutomationTrack, Engine::getSong()));
nt->setName(tr("MIDI Time Signature Numerator"));
AutomationTrack * dt = dynamic_cast<AutomationTrack*>(
Track::create(Track::AutomationTrack, Engine::getSong()));
dt->setName(tr("MIDI Time Signature Denominator"));
AutomationPattern * timeSigNumeratorPat =
new AutomationPattern(nt);
timeSigNumeratorPat->setDisplayName(tr("Numerator"));
timeSigNumeratorPat->addObject(&timeSigMM.numeratorModel());
AutomationPattern * timeSigDenominatorPat =
new AutomationPattern(dt);
timeSigDenominatorPat->setDisplayName(tr("Denominator"));
timeSigDenominatorPat->addObject(&timeSigMM.denominatorModel());

// TODO: adjust these to Time.Sig changes
double beatsPerTact = 4;
Expand All @@ -323,19 +333,12 @@ bool MidiImport::readSMF( TrackContainer* tc )
for( int s = 0; s < timeSigs->length(); ++s )
{
Alg_time_sig timeSig = (*timeSigs)[s];
// Initial timeSig, set song-default value
if(/* timeSig.beat == 0*/ true )
{
// TODO set song-global default value
printf("Another timesig at %f\n", timeSig.beat);
timeSigNumeratorPat->putValue( timeSig.beat*ticksPerBeat, timeSig.num );
timeSigDenominatorPat->putValue( timeSig.beat*ticksPerBeat, timeSig.den );
}
else
{
}

timeSigNumeratorPat->putValue(timeSig.beat * ticksPerBeat, timeSig.num);
timeSigDenominatorPat->putValue(timeSig.beat * ticksPerBeat, timeSig.den);
}
// manually call otherwise the pattern shows being 1 bar
timeSigNumeratorPat->updateLength();
timeSigDenominatorPat->updateLength();

pd.setValue( 2 );

Expand Down

0 comments on commit 170d28f

Please sign in to comment.