Jump to content

Why can't I change the incoming MIDI channel


Palimpsest9

Recommended Posts

Went through my settings, reinstalled Logic, and now I'm stuck. I needed to convert some of my incoming notes to another midi channel, for example using some MIDI Fx such as Scripter. (After I confirmed on the Scripter subforum that my javascript code is written as it should.) However, the midi channel for incoming notes is always hardwired to my USB instrument. (It can only ever be changed by selecting the channel using the physical buttons on the piano keyboard or drumpad.) I've created a new project each time.

 

(There is no midi thru object/cabling in my project.)

Link to comment
Share on other sites

If you wish to change (on the fly, in realtime) the MIDI channel of the incoming notes that will be recorded (in a region/track), you could use a Transformer object in the Environment.

 

That Transformer object has to be (serially) cabled (somewhere) between the Physical Input and the Sequencer input objects.

 

The Transformer object's Channel operation parameter also has to be set accordingly (changed from Thru to Fix=n, where "n" is the MIDI channel # you wish the note events to be incoming.

Link to comment
Share on other sites

If you wish to change (on the fly, in realtime) the MIDI channel of the incoming notes that will be recorded (in a region/track), you could use a Transformer object in the Environment.

 

That Transformer object has to be (serially) cabled (somewhere) between the Physical Input and the Sequencer input objects.

 

The Transformer object's Channel operation parameter also has to be set accordingly (changed from Thru to Fix=n, where "n" is the MIDI channel # you wish the note events to be incoming.

 

Yes, I can do everything above. So the problem isn't changing the channel of notes that go into the sequencer. All of this can be done effortlessly with cabling. What I can't do is change the channel from within the channel strip, with a MIDI FX such as Scripter.

 

In Scripter, I inserted a script which is supposed to change the channel for some notes. (My goal was to redirect specific pitches to specific channels, similarly to the "Mapped Instrument" object in Environment). According to the topmost thread in the scripting subforum, my script is correct and I should see the channel change. However, I'm not seeing any change in channel and it makes no difference whether I activate Scripter or not.

Link to comment
Share on other sites

You will not "see" the changed midi channel, the scripter modifies the midi after the fact, i.e. the midi in your region (or the midi you record) will look the same as always. A midi fx sits between the track and the instrument. Hope that helps...

I neither see nor hear it. After adding the script, the resulting sound always corresponds to the midi channel indicated in the monitor. Creating a multi-timbral instrument changes nothing. (Someone told me to select "omni" for every sound, but that configuration just play every instrument regardless of Scripter.)

Link to comment
Share on other sites

I neither see (...)

How do you expect to see it?

 

JakobP's wording, not mine. I suppose he meant that when you use a transformer object in the environment to alter the channel of incoming notes, monitoring (as well as the event list) displays a different channel than if you hadn't altered it. As opposed to Scripter, which doesn't affect the channel number displayed in monitoring, although JakobP implies you should hear the software instrument playing a different channel. (Still, I don't hear anything happening. I can alter the channel with transformer, but not with Scripter using the script we talked about in the topmost thread in the Scripts subforum.)

Link to comment
Share on other sites

According to Dewdman42 my Scripter code is all good, and should alter the channel for incoming notes, as I expected to see/hear. But nothing happens.

 

doesn't matter what your USB drummed is hard-wired to. Scripter intercepts all midi right before it hits the instrument.. unless you have some smart controls in action or something like that doing more then you realize. The Scripter script will absolutely change any midi event to whatever you have in the script.

 

So there is something about your setup you are not aware about or providing information here about now.

Link to comment
Share on other sites

Yes the script is fine.

 

Do you understand how the channel comes AFTER the sequencer and region data?

 

Well I did the following cabling to try to show what I understand:

Physical input --> Monitor --> Transformer --> Monitor --> Sequencer

--------------------------------------> region data (/w Scripter)

 

It's kinda implicit here that you can "monitor" (ie. "see") the channel change done by the Transformer, but not the channel change done by Scripter. But according to what you and JakobP told me, I should be hearing the change, using a multi-timbral screen, (I am not using "omni" anywhere, and I haven't used the "MIDI thru" tool)

Link to comment
Share on other sites

 

JakobP's wording, not mine.

I believe Jakob was referring to your earlier words:

 

However, I'm not seeing any change in channel

 

... hence my question.

 

Ah, sorry man, you're right! I meant here, that after pasting in the Scripter channel-changing-code into the software instrument's channel strip, the channel remained unchanged, ie. everywhere I looked (event list, the LCD display as well as monitoring), the channel was still the same as if I had not applied any Scripter. (My interpretation was that JakobP would hear the change, even if it didn't visibly show up as a different channel number.)

Edited by Palimpsest9
Link to comment
Share on other sites

Well I did the following cabling to try to show what I understand:

Physical input --> Monitor --> Transformer --> Monitor --> Sequencer
--------------------------------------> region data (/w Scripter)

 

The above is not how LogicPro is architected. The signal flow in LogicPro works like this:

 

Physical Input --> Sequencer -->Region Data -->Mixer Channel Strip ==> ( Midifx(Scripter) --> AU inst )

Link to comment
Share on other sites

Ah, sorry man, you're right! I meant here, that after pasting in the Scripter channel-changing-code into the software instrument's channel strip, the channel remained unchanged, ie. everywhere I looked (event list, the LCD display as well as monitoring), the channel was still the same as if I had not applied any Scripter.

Ok so as Dewdman explained, that result is expected. Instead you could use an External Instrument and Snoize's MIDI Monitor to monitor the MIDI Channel of your events and see whether or not the script is working as expected.

Link to comment
Share on other sites

yep, and/or I have a freely available midi monitor script for Scripter, which you can put in the last midifx slot and it will show the midi that is being passed to the instrument. This Midi Monitor script also displays some information you can't see in the external monitor such as articulationID, beat position, etc..

 

https://gitlab.com/dewdman42/midimonitorlpx

Link to comment
Share on other sites

yep, and/or I have a freely available midi monitor script for Scripter, which you can put in the last midifx slot and it will show the midi that is being passed to the instrument. This Midi Monitor script also displays some information you can't see in the external monitor such as articulationID, beat position, etc..

That's awesome! Even better than my solution. Thanks Dewdman. :D

Link to comment
Share on other sites

If you want to record the modified channels into the region you have to do it with transformer. Or you can use MidiFX Freeze (3rd party plugin), to capture the output from midifx into region data.

 

I looked back at my post history. All of this started when I made a thread asking "Can I use drummer with any plugin". I realised that for Drummer to feed the 8 different sounds generated by my plugin, I would have to distribute different pitches (fed by Drummer) to different channels (which controlled my plugin). So this lead to David Nahmani suggesting that I take a look at Scripter to perform this task. So then I got things badly mixed up and mistakenly believed that I could also use Scripter to use my plugin together with my new USB drumpad !

 

The truth is I knew nothing about how to make my USB drumpad and my plugin to work together. Fortunately Dewdman42 you suggested Drum Machine Designer, which I'll next be looking into (instead of Snoize).

 

Again, apologies!

Link to comment
Share on other sites

DMD is the way to go for you I think. You don't have to use different midi channels. Just assign each instance of plogue plugin to each pad in DMD, configure the input and output pitches and you should be good to go with any midi controller.

 

I think this should all work the same regardless of whether you are generating from Drummer or from USB drum pads...but with USB drum pads the midi originates outside LogicPro, comes through the environment before hitting the sequencer (where you can record the source midi (with original midi channel 10) to a region. With Drummer, the midi is generated at the sequencer point in signal flow (where the region is)... Either one feeds to Scripter and then on to your instrument of choice.

 

It can basically be made to work as David suggested, using Scripter....but you will not see the results as changes in the region, you will only see the midi channel changes dynamically as it is playing before it hits the instrument.

 

But truly, DMD is what you should be using for this task. You can use Drummer to control DMD also..and/or USB drum pad.

Link to comment
Share on other sites

it should work either way.

 

the mixup I think you're having is that you must be expecting to observe the changed midi channel in the region itself and that is too early in the midi signal chain to see Scripter changes. You will only see the results of Scripter right before it hits the instrument inside the mixer strip. The region data is WAY before the entire mixer strip in midi signal flow.

 

Using drummer or your USB pad should be the same either way...except like I said...your USB drum pad can go through the environment first before hitting the region area (sequencer), the drummer data is in the sequencer itself.

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