Quantcast
Channel: LinuxMusicians
Viewing all articles
Browse latest Browse all 42

MusE Sequencer • Major song file changes planned

$
0
0

Hi all. Just a warning for anyone testing my 'fix_linux_vst_params' git branch.
I needed to make some major song file changes.
I just now pushed major changes to the MusE song file format.
The song file version number has been bumped from 3.4 to 4.0
From here forward, songs saved with this version definitely will not be
backwards compatible with any older MusE version, either released or from git.

With older MusE versions, there was usually a fighting chance that at the very least,
saved midi tracks and parts and notes, and other track types, might be partially
successful at loading in an still older MusE version than that version.
Unfortunately not so with these changes.

Apologies, the changes were... necessary in order to move forward.

A brief explanation: Track tags are now less 'flat' than they were:
All tracks now have one or two new XML tags under which all the other stuff goes.
The new tags are AudioTrack and Track. It looks like this now. (Compare with older files):

Code:

    
<AudioOutput> <AudioTrack> <Track> <name>Out 1</name> <record>0</record> <mute>0</mute> <solo>0</solo> <off>0</off> <channels>2</channels> <height>138</height> <locked>0</locked> <recMonitor>0</recMonitor> </Track> <prefader>0</prefader> <sendMetronome>1</sendMetronome> <automation>1</automation> <gain>1</gain> <plugin file="noise" label="noise_white" name="White Noise Source-0" id="0"> <control ctl="0" name="Amplitude" val="0x1.4c3d3cp-4" /> <active>1</active> <on>1</on> <gui>0</gui> <geometry x="385" y="43" w="331" h="108"></geometry> <nativegui>0</nativegui> <nativeGeometry x="0" y="0" w="0" h="0"></nativeGeometry> <controller id="0" cur="0x1.4c3d3cp-4" color="#ffff00" visible="1"> </controller> <midiAssign port="1" ch="5" mctrl="1" type="0" id="1"> </midiAssign> </plugin> </AudioTrack> </AudioOutput>

Another thing to notice in that text:
This new format allowed me to move 'controller' tags and 'midiAssign' tags from the track itself
to underneath the actual 'plugin' tag.
And that allowed me to remove the annoying rack position upper bits from the controller 'id' numbers.
And that makes them more human-readable in the song's XML.
No more "controller id=16384" etc., notice how they all start at zero now.
If it says controller id 0 that means it's for that plugin's control number 0. Easy to read, eh?

And... there is a deeper reason why all this was necessary:
Dragging and dropping plugins should be working now.
Drag-copy, and drag-move should all be working now.
Even from another instance of MusE.

And... Controller automation and midi assignments are now also copied or moved with the plugin.
(At the moment I don't ask if copying, but I will.)
And for that, it required moving 'controllers' and 'midiAssign' tags underneath the 'plugin' tag
because drag from another instance requires involving our XML structures.

So... You see I initially just made these changes for dragging and dropping plugins,
but then decided to apply them to song files in order to be consistent.

Carry on!
Tim.

Statistics: Posted by Tim E. Real — Mon Apr 29, 2024 4:47 am



Viewing all articles
Browse latest Browse all 42

Trending Articles