Skip to content

Commit 9b04e29

Browse files
VeratilPhysSong
andauthored
Remove song import global automation (LMMS#5229)
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
1 parent 055e0ba commit 9b04e29

File tree

10 files changed

+48
-128
lines changed

10 files changed

+48
-128
lines changed

data/projects/templates/AcousticDrumset.mpt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -96,24 +96,6 @@
9696
</bbtrack>
9797
</track>
9898
</trackcontainer>
99-
<track type="6" muted="0" name="Automation track" solo="0">
100-
<automationtrack/>
101-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
102-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
103-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
104-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
105-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
106-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
107-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
108-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
109-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
110-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
111-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
112-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
113-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
114-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
115-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
116-
</track>
11799
<mixer visible="1" width="561" height="332" x="10" y="314" maximized="0" minimized="0">
118100
<mixerchannel num="0" muted="0" volume="1" name="Master" soloed="0">
119101
<fxchain numofeffects="0" enabled="0"/>

data/projects/templates/CR8000.mpt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -214,24 +214,6 @@
214214
</bbtrack>
215215
</track>
216216
</trackcontainer>
217-
<track type="6" muted="0" name="Automation track" solo="0">
218-
<automationtrack/>
219-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
220-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
221-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
222-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
223-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
224-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
225-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
226-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
227-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
228-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
229-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
230-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
231-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
232-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
233-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
234-
</track>
235217
<mixer visible="1" width="561" height="332" x="10" y="314" maximized="0" minimized="0">
236218
<mixerchannel num="0" muted="0" volume="1" name="Master" soloed="0">
237219
<fxchain numofeffects="0" enabled="0"/>

data/projects/templates/ClubMix.mpt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -113,24 +113,6 @@
113113
</bbtrack>
114114
</track>
115115
</trackcontainer>
116-
<track type="6" muted="0" name="Automation track" solo="0">
117-
<automationtrack/>
118-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
119-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
120-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
121-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
122-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
123-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
124-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
125-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
126-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
127-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
128-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
129-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
130-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
131-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
132-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
133-
</track>
134116
<mixer visible="1" width="561" height="332" x="10" y="314" maximized="0" minimized="0">
135117
<mixerchannel num="0" muted="0" volume="1" name="Master" soloed="0">
136118
<fxchain numofeffects="0" enabled="0"/>

data/projects/templates/Empty.mpt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,6 @@
44
<head timesig_denominator="4" bpm="140" masterpitch="0" mastervol="100" timesig_numerator="4"/>
55
<song>
66
<trackcontainer visible="1" width="600" height="300" type="song" x="6" y="5" maximized="0" minimized="0"/>
7-
<track type="6" muted="0" name="Automation track" solo="0">
8-
<automationtrack/>
9-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
10-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
11-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
12-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
13-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
14-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
15-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
16-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
17-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
18-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
19-
</track>
207
<mixer visible="1" width="561" height="332" x="5" y="310" maximized="0" minimized="0">
218
<mixerchannel num="0" muted="0" volume="1" name="Master" soloed="0">
229
<fxchain numofeffects="0" enabled="0"/>

data/projects/templates/TR808.mpt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -282,24 +282,6 @@
282282
</bbtrack>
283283
</track>
284284
</trackcontainer>
285-
<track type="6" muted="0" name="Automation track" solo="0">
286-
<automationtrack/>
287-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
288-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
289-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
290-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
291-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
292-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
293-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
294-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
295-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
296-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
297-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
298-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
299-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
300-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
301-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
302-
</track>
303285
<mixer visible="1" width="561" height="332" x="10" y="314" maximized="0" minimized="0">
304286
<mixerchannel num="0" muted="0" volume="1" name="Master" soloed="0">
305287
<fxchain numofeffects="0" enabled="0"/>

data/projects/templates/default.mpt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -52,24 +52,6 @@
5252
<automationtrack/>
5353
</track>
5454
</trackcontainer>
55-
<track muted="0" type="6" name="Automation track" solo="0">
56-
<automationtrack/>
57-
<automationpattern tens="1" mute="0" prog="0" name="Numerator" pos="0" len="192">
58-
<object id="4975896"/>
59-
</automationpattern>
60-
<automationpattern tens="1" mute="0" prog="0" name="Denominator" pos="0" len="192">
61-
<object id="6613237"/>
62-
</automationpattern>
63-
<automationpattern tens="1" mute="0" prog="0" name="Tempo" pos="0" len="192">
64-
<object id="6054005"/>
65-
</automationpattern>
66-
<automationpattern tens="1" mute="0" prog="0" name="Master volume" pos="0" len="192">
67-
<object id="1345820"/>
68-
</automationpattern>
69-
<automationpattern tens="1" mute="0" prog="0" name="Master pitch" pos="0" len="192">
70-
<object id="5865711"/>
71-
</automationpattern>
72-
</track>
7355
<mixer width="543" x="5" y="310" maximized="0" height="335" visible="1" minimized="0">
7456
<mixerchannel num="0" muted="0" volume="1" name="Master" soloed="0">
7557
<fxchain numofeffects="0" enabled="0"/>

data/projects/tutorials/editing_note_volumes.mmp

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,23 +50,6 @@
5050
<bbtco usestyle="1" muted="0" name="Beat/Baseline 0" pos="0" len="1536" color="4282417407"/>
5151
</track>
5252
</trackcontainer>
53-
<track type="6" muted="0" name="Automation track" solo="0">
54-
<automationtrack/>
55-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192">
56-
<time pos="0" value="140"/>
57-
</automationpattern>
58-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192">
59-
<time pos="0" value="100"/>
60-
</automationpattern>
61-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192">
62-
<time pos="0" value="0"/>
63-
</automationpattern>
64-
<automationpattern prog="0" mute="0" name="Numerator" pos="0" tens="1" len="192"/>
65-
<automationpattern prog="0" mute="0" name="Denominator" pos="0" tens="1" len="192"/>
66-
<automationpattern prog="0" mute="0" name="Tempo" pos="0" tens="1" len="192"/>
67-
<automationpattern prog="0" mute="0" name="Master volume" pos="0" tens="1" len="192"/>
68-
<automationpattern prog="0" mute="0" name="Master pitch" pos="0" tens="1" len="192"/>
69-
</track>
7053
<mixer visible="1" width="647" height="332" x="9" y="441" maximized="0" minimized="0">
7154
<mixerchannel num="0" muted="0" volume="1" name="Master" soloed="0">
7255
<fxchain numofeffects="0" enabled="0"/>

include/DataFile.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ class LMMS_EXPORT DataFile : public QDomDocument
134134
void upgrade_fixCMTDelays();
135135
void upgrade_fixBassLoopsTypo();
136136
void findProblematicLadspaPlugins();
137+
void upgrade_noHiddenAutomationTracks();
137138

138139
// List of all upgrade methods
139140
static const std::vector<UpgradeMethod> UPGRADE_METHODS;

src/core/DataFile.cpp

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ const std::vector<DataFile::UpgradeMethod> DataFile::UPGRADE_METHODS = {
8585
&DataFile::upgrade_sampleAndHold , &DataFile::upgrade_midiCCIndexing,
8686
&DataFile::upgrade_loopsRename , &DataFile::upgrade_noteTypes,
8787
&DataFile::upgrade_fixCMTDelays , &DataFile::upgrade_fixBassLoopsTypo,
88-
&DataFile::findProblematicLadspaPlugins
88+
&DataFile::findProblematicLadspaPlugins,
89+
&DataFile::upgrade_noHiddenAutomationTracks
8990
};
9091

9192
// Vector of all versions that have upgrade routines.
@@ -1638,6 +1639,51 @@ void DataFile::upgrade_1_3_0()
16381639
}
16391640
}
16401641

1642+
void DataFile::upgrade_noHiddenAutomationTracks()
1643+
{
1644+
// convert global automation tracks to non-hidden
1645+
QDomElement song = firstChildElement("lmms-project")
1646+
.firstChildElement("song");
1647+
QDomElement trackContainer = song.firstChildElement("trackcontainer");
1648+
QDomElement globalAutomationTrack = song.firstChildElement("track");
1649+
if (!globalAutomationTrack.isNull()
1650+
&& globalAutomationTrack.attribute("type").toInt() == static_cast<int>(Track::Type::HiddenAutomation))
1651+
{
1652+
// global automation clips
1653+
QDomNodeList automationClips = globalAutomationTrack.elementsByTagName("automationclip");
1654+
QList<QDomNode> tracksToInsert;
1655+
for (int i = 0; i < automationClips.length(); ++i)
1656+
{
1657+
QDomElement automationClip = automationClips.item(i).toElement();
1658+
// If automationClip has time nodes, move it to trackcontainer
1659+
// There are times when an <object> node is present without an
1660+
// object with the same ID in the file, so we ignore that node
1661+
if (automationClip.elementsByTagName("time").length() > 1)
1662+
{
1663+
QDomElement automationTrackForClip = createElement("track");
1664+
automationTrackForClip.setAttribute("muted", QString::number(false));
1665+
automationTrackForClip.setAttribute("solo", QString::number(false));
1666+
automationTrackForClip.setAttribute("type",
1667+
QString::number(static_cast<int>(Track::Type::Automation)));
1668+
automationTrackForClip.setAttribute("name",
1669+
automationClip.attribute("name", "Automation Track"));
1670+
QDomElement at = createElement("automationtrack");
1671+
automationTrackForClip.appendChild(at);
1672+
automationTrackForClip.appendChild(automationClips.item(i).cloneNode());
1673+
tracksToInsert.prepend(automationTrackForClip); // To preserve orders
1674+
}
1675+
}
1676+
1677+
// Insert the tracks at the beginning of trackContainer, preserving their order
1678+
for (const auto& track : tracksToInsert) {
1679+
trackContainer.insertBefore(track, trackContainer.firstChild());
1680+
}
1681+
1682+
// Remove the track object just in case
1683+
globalAutomationTrack.parentNode().removeChild(globalAutomationTrack);
1684+
}
1685+
}
1686+
16411687
void DataFile::upgrade_noHiddenClipNames()
16421688
{
16431689
QDomNodeList tracks = elementsByTagName("track");

src/core/Song.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,12 +1079,6 @@ void Song::loadProject( const QString & fileName )
10791079

10801080
getTimeline(PlayMode::Song).setLoopEnabled(false);
10811081

1082-
if( !dataFile.content().firstChildElement( "track" ).isNull() )
1083-
{
1084-
m_globalAutomationTrack->restoreState( dataFile.content().
1085-
firstChildElement( "track" ) );
1086-
}
1087-
10881082
//Backward compatibility for LMMS <= 0.4.15
10891083
PeakController::initGetControllerBySetting();
10901084

@@ -1239,7 +1233,6 @@ bool Song::saveProjectFile(const QString & filename, bool withResources)
12391233

12401234
saveState( dataFile, dataFile.content() );
12411235

1242-
m_globalAutomationTrack->saveState( dataFile, dataFile.content() );
12431236
Engine::mixer()->saveState( dataFile, dataFile.content() );
12441237
if( getGUI() != nullptr )
12451238
{

0 commit comments

Comments
 (0)