Jump to content

Quick Guide to Logic's Meta Events


David Nahmani

Recommended Posts

You're welcome!

 

And "doable" is totally doable LOL! :mrgreen:

 

It's often the case that when a fader event is generated by moving a plugin control (or in this case, a fader event generated in response to BPM detection) that the actual value of the fader event doesn't match the numerical value we see displayed in the GUI of the plugin. This is a perfect example, where 124 (GUI value) = 56 (fader event value).

Link to comment
Share on other sites

Getting values out of the channel strip outlet is not very accurate. The difference between values on its output is 2.2BPM, so you could be anywhere up to 4.4BPM off.

 

If you want to get accurate values out for use in other software, I have definitely done this in the past using the HExler control surface plugin and a mDNS broadcaster to spoof the presence of a TouchOSC iPad living on the same computer. It worked well but definitely fell under the "hack" category. I can try and re-figure out how I did it if you like.

 

If you need the values back in the Environment you could pipe it back in as Pitch bend or 14 bit CC with something external (Reaktor? Bidule? Processing?) to get rid of the 0-127 granularity.

Link to comment
Share on other sites

Parameter values that appear at the output of a channel strip in the form of fader events are accurate. They must be, and really can't be anything else. But that's not to say that there's always a 1:1 correlation between a plugin parameter's displayed value and the actual value of a fader event generated as a result of moving a parameter.

 

The OP didn't say what his application was for this, but what I posted above shows that values from the BPM counter can be translated to the outside world and used to generate other kinds of events, or, perhaps trigger some kind of other process. It wouldn't be hard right within the environment to create a process which takes into account the values of both types of fader events generated by the BPM counter before triggering some kind of action (just a basic AND process).

Link to comment
Share on other sites

Well, actually the correlation is 2.2:1 and that's fine, 'cause I can multiply the output of the effect by 2.2 but suddendly the effect doesn't produce any value out of the channel strip and I can't figure out why...

Btw, once I restore the channel strip output, I'll transform it in a meta event to control the host tempo and have all my effects and arpeggiators in sync with the host without having to build a patch for every song!!!

Happy me!

Thank you and good night!

mV

Link to comment
Share on other sites

Maybe I should have said the Fader message is an *approximation* of the BPM parameter value. The BPM parameter has 2800 steps, the Fader message from the channel strip has 127.

 

For instance, 123.5 BPM and 125.6 BPM both give a value of 56. If OP is using the value for timing something, as one might suspect, it might be too rough an approximation to be useful.

Link to comment
Share on other sites

Ah. I think what we're looking at here is a case where the BPM Counter generates a 14-bit message, as fastfourier suggested. But Logic is only showing us the MSB (the fader 2 0 x messages) and hides the LSB from us. This wouldn't be the first time I've seen this for plugin parameters that have more than 127 steps.

 

So I would submit to you that the fader 2 0 x messages are indeed accurate, but yes, of limited usefulness if someone's trying to hone in on a specific tempo to then trigger some other event.

 

When I first looked at this I assumed that the other fader message generated by the BPM counter -- fader 2 1 x messages -- were an LSB value. But now that I'm looking at the behavior more closely, the values of those messages appear to have the following meanings:

 

0 = tempo calculations stopped (no input)

1 = calculating the tempo (receiving input)

2 = tempo calculation has "settled"

 

So despite my initial hunch about what those messages were and how they could be leveraged, they're of no usefulness towards figuring out a tempo.

Link to comment
Share on other sites

That would make sense Ski. 2800/128=22ish which is the aforementioned 2.2 BPM in 0.1 BPM increments. It would be really nice if they would expose the full value,...

 

I believe the other messages refer to the "State" parameter of the plugin ("No Signal" / "Analyzing" / "Continuous").

 

There is also a "Confidence" parameter which seems to vary wildly, even with the simplest 4/4 steady tempo input. Doesn't seem like the greatest tempo detector in the world! OP you might be better off piping the audio out to a more accurate app via Soundflower, or maybe use MIDI clock if the tempo is the same as the Logic arrange?

Link to comment
Share on other sites

  • 2 months later...

i know it's been a while but could you post the attachment to this but updated - i have tried but cant open this on the new versions of logic - cheers

 

:)

 

Here's the concept behind mapping in a transformer. First, determine how the map is going to work for you. There are two operations: writing, and reading. Let's talk about writing first.

 

The easiest approach I've found is to have the map position equate to the parameter number. Then you set the value for that position to be the value for the parameter. The result: the map position and the value of that position represent the data for a single parameter.

 

For example, say you have an EQ and you want to store a static value for the low cut/shelf band. First you have to find out what parameter that is in the EQ. Without going into the procedure for how to determine this, I can tell you that if the EQ is in the first insert slot of a channel strip, this parameter will generate "fader" events with the following form:

 

fader 2, 5, x        

• 2 represents the "MIDI Channel" of the fader event (when you adjust a parameter for an audio FX in insert slot 1, it generates fader events on channel 2)

• 5 represents the parameter number of the low cut/shelf band in a channel EQ

• x represents the parameter value, which will typically range from 0 - 127

 

Then you need some environment programming to read the output of the channel strip, take the fader 2/5/x event and store "x" in map position 5. Just move that parameter until it reaches the value you want to store. You can use a cable switcher to allow or prevent data from reaching this little "memory" you're creating in the transformer map.

 

When it comes time to recalling that data, you'd need to create an event in the environment which would be processed by the transformer to do two things:

 

a) read out the value of map position 5, and...

b) form a fader 2, 5, x message (x = the value stored in map position 5) which you'd then send back to the channel strip.

 

Storing data in a map is demonstrated in the attached file. Open the transformer called "map" and then play the song. You'll see the value of that EQ band being written to the map dynamically. (If you don't see the value changing, click on the background of the environment so that the transformer window no longer has focus). But of course, the idea would be to store a static value in there for later recall.

 

Reading the data back out is a more complicated scenario which I just don't have time to get into. (sowwy)

 

To your other question about selecting a track and having a cable switcher see which track is selected, no, that's not possible.

Link to comment
Share on other sites

  • 3 years later...
Here's the concept behind mapping in a transformer...

Now, THIS is the explanation I’ve been hoping to find, and you’re probably the best person I know of to explain it.

 

I’m sure you’re continually bombarded by tech questions from strangers who’ve obviously not bothered to even try their own research. Funny thing, if one looked up all of your posts in LogicProHelp alone, almost anything anyone would ever need to know about Logic is addressed somewhere. Maybe that could be your stock reply to such intrusions. ;-)

 

Not patronizing you, just telling it how I see it.

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