"Stretch"/Multiply values on an Automation Track

Having trouble with LMMS? Ask about it here.
Hi, I'm new to this forum and new-ish to LMMS.
I get the feeling there's no way to do this currently, but I also would really like to have a way to do this if there is one.
I have some MIDIs ripped from very... special, places. They import properly into the soundfont they're designed for, but some automation tracks seem to be broken. For example, the Pitch automation is clearly out-of-tune. It'd be both inaccurate and a bit of a pain to have to redraw it manually.
What I'm looking for is some sort of way to multiply the numbers on an automation track, which would appear to "stretch" it vertically. Is there any way to do this?
hahasamian wrote:
Wed Mar 31, 2021 2:42 am
Hi, I'm new to this forum and new-ish to LMMS.
Hi, Welcome to the Forum hahasamian !
Here are all important links:
http://lmms.io/forum/viewtopic.php?f=1&t=4740
-A few rules and useful forum instructions
If you like to introduce yourself, to the community, go here:
http://lmms.io/forum/viewtopic.php?f=4&t=4480

I get the feeling there's no way to do this currently, but I also would really like to have a way to do this if there is one.
I have some MIDIs ripped from very... special, places. They import properly into the soundfont they're designed for, but some automation tracks seem to be broken. For example, the Pitch automation is clearly out-of-tune. It'd be both inaccurate and a bit of a pain to have to redraw it manually.
What I'm looking for is some sort of way to multiply the numbers on an automation track, which would appear to "stretch" it vertically. Is there any way to do this?

Not a simple one, but it can be done.
You need to
* MAKE A SECURITY OF YOUR PROJECT!!!
* Open the project-copy
* Find and Name the automation-track that you want to "stretch" to something that is 100% distinctive .. Like EDITTHIS
* save your project as MMP-file
* Open that file in a code-editor, or use note-pad
* Use the search option to find the code-block for EDITTHIS
You should see something like this:

Code: Select all

        <automationtrack/>
        <automationpattern tens="1" pos="0" len="192" prog="0" name="EDITTHIS" mute="0">
          <time pos="0" value="0.24"/> 
          <time pos="10" value="0.09"/>
          <time pos="20" value="0.48"/>
          <time pos="30" value="0.24"/>
          <object id="2251"/>        
          </automationpattern>
      </track>
      
      BLA BLA BLA.........
Those value, you need to double for a 2x multiplication
Here a x2 would result in:

Code: Select all

        <automationtrack/>
        <automationpattern tens="1" pos="0" len="192" prog="0" name="EDITTHIS" mute="0">
          <time pos="0" value="0.48"/> 
          <time pos="10" value="0.18"/>
          <time pos="20" value="0.96"/>
          <time pos="30" value="0.48"/>
          <object id="2251"/>        
          </automationpattern>
      </track>
      
      BLA BLA BLA.........
Do not accidentality edit any other code!
Hi musikbear, thanks for the quick response!
Maybe I can make a little piece of code to handle this (or just do it manually), but it'd be cool to see it as a feature in the future!
I don't know the exact extent I need to multiply, so an in-editor way to do this would still be ideal. But knowing how to do it in-code is helpful at least!
hahasamian wrote:
Wed Mar 31, 2021 7:15 pm
Hi musikbear, thanks for the quick response!
Maybe I can make a little piece of code to handle this (or just do it manually), but it'd be cool to see it as a feature in the future!
I don't know the exact extent I need to multiply, so an in-editor way to do this would still be ideal. But knowing how to do it in-code is helpful at least!
I feel that is is that 'how often' that is the real issue. This is more like a 'one-off', you will properly never have any need for doing that again, because basically it is a question about making the automation right the first time, and most MIDI-files will have that natively. The one you have now, does not, but thats the one-off. I cant see this as a generally useful feature.
If you think you have the perfect usecase, where this is missing, let us know.
I personally will need to use this or some other method/program various times. I like trying to edit music that's ripped directly from video games (using MIDIs and SF2 files), but the problem is it doesn't always come out right, so I need to make adjustments, this being one such adjustment that comes up semi-frequently.
A more normal example would probably be if someone makes complex volume automation tracks, but realizes the general volume is a bit too loud. They wouldn't want to trace the path over again, it'd be much more convenient to just multiply it by a fraction. I'd say it's just a generally useful feature that helps streamline operations.