Skip to content

Commit

Permalink
Fix automation processing priority
Browse files Browse the repository at this point in the history
Fixes regression from 75077f6 that caused
global automation tracks to have priority in processing.

Adds a test checking for the desired behaviour.

Fixes #4268
  • Loading branch information
lukas-w committed Jun 1, 2018
1 parent 1349d45 commit 507f2cf
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/core/Song.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -816,7 +816,7 @@ AutomationPattern * Song::tempoAutomationPattern()

AutomatedValueMap Song::automatedValuesAt(MidiTime time, int tcoNum) const
{
return TrackContainer::automatedValuesFromTracks(TrackList(tracks()) << m_globalAutomationTrack, time, tcoNum);
return TrackContainer::automatedValuesFromTracks(TrackList{m_globalAutomationTrack} << tracks(), time, tcoNum);
}


Expand Down
24 changes: 24 additions & 0 deletions tests/src/tracks/AutomationTrackTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,30 @@ private slots:
QCOMPARE(song->automatedValuesAt(5)[&model], 0.5f);
QCOMPARE(song->automatedValuesAt(MidiTime::ticksPerTact() + 5)[&model], 0.5f);
}

void testGlobalAutomation()
{
// Global automation should not have priority, see https://github.com/LMMS/lmms/issues/4268
// Tests regression caused by 75077f6200a5aee3a5821aae48a3b8466ed8714a
auto song = Engine::getSong();

auto globalTrack = song->globalAutomationTrack();
AutomationPattern globalPattern(globalTrack);

AutomationTrack localTrack(song);
AutomationPattern localPattern(&localTrack);

FloatModel model;
globalPattern.setProgressionType(AutomationPattern::DiscreteProgression);
localPattern.setProgressionType(AutomationPattern::DiscreteProgression);
globalPattern.addObject(&model);
localPattern.addObject(&model);
globalPattern.putValue(0, 100.0f, false);
localPattern.putValue(0, 50.0f, false);

QCOMPARE(song->automatedValuesAt(0)[&model], 50.0f);
}

} AutomationTrackTest;

#include "AutomationTrackTest.moc"

0 comments on commit 507f2cf

Please sign in to comment.