Author Topic: More midi macros  (Read 14228 times)

Offline seventhson

  • Inspired artist
  • **
  • Posts: 88
More midi macros
« 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.

Offline pelya

  • Workaholic artist
  • ***
  • Posts: 108
Re: More midi macros
« Reply #1 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
Code: [Select]

^^  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

Offline LPChip

  • Administrator
  • *****
  • Posts: 5,005
    • http://lpchip.nl
  • Operating System: Windows 10 Pro N (x64bit)
More midi macros
« Reply #2 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.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Offline seventhson

  • Inspired artist
  • **
  • Posts: 88
More midi macros
« Reply #3 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.

Offline pelya

  • Workaholic artist
  • ***
  • Posts: 108
More midi macros
« Reply #4 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:
Code: [Select]

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.

Offline LPChip

  • Administrator
  • *****
  • Posts: 5,005
    • http://lpchip.nl
  • Operating System: Windows 10 Pro N (x64bit)
More midi macros
« Reply #5 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.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Offline Snu

  • Workaholic artist
  • ***
  • Posts: 320
  • Gender: Male
    • http://www.snuq.com
  • Operating System: Windows 7 64bit
More midi macros
« Reply #6 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.

Offline seventhson

  • Inspired artist
  • **
  • Posts: 88
More midi macros
« Reply #7 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.

Offline rewbs

  • OpenMPT Developers
  • *****
  • Posts: 578
More midi macros
« Reply #8 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.

Offline seventhson

  • Inspired artist
  • **
  • Posts: 88
More midi macros
« Reply #9 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

Offline LPChip

  • Administrator
  • *****
  • Posts: 5,005
    • http://lpchip.nl
  • Operating System: Windows 10 Pro N (x64bit)
More midi macros
« Reply #10 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.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Offline bvanoudtshoorn

  • Extreme artist
  • *****
  • Posts: 1,053
  • Gender: Male
    • Barryvan
More midi macros
« Reply #11 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. =)

Code: [Select]
  +--------+--------------+
   | 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

Offline Saga Musix

  • OpenMPT Developers
  • *****
  • Posts: 6,512
  • aka Jojo
    • Download music, samples, VST plugins: Saga Musix Website
  • Operating System: Windows 7 x64
More midi macros
« Reply #12 on: June 08, 2007, 10:40:29 »
Interesting idea... :) but i guess it's a rather hard job to implement this :D
ยป No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Offline Snu

  • Workaholic artist
  • ***
  • Posts: 320
  • Gender: Male
    • http://www.snuq.com
  • Operating System: Windows 7 64bit
More midi macros
« Reply #13 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. =)

Code: [Select]
  +--------+--------------+
   | 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.

Offline bvanoudtshoorn

  • Extreme artist
  • *****
  • Posts: 1,053
  • Gender: Male
    • Barryvan
More midi macros
« Reply #14 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...)