A technical support community for Apple Logic Pro users.

 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

SCRIPT: Channelizer

Thu Jul 18, 2019 8:06 pm

Channelizer Script

channelizers-2.jpg
channelizers-2.jpg (61.52 KiB) Viewed 220 times


Channelizer has been moved to the following gitlab repo and is now opensource

https://gitlab.com/dewdman42/Channelizer/-/wikis/home

Questions, comments and bug reports can continue to be discussed here, or you can submit bug reports as Issues on Gitlab if you prefer.
Last edited by Dewdman42 on Sat Apr 24, 2021 5:31 pm, edited 21 times in total.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Channelizer Script

Tue Jul 30, 2019 9:37 pm

Update, Channelizer 2.061 (new Script name)

Includes automatic operation, ability to handle multi-timbral and more.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Wed Sep 11, 2019 3:14 pm

Update, Channelizer 2.062

Includes improved GUI control handling which properly remembers settings between sessions.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
daveyboy
Posts: 243
Joined: Thu Oct 16, 2008 12:05 am
Location: Los Angeles
Contact:

Re: Articulation Channelizer Script

Wed Jan 15, 2020 6:59 pm

This works great! Thanks so much. I’m making some custom keyswitchable multis using Play and it’s awesome.
Dave,
2020 iMac 10 core i9, 128 GBs ram, Logic 10.6.1
http://dbwproductions.com
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Thu Jan 16, 2020 9:09 am

Glad to hear it!
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Mon Feb 03, 2020 3:29 pm

Channelizer updated to version 3.03b, which includes support for up to 48 midi destination ports and other improvements.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Ashermusic
Posts: 3388
Joined: Sat Oct 22, 2005 11:51 am
Location: Lake Balboa, CA
Contact:

Re: Articulation Channelizer Script

Wed Feb 05, 2020 8:01 am

Thanks. With the discontinuation of the SkiSwitcher/ArtZ ID, this is very helpful.
Mac mini 3.2 Six Core i7 w/ OSX 10.14

Composer, Logic Pro X Certified Trainer
Author of "Jumpstart Logic Pro X 10.5", "Going Pro with Logic Pro 9" & "Scoring with Logic Pro"
http://www.jayasher.com
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Wed Feb 05, 2020 9:57 am

:D
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Fri Feb 07, 2020 7:38 pm

update to version 3.2e. No new features here, but the code has been completely restructured and improved for the future. I will leave the previous version available online just in case, but I need people to use the new one to make sure its working completely. Passes my tests, but never know.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Mon Feb 10, 2020 10:07 pm

Update to version 3.2f with some critical bug fixes found in 3.2e.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Wed Feb 19, 2020 8:32 am

Update to version 3.2g, small performance improvement.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
bigdavidtapt
Posts: 2
Joined: Fri Feb 21, 2020 3:31 am

Re: Articulation Channelizer Script

Fri Feb 21, 2020 3:38 am

Hello, I'm new to this site and Logic and I just wanted to know how to create the articulations if we are NOT to assign anything in the OUTPUT section? Forgive me for being a "Noob". lol...
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Fri Feb 21, 2020 8:04 am

This script works by Channelizing each articulation INSTEAD OF sending keyswitches. You will need to setup your instruments with each articulation listening on a different Midi channel and no need to receive a keyswitch.

Unfortunately logicpro strips the articulation id from events if you configure anything in the output section of the articulation set, so you cannot use this script to channelize in combination with also sending keyswitches from the articulation set, but generally they should not be necessary when using the channelizing approach.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
bigdavidtapt
Posts: 2
Joined: Fri Feb 21, 2020 3:31 am

Re: Articulation Channelizer Script

Fri Feb 21, 2020 12:13 pm

So pretty much, it's like sending an articulation id to a midi channel?
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: Articulation Channelizer Script

Fri Feb 21, 2020 12:17 pm

no.

The midi events will be channelized, (ie, sent on a midi channel) that corresponds to the articulationID assigned to it (presuming the articulationID has not been stripped off by the articulationSet output section).

Some sample libraries do not actually provide key switching at all, and so the method has previously been to put each articulation on its own track, with a different midi channel assigned to each track. With this script, you can use one source track for an instrument and assign articulationID's to each note...and then as it plays back it will automatically channelize each note to the right midi channel (and thus played by the right instrument with the right articulation sample)...no keyswitches needed and still just one source track for the entire instrument.

There are some other advantages of using this approach instead of keyswitches. For example, you can easily adjust the volume level of each articulation relative to each other when each articulation is basically a separate instrument with separate level adjustment.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
splunk
Posts: 77
Joined: Sun Jul 21, 2013 10:54 am

Re: SCRIPT: Articulation Channelizer

Fri Jun 05, 2020 5:04 pm

Thanks a lot for this script. I'm trying to integrate it into a template with Play instruments and now that I've got it working, it's great. But, I spent quite a bit of time running into problems. It seems that I have to actually disable the lowest channelized port to get it to work correctly. Since this wasn't the default setting, I'm guessing this is a bug or I completely misunderstand the use of this parameter. I thought it was a way to filter out lower MIDI channels that I might want to use for keyswitching instruments on a single channel. In other words, channels below this one would be immune to the channel switching that the script is using to select articulations. This doesn't seem to be the case. I made a test instrument with 3 articulations on 3 different MIDI channels - 1, 2 and 3. I setup the articulation map with those three articulations pointing to their respective channels. I'm playing from a MIDI controller that's sending on MIDI channel 1. I can hear the articulation on MIDI channel 1, but as soon as I select the articulation on channels 2 or 3 I get silence and this error message:

WARNING: articulationID [2] channelizing exceeds range of 1 channels
WARNING: Muting channel overlap

This message is implying that the port number actually assigns the number of allowed channels? I'm not sure, but all I know is with the default settings, I can only get one articulation. Have I missed a setup step?
Mac mini 2018
Macbook Pro 2015
Logic Pro 10.5
OS 10.14.6
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: SCRIPT: Articulation Channelizer

Fri Jun 05, 2020 5:56 pm

can you send me your LPX project with the problem so that I can see better what you're trying to do? I have PLAY also.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: SCRIPT: Articulation Channelizer

Fri Jun 05, 2020 6:00 pm

In the meantime, I will explain the error message you got. That message is what happens when you try to send notes from tracks...with midi channels that overlap with the ranges of other channels that are channelizing.

For example, let's say you have a source track on midi channel 1 and a source track on midi channel 2. and then on channel 1 you have a note with articulation ID 2. Channelizer will detect that as an error, because it is. You would need your source tracks to be channel 1 and channel 3 to avoid that problem.

from the sounds of your explanation I think the problem is that you are doing something with your articulation set or the source channels that does not make sense with channelizer. Do not assign any midi channels in the articulation Set. Let channelizer do that. and your source channels need to stay out of each other's way.

So for example, if you have a source track on channel 1, with art's 1-3. That means that will use up channels 1-3 in Play. You should not have any other source tracks using channels 2-3, the next track should start at channel 4...otherwise you will get the error message you mentioned with channel overlap.
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram
 
splunk
Posts: 77
Joined: Sun Jul 21, 2013 10:54 am

Re: SCRIPT: Articulation Channelizer

Sat Jun 06, 2020 12:43 pm

There's only one track active in the entire project. It has a total of 10 notes. The first 6 are articulation 1 on MIDI channel 1 and the last 4 notes are using articulation 3 on MIDI channel 3. My controller stays on MIDI channel 1, but I get the error message if I try to use articulation 2 or 3 and there's no sound from either the track itself or the controller even though the MIDI in indicator shows the same activity no matter which articulation I pick. It isn't really a big deal because I can simply pick (Disabled) for the port and everything works as advertised. In the meantime, I attached the project and the articulation set so you can take a look. I could easily have screwed up something!

What is a big deal in this workflow has nothing to do with your excellent script. The problem I see is that these instruments use a lot of controllers and when the articulation changes involve channel changes, the CC data gets thrown into different lanes so there's no way to see the continuity of the controller data. Plus, you can easily wind up with 9 or 10 lanes of controllers that are actually only 3 controllers that have been divided up all over the place. I suppose I could view multiple lanes in the main window, but I don't think it's possible in the piano roll. Honestly, it sort of ruins the beauty of the articulation concept and could be easily fixed if EW made it possible to build custom key switch instruments.

Now that I've messed around with the articulation sets, I'd really like to be able to use them, but I'm not sold on this workaround yet. But you guys are much more experienced with this than I am. How do you deal with this?

script test.zip
(4.62 MiB) Downloaded 53 times
Mac mini 2018
Macbook Pro 2015
Logic Pro 10.5
OS 10.14.6
 
User avatar
Dewdman42
Topic Author
Posts: 3188
Joined: Tue Sep 09, 2014 3:01 pm
Location: Salt Lake City, UT

Re: SCRIPT: Articulation Channelizer

Sat Jun 06, 2020 2:09 pm

I will look at your project later tonight. Why do you have one track with more then one midi channel being used? That should Not matter though. But in that scenario if you try to use articulation 3 on midi channel 1 then the error message is to be expected.

You can change the bahavior so that overlapping notes are passed through rather then muted( see gui options ), but really you should identify the overlaps and correct what you are doing so you dont have overlaps.

Channelizer is designed to be very automatic. The GUI options in scripter are extremely limited so this is the preferable alternative. So as notes come in to channelizer in midi channels, it will detect those as known source channels. In this single track case you are using two source channels 1 and 3, presuming you aren’t also changing the channels with articulation set.

Once channelizer detects those two source channels then it will attempt to channelizing based on articulation Id and if it detects overlaps then by default it will mute the overlaps. Thst is a good default since it makes it painful to have an overlap by accident. If you try to use articulation 3 on channel 1, then that overlaps with the other detected source channel 3.

When I get home I will take a look at your project and should know the exact answer for you.

The lowest port gui option is meant to pass through lower ports without being channelized. So if you raise that value then you’re defeating the use of channelizer.

You can certainly use the articulation set to channelize your notes INSTEAD OF my script but articulation set will not forward your cc events to the destination channels so that becomes a problem. That is the whole reason for using channelizer instead of articulation set
OSX 10.15 (Catalina) on OpenCore - Logic Pro 10.6.2, VePro7, Mainstage3
5,1 MacPro 3.46ghz x 12 128gb ram