ModPlug Central

OpenMPT Development (Archive) => Feature Requests => Topic started by: seventhson on June 04, 2007, 18:13:07

Title: More midi macros
Post by: seventhson on June 04, 2007, 18:13:07
I'd like to have more midi macros (like the title says  :lol: )
Right now there are only 15 slots and since i started to use more effects and synths i also started to use more automation,so basically i'm running out of slots.
Title: Re: More midi macros
Post by: pelya on June 06, 2007, 06:51:52
Quote from: "seventhson"I'd like to have more midi macros (like the title says  :lol: )
Right now there are only 15 slots and since i started to use more effects and synths i also started to use more automation,so basically i'm running out of slots.
Maybe instead of SFx/Zxx macros write into pattern editor MIDI macro as-is using some special "note" command, like note-cut or note-off

^^  02         < note cut
C-4 02 v64 SD3 < plain note
MF0 03      10 < set plugin dry/wet ratio to value 10
MF0 81      3F < set plugin param 01 to value 3F
MBK 08      50 < set MIDI CC Panposition to 50
Title: More midi macros
Post by: LPChip on June 06, 2007, 07:31:31
Actually, that would work quite well, and give us the ability to use VST's in a much better way.

Midi messages need something to get them triggered, so it would also work for other midi speciffic messages.
Title: More midi macros
Post by: seventhson on June 06, 2007, 12:33:17
I'm not sure i understand what you guys mean lol

*edit i think i do now*
Wouldn't that just complicate thing?
Not every synth/effect has the same midi message for the different parameters.
Title: More midi macros
Post by: pelya on June 06, 2007, 15:36:24
Quote from: "seventhson"
Not every synth/effect has the same midi message for the different parameters.
You're talking that MIDI message will be sent to 1-st effect plugin attached to channel, but not to VSTi or chained effect plugins? Then maybe make it look like this:

C-4 02 v64 SD3 < plain note
MF0 01  83  10 < send MIDI msg "F0F08310" to plugin 01 (set plugin 01 param 03 to 10)

That will require to make volume value column hexadecimal (only with MIDI message!) and set maximum value of instrument column to the number of available plugins, not instruments. And then when you make song cleanup the instrument numbers will shift and everything will glitch.
Edit: There's another option to avoid touching mod command structure so deeply - make three new effect commands - first will choose plugin to edit, second will choose parameter number, and third will set new value of that parameter. Minimum 2 rows per parameter - seems that SFx/Zxx macros are better.
Title: More midi macros
Post by: LPChip on June 06, 2007, 16:05:30
Its not possible to use the volume effect for such extensive commands, as the volume command is only one byte.

But I guess such feature would be best to only implement in the MPTM format, and leave the IT alone. That way, you could temper with anytthing.
Title: More midi macros
Post by: Snu on June 06, 2007, 17:36:48
hmm, i think rewbs was working on a new way of doing macros... i cant remember any details, and i dont know how far he got tho.

my thoughts tho...
what we need (in the mptm format of course) is the ability to customize the effects for vst. for instance, since Oxx does nothing, you could set it to whatever midi CC you want (on a per-instrument basis).
of courese, you would also be able to change the 'normal' commands, like Dxx if that particular vsti doesnt respond to volume.
Title: More midi macros
Post by: seventhson on June 06, 2007, 17:40:37
Quote from: "pelya"
Quote from: "seventhson"
Not every synth/effect has the same midi message for the different parameters.
You're talking that MIDI message will be sent to 1-st effect plugin attached to channel, but not to VSTi or chained effect plugins?

Say you used the midi message that has been predefined as filter cutoff and you use it on different synths,on synth A (V-station) it might automate the cutoff but perhaps in synth B (Polysix) it might automate something totally different because the structure is different.
Also the thing about the midi message being send to the first plugin is a good point.

But to be honest i feel you guys are overcomplicating matters here.
Compare it to the request (which was made some time ago) where someone wanted to have more plugin slots,and you would've responded with "yeah i'd like to have more slots,but why not make it modular too,that'd really rock".
It's a good thought and might be really cool but to implement something like that will take so much more time then the easy fix of just adding more slots.
Reprogramming the entire internal structure vs. improving and adding to the existing structure.
Title: More midi macros
Post by: rewbs on June 06, 2007, 18:08:16
Quote from: "Snu"hmm, i think rewbs was working on a new way of doing macros... i cant remember any details, and i dont know how far he got tho.
I have a prototype where you can enter special commands (called 'fluctuators') instead of notes, where the volume column represents a plugin slot and the instrument column a parameter number (a bit like Pelya's suggestion but focussed on plugin params rather than generic MIDI messages).

The effect column is used to specify the type of fluctuation to apply to the parameter, e.g. just set it to a specific value, start a slide between 2 values over x rows, start an oscillation etc... Extra parameters can be set with #xx (oscillation has amplitude, frequency etc..). I also had a plan to have a fluctuator type that would map on to hand-drawn envelopes. Basically it is a beefed up rip-off of Psycle's tws/twk commands.

I did this against an old build a long time ago, and never committed it due to compatibility issues, and loads of unsolved questions, like what happens if you cut the 'volume' column from a series of these special commands (which actually represent plugin numbers) and paste it over normal notes, how to handle the pattern transforms like Pelya mentioned (cleanups, mod type conversion etc...).

I also got discouraged by the fact that the feature quickly became cryptic due to lack of flexibility in the pattern editor GUI and the internal file format.. so I decided the first step was to improve those, but never got around to it. :)

I'll try to merge at least a small part of it in as an experimental feature in the next release.

Edit: I also agree that:
- We need a short term solution for being able to automate more than 16 (note: not 15 ;) ) param positions.
- Mapping pattern effects to midi messages on a per instrument basis would be cool.
Title: More midi macros
Post by: seventhson on June 06, 2007, 18:54:45
I forgot there were 16  :lol:
The prototype solution sounds quite nice if i understand it correctly.
I had been thinking about something like that too,where one would have multiple slots per plugin,but i didn't know how to explain such a thing and how that should work inside the pattern so i thought it'd be better ask to get the short term fix first.
Thanks for the input guys.  :D
Title: More midi macros
Post by: LPChip on June 06, 2007, 20:16:28
Don't we have an Extend command effect for everything?

I believe its #..?

Can't we use that in combination with SFx? to select the plugin?

Eg. SF0 to SFF = 0 to 15.

Then #01 + SF0 to SFF = 1*16 + 0 to 15, resulting in numbers 16 to 31.

You could then have 256*16+16 different numbers.
Title: More midi macros
Post by: bvanoudtshoorn on June 08, 2007, 10:24:00
Wouldn't it be easier (from a composition point of view) to have "automation channels"? That is, special "channels" which do nothing but control a particular plug's (or plugs') params? Basically, in my idea you would specify the plug, then the param, then the value. Changing the value could be done by immediately setting it (eg =20), by sliding to it (eg /2f), by adding to or subtracting from it immediately (eg +08 or -0c), or by adding to or subtracting from it and sliding to the new value (eg <08 or >0c). Maybe this beautiful ascii-art diagram will help. =)

  +--------+--------------+
  | Chan 1 | Automation 1 |
  +--------+--------------+
01 |C-5 01..| 02 08 =20    |  // Plug 02 Param 08: set to 20
02 |... ....| 02 08 \2f    |  // Plug 02 Param 08: slide to 2f
03 |G-5 01..| 02 08 +04    |  // Plug 02 Param 08: add 4
04 |... ....| 02 08 -20    |  // Plug 02 Param 08: subtract 20
05 |E-5 01..| 04 02 +04    |  // Plug 04 Param 02: add 4
06 |... ....| 04 02 >20    |  // Plug 04 Param 02: add 20 and slide
07 |G-5 01..| 02 08 <30    |  // Plug 02 Param 08: subtract 30 and slide
Title: More midi macros
Post by: Saga Musix on June 08, 2007, 10:40:29
Interesting idea... :) but i guess it's a rather hard job to implement this :D
Title: More midi macros
Post by: Snu on June 09, 2007, 05:02:06
Quote from: "bvanoudtshoorn"Wouldn't it be easier (from a composition point of view) to have "automation channels"? That is, special "channels" which do nothing but control a particular plug's (or plugs') params? Basically, in my idea you would specify the plug, then the param, then the value. Changing the value could be done by immediately setting it (eg =20), by sliding to it (eg /2f), by adding to or subtracting from it immediately (eg +08 or -0c), or by adding to or subtracting from it and sliding to the new value (eg <08 or >0c). Maybe this beautiful ascii-art diagram will help. =)

  +--------+--------------+
  | Chan 1 | Automation 1 |
  +--------+--------------+
01 |C-5 01..| 02 08 =20    |  // Plug 02 Param 08: set to 20
02 |... ....| 02 08 \2f    |  // Plug 02 Param 08: slide to 2f
03 |G-5 01..| 02 08 +04    |  // Plug 02 Param 08: add 4
04 |... ....| 02 08 -20    |  // Plug 02 Param 08: subtract 20
05 |E-5 01..| 04 02 +04    |  // Plug 04 Param 02: add 4
06 |... ....| 04 02 >20    |  // Plug 04 Param 02: add 20 and slide
07 |G-5 01..| 02 08 <30    |  // Plug 02 Param 08: subtract 30 and slide

hmm, so basically, what buzz does?
personally, i dont like that method as much, makes the tracks very spread out.
and and in my opinion it would be rather sloppy/redundant to combine that method and the current one.
Title: More midi macros
Post by: bvanoudtshoorn on June 13, 2007, 10:13:01
Well, ideally, it would be the only system - a complete replacement for the current system. Note that I don't anticipate each channel having an automation channel - there could be an arbitrary number of each, arranged in an arbitrary fashion. I know that my example doesn't really show that very well...

Another idea that I had was to have two viewing modes for this "automation channel" - the one that I outlined above, and another, graphical one. Imagine the effect visualiser thinggy over on its side. Because there can be multiple plugs being manipulated, each would have a different colour for its lines. For the sake of clarity, the node boxes could be toggled on and off, and the ones that you're not editing could be semi-transparent. Using a graphical representation like this would make it a lot easier to see at a glance what's happening to the various params you're manipulating during the course of a pattern.

With this graphical mode, you could theoretically resize its width to any arbitrary size (I'm using "arbitrary" a lot, aren't I? =P) That way, you could still see what's happening without spacing out your tracks much. And you could be doing everything in just one channel, over on the left or the right or wherever. I know that you could just pull up the effect visualiser thinggy on the other system proposed, but that has problems when you're manipulating multiple plug params within one channel (for example, changing both the filter cutoff and peak).

As another idea, maybe this "graphical" mode could actually collapse multiple automation channels into one graphical view. That way, you could see all of the automation in just one channel, again stuck over to the side or whatever. That could actually save space, because if you're using exclusively vst's (which I very nearly do), you could just hide the effects column (which I do, most of the time...)
Title: More midi macros
Post by: maleek on July 19, 2007, 20:22:44
I think bvanoudtshoorn outlines exactly what I miss the most from OMPT. I would definetly want a more sophisticated automation thingy in Modplug. (Renoise has one that seems very capable). Personally I think it is my most desired areas of change.

I would also like to say that Rewbs suggestion is a step in the right direction! I hope to see some kind of change in the future :)
Title: More midi macros
Post by: psishock on August 20, 2008, 11:36:25
I just  like to point out, that with one instance of Xlutop Chainer you can control 16 different parameters (even simultaneity) of one VST instrument in OMPT. If you load another instance (to different instrument slot example), whole different parameters can be set for those (1-16) slots and also controled one by one or simultaneity. That should be powerful enough to create about... hmmm....  everything that is automation related.
Title: More midi macros
Post by: Nahkranoth on August 20, 2008, 13:57:00
Can you be more specific or explain exactly how to automate some VST params through xlutop? I tried to figure this out but somehow dumped this idea. It seems in xlutop you can only automate chainer's dry|wet and pan, and maybe some other params.

For example I want to automate amp release in Synth1, and I have it hosted in Chainer. Please explain step by step what I need to do :oops:
(I don't want to use MIDI CC for that matter)
Title: More midi macros
Post by: bvanoudtshoorn on August 20, 2008, 14:28:42
You have to go to the plugin's secondary editor (click the "2" button), right-click on a param, and assign it a controller.

It's not possible to use xlutop to generate these control messages - I think that a plugin that could generate them would work, though. :/
Title: More midi macros
Post by: psishock on August 20, 2008, 16:58:33
I can write a small tutorial for people who are not familiar with it:

1. Step is naturaly, to load the Xlutop Chainer to an FX slot, and assign an instrument to it. After that, open the Chainer and load your VSTi to it (Synth1 for the example).
Then right click to the plugin's secondary editor (as bvanoudtshoorn already described):
(http://img166.imageshack.us/img166/3374/tut1so4.jpg) (http://imageshack.us)

So the parameter menu opens and you can scroll trough and modify every Synth1 parameter.
If you right-click to any parameter, you can assign it to Chainer's own MidiCC from 0-127 (after right-click, go Controller and chose your desired "slot", my choice will be "0" for this example):
(http://img118.imageshack.us/img118/5039/tut2jt3.jpg) (http://imageshack.us)

Okay so far, now lets open the Zxx Macros panel in "Patterns" tab:
(http://img356.imageshack.us/img356/2130/tut3lx8.jpg) (http://imageshack.us)

Now lets assign our Chainer plugin from FX1 "vst plugin slot" to SF0 "Midi Macro slot" and choose that CC we'd like to automate with SF0 command. (i will choose the CC0, 'cause i've already set that up above):
(http://img356.imageshack.us/img356/6091/tut4nl6.jpg) (http://imageshack.us)

all right! we're ready, now you can automate the desired Synth1 parameter through Chainer, with Zxx (for instant automations) or with \xx (for nice and smooth slides):
(http://img147.imageshack.us/img147/2669/tut5jc1.jpg) (http://imageshack.us)

additionally, with Chainer and OMPT you can control 16 (SF0-SFF) different MidiCC-s of a single VST(i), even simultaneity (choose any 16 channels in Patterns tab and use SFx and Zxx or \xx on them as desired), and that is just for one instance (instrument slot) of Chainer. If you need to use a second, totaly different VSTi, or the same but you desire different parameter control setup, you can open a second Chainer plugin to the second instrument slot, load up in it your desired VST(i) and set up your control parameters randomly to Chainer MidiCC (like i demonstrated on the second picture), again up to 16 (0-15) (without modifying the Zxx Macros Configuration), so in the end your Zxx Configuration will look like about this:
(http://img387.imageshack.us/img387/2807/tut7gy1.jpg) (http://imageshack.us)

One more good thing, you can assign MORE VST(i) parameters to SINGLE Chainer MidiCC slot, so you can automate as many parameters as you like with one SFx and Zxx or \xx command (example i did set three Synth1 parameters to Chainer's MidiCC "7", and i can now control all of them, in my case, with a single SF7 and Zxx or \xx command on a single channel).
(http://img147.imageshack.us/img147/87/tut6kw9.jpg) (http://imageshack.us)
The 16 SFx Macro slot "limitation" is not an issue with Chainer anymore, using 16 parameters at a time (or more if you set more VST(i) parameters to a single Chainer MidiCC) of a single VST(i) should be more than enough for every musician, and that's just for one instance, open up another one and set parameters differenty, you will get whole different of settings to control just with a simple instrument change (without modifying the OMPT's Zxx Macro Configuration again).

Hope this helps!
Title: More midi macros
Post by: älskling on August 20, 2008, 19:50:01
Quote from: "psishock"I can write a small tutorial for people who are not familiar with it:
You should add this to the WIKI
Title: More midi macros
Post by: psishock on August 20, 2008, 21:31:30
okay, i've made a bit mess on the wiki since i had no idea how to use it properly, but i've cleaned it (everything, as far as i know ;) ), and did set the tutorial up there after figuring out some stuff. ^_^
Title: More midi macros
Post by: Sam_Zen on August 20, 2008, 23:26:25
Or the admin could decide to move this thread to the techdoc department.
Title: More midi macros
Post by: Nahkranoth on August 21, 2008, 06:53:10
Thanks, psishock! UR tEh MaN :D
Title: More midi macros
Post by: psishock on August 21, 2008, 11:04:15
Ahh, it's ok Nahkranoth, everybody was very friendly and helpful in the forums when i've got any problem or question. I happily did help in return. :wink:
Title: More midi macros
Post by: LPChip on August 22, 2008, 07:36:56
Quote from: "Sam_Zen"Or the admin could decide to move this thread to the techdoc department.
I do not want to move this out of this place, but instead, I'm making a new topic, quoting the post in Tech Docs. :)

Thanks Psishock, for an excellent post! :)
Title: More midi macros
Post by: Sam_Zen on August 22, 2008, 23:07:14
Nice, LPChip. That's even better.
Title: More midi macros
Post by: Exhale on February 19, 2009, 10:41:32
Hi, I'm new here, but I have been working with modplug since changinig from Impulse 1999.  Anyways, I just want to confirm that I think that modplug could do with more macro's, ie:
+1

but I don't think you need to change the present system much to get there.  I like the present system because of it's simplicity so I was thinking instead of doing anything complicated just change the SFx's to something unused like maybe [xx or ;xx etc which will give us a heck of a lot more then 15 options.
Title: More midi macros
Post by: Saga Musix on February 19, 2009, 12:25:21
As long as you only need macros to control plugin parameters, there's already another solution ("control parameter effects") coming in one of the next major releases.