Jump to content

Trigger Finger: another way to control plug-ins


Recommended Posts

Well, I eventually built a cascade of transformers that convert midi control events into Logic fader events. Each transformer is set up as a track automation splitter to catch a specific CC message and send fader events to an audio plug-in instead.

 

[figure 1: a track automation splitter]

 

Here, a foot controller event is mapped to the resonance control of the ESP plug. The unintercepted midi events are passed unchanged to the recording & through object, i.e. to the selected track. Using the Trigger Finger default assignments, I mapped the ESP's 9 most useful parameters [filter, envelope, drive, chorus] to convenient faders and rotary pots, leaving the rest for volume, pan and modulation.

 

[figure 2: cascading splitters]

 

Logic internal fader events can be used in real time, and record directly to track automation. I made this into a macro so it can easily be copied [or imported] from the original song file environment. The macro contains two external objects references: the audio instrument and the recording & through object. The advantage is twofold:

 

• To use such a cascade, just substitute the recording & through object (found on the click & ports layer in the environment) for the macro.

 

• To control many instruments, simply plug many macros in parallel — you'll need to unpack the macros and change the references to different audio instruments. Oh, and Logic doesn't frown when there are many recording & through objects: they're all references to a unique internal object.

 

What I learned — that isn't documented:

 

• All plug-ins — and audio instruments, including GB's instruments, are no exceptions — number their parameters by order of appearance in the controls view of the instrument interface. This numbering is zero-based: the first parameter could theoretically be controlled by a CC#64 event and is actually mapped to fader 0 — for instance, the mono/poly parameter of the EXS sampler is assigned CC#71 [see the plug-in reference, page 571] because it's the 8th parameter, and therefore is internally mapped to fader 7.

 

• No plug-in uses the same layout for its parameters, so there's no way to build a general controller, but it takes only a few minutes to remap a handful of splitters and adapt them to the most useful parameters.

 

• Audio instruments and plug-ins only receive fader events from internal channel 2, so the transformer must be set up to fix this whatever the midi channel the data came from.

 

• Audio instruments also listen to internal channel 1 — the channel strip channel — for standard control events like modulation, pitch-bend, and the like... There's no need to convert these, since they can be recorded along with the rest of the midi data, but it's still possible: just remember they must be assigned to channel 1.

 

• Splitters can be made to react solely to a given midi channel: using a versatile control surface like the Trigger Finger, one could build a set of 16 presets, each dedicated to controlling a specific plug-in. This would mean live performance with something like 64 faders and 128 pots at your disposal, at the flip of a button... Not counting the 16 x 16 pads, of course.

split ES P (m).zip

a song file that includes the macro

 

On the "click & ports" layer, you'll see the fully connected [operational] macro. There are also a few copies on the "splitters" layer, along with the unpacked macro.

 

Remember this was built for a Trigga Finga: fi

211103014_FT_EsP_faders_macro.png.a6962f41a23d3aeabbc8d4ecc1e476ac.png

cascading splitters: inside the macro

xformer.png.07c58007bcea6ad04fea07df73f9748b.png

a track automation splitter

Link to comment
Share on other sites

Unfortunately, the diagrams are out of order... and my comment to the attached zip file has been truncated. What I intended to write is:

 

Remember this was built for a Trigga Finga: filter + resonance controls are the two rightmost sliders, while controls C5 to C8 are for ADSR. The remaining 3 must be for amount of envelope modulation to filter and output level, plus the overdrive or chorus...

 

The two leftmost faders aren't involved in this, since the channel strip understands them as is: volume and modulation. For the same reason, I also left control 1 untouched: it already controls the panning of the track.

 

Note: this subject was discussed before at http://discussions.apple.com/thread.jspa?messageID=2333690

Link to comment
Share on other sites

I now realize I made a mistake and defined CC#19 twice... Which makes the second definition redundant — and useless by design, since a midi event, once catched by a splitter, is sent to the plug on the top cable and thus never reaches the remaining processors in the cascade.

 

PS: what does it mean that a thread has been moved...?

Edited by RockBottom
Link to comment
Share on other sites

Hi RockBottom, I moved this thread to the "Template" file sharing section so it doesn't get lost in the "Logic Pro Forum" after a few short days. I'm sure a lot of people will want to download this environment!

 

If you want to redesign / fix and reupload, you can recreate a new thread and I will delete that one.

Link to comment
Share on other sites

Hi Rockbottom,

Thanks for sharing your amazing work. What you've done suggests that the Trigger Finger is the most advanced current Midi controller. Lot of VSL users are trying it out to control the new VSL (Vienna Symphonic Library) Virtual Instrument. How would you program the Trigger Finger to control the VSL VI?

I know you're busy- but you are really on the frontier.

J Marti

Link to comment
Share on other sites

Rockbottom,

The VSL VI is Vienna Symphonic Library"s new Virtual Instrument. It uses its own server engine with many advancced features--see http://WWW.VSL.CO.AT/en-us/69/128/33.vsl. It's very expensive ($4000) but I think the EXS24 can be programmed to do what it does. The VSL VI has 144 real-time modulations plus it automatically senses how fast your playing and instantly loads different sample sets: if your playing slow, slow sample sets; if you playing fast, fast sample sets. It also automatically purges RAM you've loaded but are not using.

 

What you've done with Trigga Finga is revolutionary. If you could program it to control the VSL VI or the the EXS24' VSL samples, I'd buy from you your program.

Keep up the good work!

J Marti

Link to comment
Share on other sites

> program it to control the VSL VI or the the EXS24' VSL samples

 

I took a tour on VSL web site to get acquainted to the Vienna Instruments, but I'm not sure I understand how you expect me to contribute: while some aspects of what they call performance detection could be [to a certain extent] emulated with transformer tricks, it's certainly not the most efficient [and straightforward] way of doing it... And if it's already done in the plug-in itself, what else do you need?

Link to comment
Share on other sites

RockBotton,

I spent 8 hours yesterday rewatching all the VSL VI video tutorials at the VSL site. I'm writing some macros now, also working with Cyril's post in this section: Logic Pro _ Staccato and Legato note using Orchestral libraries.pdf. I want to use TrigaFinga to make the EXS24 emulate the VSL VI. I'll post my results here, so stay tuned. If anybody can do this, yo da man!

Thanx

J Marti

Link to comment
Share on other sites

J Marti, isn't Cyril's pdf describing the solution to what you're trying to do? Which is, if I understand you correctly, to switch sample sets depending on the length of the notes in your MIDI Region.

 

If you want something more/different than that, then please describe and I'm sure we can help.

Link to comment
Share on other sites

David, Rockbottom,

You're absolutely right: Cyril'sPdf may work like VSL VI's speed control--I'm testing it now.

 

But there are other VSL VI features I want to program the EXS24 to have:

RAM purge

Universal mode

Kai's Atriculation tool

A/B switch for octave runs up (A); octave runs down (B)

144 cell modulation matrix

39 keyswitches

I'll post back-this forum is great! Anyone who's interested in maxing out the potential of the EXS24 with TriggaFinga should watch the 8 videos at the VSL site.

J Marti

Link to comment
Share on other sites

I only saw some of the video, I'll watch more when I have a little more time. From what I saw, they assigned the mod wheel to switch between sounds. If I'm understanding right you want to try to assign this as a function to the Trigger Finger (I'm thinking about my monome but same principle). Actually the monome seems great for this because of the visual cues. By example a row of pads could control one instrument, say a violin. Each pad in that row being a different articulation. The nice thing about the monome is the selected articulation could be illuminated on the pad. If you save a row for switching between instruments you've got a eight instruments at your fingertips.

 

Now here's a question: Would you use multiple ESX Instruments? I'm actually thinking about this for MSI. You'd have to program the instrument pads to change which track is selected, and then the articulation pads to change between midi channels.

 

I'll be doing a lot of setup this evening. Will let you know my findings.

Link to comment
Share on other sites

Sondad,

We have to encourage RockBottom (because he is the master) to program TriggaFinger to emulate the Vienna Symphonic Library (VSL) Virtual Instrument (VI) using the EXS24. RockBottom says TriggaFinger can control 16 plug-ins simultaenously. I'm working on this and will post again soon. There a lot of VSL users on the VSL forum that want to use Trigger Finger to control their VSL VI--I thought Rock could start a cottage industry selling his programming ideas.

 

I use only EXS24. I load 16 first violin articulations into one EXS24 stereo instrument. I don't use multi instruments. Similarly, I load 16 2nd violins into another (single instance) stereo EXS24 instrument. I don't know about MSL--be interested in what you come up with. There are many reasons I only use EXS24--will post why. But today I spent 4 hours looking at the new Kontakt 2 scripts which blow the VSL VI away Go to the V. I. Control forum, check out

 

http://forum.vsl.co.at/viewtopic.php?t=2534&postdays=0&postorder=asc&start=60

JMarti

Link to comment
Share on other sites

first is the j in marti for jose?

 

I'd like to hear your pro exs argument.

 

With MSI each plugin (fader instance) can have....grrrr i'm forgetting I think 64 instruments (sample sets) loaded on different midi channels. Now I'm not sure how Rockbottom is coming at the 16 instruments control. Is that one per pad or per midi channel? Ideally I'd like to set a row of pads to the articulations for one plugin. Selecting between rows changes instruments. Perhaps this can be extended using differnt midi channels or are there pad banks on the trigger finger(don't have one myself using the monome for this).

 

My only wonder is response time between plugins. I mean when I just click on an instrument to select it there is a fraction of a second lag time. I wonder whether this would be true of instruments in a plugin as well. I'm actually working on another monster in my setup right now, but once I get that settled I'll probably set my hands at trying to tackle a solution for this.

Link to comment
Share on other sites

I'm not sure how Rockbottom is coming at the 16 instruments control.

I wrote:

Splitters can be made to react solely to a given midi channel: using a versatile control surface like the Trigger Finger, one could build a set of 16 presets, each dedicated to controlling a specific plug-in. This would mean live performance with something like 64 faders and 128 pots at your disposal, at the flip of a button... Not counting the 16 x 16 pads, of course.

It looks like this wouldn't be true when using standard control surface assignments, but it works with splitters...

Link to comment
Share on other sites

J Marti, I don't know the trigger finger, but you should be able to do that with any hardware MIDI controller.

 

Basically there are three ways to assign a controller's knobs to any parameter (channel strip volume, pan, mute, send level, plug-in parameters):

 

• Cabling in the environment (each song has its own environment)

Windows > Environment

[default KC: Command-8]

 

• MIDI Key Commands (global)

Logic Pro > Preferences... > Key Commands...

[default KC: Option-K]

 

• Controller Assignments Quick Guide (global)

Logic Pro > Preferences... > Control Surfaces... > Controller Assignments...

 

The quickest way is the Controller Assignments. The most flexible way is the Environment.

 

So you can assign as many channel strips' volume faders as you have have knobs and/or faders on your Trigger Finger.

Link to comment
Share on other sites

  • 3 weeks later...

"• Audio instruments and plug-ins only receive fader events from internal channel 2, so the transformer must be set up to fix this whatever the midi channel the data came from. "

 

Midi ch2 is correct for Instruments.

Subsequent inserts on an instrument object are sequentially upwards:

Plugin in Insert1 = midi ch3, Insert2 = ch4 etc etc.

 

On non instrument objects (Bus Objects/Audio Objects etc) , midi ch2 is for Insert1, ch3 Insert2 etc etc.

 

I have a text document of Logic Plugin parameter numbers and min/max amount available here if you want to save time from moving each parameter to find out the number

 

http://homepage.mac.com/leighhunt/news.html

 

Have fun there all

leigh

Link to comment
Share on other sites

  • 8 months later...
  • 10 months later...

This thread is a bit over my head, but originally you wrote:

 

Well, I eventually built a cascade of transformers that convert midi control events into Logic fader events. Each transformer is set up as a track automation splitter to catch a specific CC message and send fader events to an audio plug-in instead.

 

Would it be possible to set up such a cascade which would convert MIDI notes into Logic fader events? In other words, to catch certain notes and send them to the selected track but at the same time to send fader events to that track's plug-in?

Link to comment
Share on other sites

I've been trying to figure out a way to have plug-in parameters change automatically, in real-time, depending on conditions such as register, pitch class, and velocity - while playing very complex post-serialist music by composers such as Stockhausen and Babbitt. It would not be possible to manually make these changes using a control surface because of the physical nature of the performance itself, and because every note would call for a different combination of parameters. Ideally, each member of a six-note chord would automatically set it's own unique parameters in real-time.

 

I'm not sure if this is even possible given processor strain. But I'd be very grateful to know whether I could wire the parameters discussed in this thread to change automatically, depending on the midi note entered.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...