All Articles Logic Pro
로직 프로 X : 인크 레 더블 새로운 스크립터 MIDI FX 플러그인을위한 무료 스크립트
Peter Schwartz on Thu, July 25th 31 comments
An unsung hero in Logic Pro X is the Scripter MIDI FX Plug-in. Using JavaScript you can create your own MIDI FX. Peter Schwartz (Mr Environment to his friends) has created a special one to download.

로직 프로 X, 대망의기도가 응답 된 많은 로직 사용자의 도래와 함께 : 아르페지 에이터, MIDI 지연, 코드 memorizers, 기타 MIDI 기반의 효과를 더 이상 힘들게 환경에서 생성 그대로 손에 의해 배선 할 필요가 없습니다 . 효과적으로 MIDI FX 스트립 당 최대 8 제거하면 악기 채널에 바로 삽입하는 플러그인의 새로운 시리즈로 대체되었습니다 Theyve!

Logic Pro X’s new Instrument Channel Strip, shown here with four MIDI FX.

네 개의 MIDI FX와 여기에 표시된 논리 프로 X가 새로운 악기 채널 스트립.


사과 로직 개발 팀은 현대적인 GUI를 가진 매우 유용한 스위트 MIDI FX를 만드는 최상급 작업을 수행하고있다.

The new Arpeggiator and Chord Trigger plugins

새로운 아르페지 에이터와 코드 트리거 플러그인.


환경 관에 못?

FX 컬렉션에 포함 효과적으로 MIDI 처리를 위해 환경을 사용할 필요의 95 %를 제거하는 플러그인의 새입니다. 나를 위해, 그 우리가 플러그 인 우리 자신의 사용자 지정 MIDI를 작성할 수 수집, 하나의 플러그인에서 가장 흥미로운! 그것의 스크립터를했다.

Figure 1: The custom appearance of the GUI for the free script linked in this article!

그림 1 :이 문서에 링크 된 무료 스크립트의 GUI의 사용자 정의 등장!


스크립터 플러그인

스크립트는 자바 스크립트를 말합니다 지시하는 데 사용되는 언어이 처리하는 방법에 플러그인 MIDI뿐만 아니라, 대화 형 메뉴, 슬라이더 및 체크 박스의 종류는 (위 그림 참조) 스크립터 GUI에 추가 할 수있는 것과.

플러그인 기능을 통합 자바 스크립트 텍스트 편집기 / linter (그림 2 참조). 그 모든 급식 아주 및 아주 편리한 작은 작업!

자바 스크립트 자체는 매우 배우기 어렵지 않다. 어떤 프로그래밍 언어를 배우는와 마찬가지로, 어쩌면 처음에는 이해하기 조금 어려운 고유 한 특징이있다. 그러나 일단 당신이 혹 극복, 당신은 당신의 음악 최종 목표를 향해 MIDI 데이터를 조작하기 위해 무엇을 할 수 있는지에 거의 제한이 없음을 프로그래머가 없습니다. 그리고 내장 linter 코딩 실수를 지적하는 좋은 일자리를 않습니다. 나는 과거의 어떤 [에헴]을 확인하지 않음.

매우 많은 시간이 소요되지 않은 경우 환경에서 만들 엄청나게 어려울 것입니다 모든 프로세스의 베스트 이제 자바 스크립트 몇 줄의 05 월의 경우에 생성 할 수 있습니다.

Figure 2: some of my custom code for the EXS 24 PolyArticulation Split Script

그림 2 : EXS 24 PolyArticulation 분할 스크립트에 대한 내 사용자 지정 코드의 일부.


무한한 가능성

MIDI 지연 다중 음색 지연을 생성하기 위해 다른 MIDI 채널마다 반복 출력하는 프로세스를 만들려면? 키 선택 범위는 LFO의 속도를 제어 아니면 DUBSTEP 동요에 대한 키 스위칭 설치에 대해 어떻게 소리? 이러한 알고리즘 구성 도구, 코드 strummers, 그리고 레가토 프로세서와 같은 고급 개념이 링크에서 다운로드, 매뉴얼 논리 X 효과의 스크립트에 대한 소개에서 제안하는 중입니다.

당신은 또한 플러그인 고유의 기능을 강화하고 확장 할 대상 플러그인을 만들 수 있으며이 문서가 그냥 다 필자합니다.


전체 문자열에 대한

정상적인 상황에서, 전체 문자열 악기는 레가토 문자열 사운드를 생성합니다. 하지만이 기기 내에 숨겨진 레가토, 피치카토, 스타카토, 트레몰로 및 트릴의 두 가지 유형을 포함하여 문자열 관절의 전체 칭찬입니다! 이 소리를 액세스하려면 내 스크립트에 의해 생성 된 MIDI 메시지를이 숨겨진 관절을 최대한 발휘 할 수 EXSs 전면 패널 설정에 작은 수정을했다.

Settings for EXS that gave my Script a “hook” to access hidden articulations in Full Strings+

내 스크립트에게 전체 문자열에 숨겨진 관절에 액세스 할 수있는 후크를했다 EXS에 대한 설정


FREE STUFF : EXS24 PolyArticulation 스크립트

이 스크립트는 분할의 양쪽에 서로 다른 관절을 키보드 분할을 설정하고 재생할 수 있습니다. 또는, 당신은 키보드를 통해 단일 ​​(그리고 일반적으로 숨김) 관절을 재생하는 극단적 인 높거나 낮은 음으로 분리 점을 설정할 수 있습니다!

프로젝트를 다운로드하여 시작하고 내가 살고있는 기록의 예를 재생할 수 있습니다. 오른쪽 손은 둘 다 소리 EXS의 단일 인스턴스에서 오는 것을 염두에두고, 소리 스타카토 노트 동안베이스 사운드를 레가토 노트 어떻게 들어!

지금이 시도 : 레가토에서 트레몰로 (Tremolo)에 아래의 분할 사운드를 변경하고 더 많은 긴장이 가득한 버전을 듣고 예를 재생할 수 있습니다. (알면! 무슨 뜻인지 참조) 위의 분할 및 트레몰로 아래의 피치카토를 선택합니다.

스크립트는 다른 모든 MIDI FX와 같은 비파괴 인서트 FX 있습니다 : 그들은 항상 살아하고 기기의 채널을 입력 한 후 MIDI 데이터를 가로 챌 수 있지만 악기를 도착하기 전에 자체 플러그인입니다. 그래서 당신은 파트를 녹음 할 때, 트랙은 예를 들어 녹음으로, 단지 당신의 본래 노트 및 컨트롤러를 포함합니다. 당신은 예를 들어 프로젝트 알면있는 이벤트 목록을 검사하는 경우 사실, 그것은 단지 노트 포함을 참조하십시오. 성능이나 재생 중에, 그러나, 스크립트는 관절이 위 분할 아래 사항에 대한 트리거 EXS을 알려 추가적인 MIDI 데이터를 생성합니다.

난 당신이 스크립팅의 힘에 대한 식욕을 자극하는 문자열 부분뿐만 ​​아니라 스케치이 설정이 유용 희망!

EXS24 PolyArticulation MIDI FX 스크립트 등 내 무료 로직 X 프로젝트 파일을 다운로드하려면 여기를 클릭하십시오.

Related Videos
Comments (31)

You must be logged in to comment.

  • Cyril Blanc
    Hello I was looking to access Meta data to handle score accidents Did you find the trick ? Best Cyril
    • 6 years ago
    • By: Cyril Blanc
    Reply
  • Peter Schwartz
    It does not seem possible to generate Meta or Fader events from a script. Even if it was possible, you can't use Scripts to process data before it enters Logic (at the Sequencer Input object in the Environment), and that is the ONLY place where Meta events can be passed into Logic for the purpose of recording them on a track. Since you can't insert a Script in any object in the Environment, and since Scripts can't generate Meta events anyway, it's just not possible. Now, you can still attempt to use Environment objects to generate Meta events (for score symbols or whatever) and feed them into the Sequencer Input. However, it will be an exercise in futility. Or, I should say, in Logic 9 and prior it was futile, because something in the code prevented that from working. I haven't tried it in Logic X tho. If I get a chance I will and post back here if I get a positive result.
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Cyril Blanc
    Hello Sky Thanks for your answer. I do not want to generate meta, but read Meta that are in the score to send changes of articulation in Vienna Symphonic Library first, I may also extend it to Play and ....... It will look like this : If Meta = "Legato" then send "C0" If Meta = "Staccato" then send "C#0 if Meta = "pppp" then send "ctrl 7 with value 20" if Meta = "ppp" then send "ctrl 7 with value 30" if Meta = "pp" then send "ctrl 7 with value 40" if Meta = "p" then send "ctrl 7 with value 50" if Meta = "f" then send "ctrl 7 with value "64" ....... So how can you read Meta ? Do you have the list of the Meta with there code ? Thanks in advance Best Cyril
    • 6 years ago
    • By: Cyril Blanc
    Reply
  • Peter Schwartz
    Scripts cannot read Meta Events, so you're out of luck there. I believe it's possible to do this directly in the environment. However, I'd like to suggest that the idea of associating dynamic markings with specific values sounds good in theory but isn't a practical approach. First, just adjusting the volume (CC#7) won't give your parts a natural sound. Second, if you had a sudden (subito) jump from "p" to "f" and any of the "p" notes overlapped even slightly into the "f" part, the transition is going to sound unnatural. While riding volume alone won't give you an very natural sound, it's better than nothing, and in that case I'd suggest riding automation on your parts to match the dynamics you want. If you want natural dynamics from Vienna stuff, you have to use a combination of riding the values of velocity xfade, the filter, and volume. But that's a whole other subject. :)
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Cyril Blanc
    Hi Ski Thanks for your mail > Scripts cannot read Meta Events, so you're out of luck there. So this Scripter IS A PIECE OF S..... I AM SO DISAPPOINTED, IF I HAVE KNOW THAT I WILL NOT HAVE BUY LOGIC X I AM FEDUP OF LOGIC DEVELOPMENT TEAM THAT DOES NOT DEVELOP WHAT USERS NEED AND DEVELOPING THINGS WE DONT NEED WE ARE Thousands USERS USING VSL, QLSO ... and that are needing to drive articulation changes from score
    • 6 years ago
    • By: Cyril Blanc
    Reply
  • Ziticyu
    Cyril is right... the Scriptor is Totally Useless.... First i thought... yeah great ... then i began to script articulation switches.... everything is just recordable into the Automation ... I dont need something like this ... i need the midi data or the Meta Events, recorded into the file... not into the Automation....
    • 6 years ago
    • By: Ziticyu
    Reply
  • Cyril Blanc
    Cubase, Notation, Sibelius, Finale has listen to there user. They are totally interfaced with VSL, Play ..... Cubase has the VST Expression Map since more than a year ! Logic is behind ! shame !!!!!!!!!
    • 6 years ago
    • By: Cyril Blanc
    Reply
  • Dave
    Hi, I am still downloading Logic X on a very slow connection so as of yet I cannot tell for myself but I have a question: Can I, for example, make a script that SOMETIMES plays one chord and sometimes another given a single note AND actually 'use' that data? From the article: Scripts, like all other MIDI FX, are non-destructive insert FX: they are always “live” and intercept MIDI data after it enters the instrument channel but before it arrives the instrument plug-in itself. So when you record a part, the track will contain only your original notes and controllers, just as in the example recording. In fact, if you examine the Event List in the example project you’ll see that it only contains notes. During performance or playback, however, the Script generates additional MIDI data that tells EXS which articulations to trigger for notes above and below the split. My question is: Can I record or save somehow the additional MIDI data for later use? eg editing? I hope this makes sense
    • 6 years ago
    • By: Dave
    Reply
  • Cyril Blanc
    you can do this with the environment already
    • 6 years ago
    • By: Cyril Blanc
    Reply
  • Peter Schwartz
    Hi Dave, what you said totally makes sense, and you've got it exactly right. Scripting and other MIDI FX are "non-destructive" and therefore only process MIDI data entering the software instrument's channel strip. What you'll see in a region is the data as it originally came into the software instrument's channel strip. But within the channel strip, the MIDI is processed on its way to the plugin instrument. Recording the output of the process (i.e., the output of the Script) is proving problematic. In fact, I've been working hard trying to find a foolproof way to record the output of a Script without any kind of "gotchas". I think I'm making progress, so "please stand by". :)
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Peter Schwartz
    Cyril, can you explain how you do this in the environment? Are you talking about using IAC?
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Cyril Blanc
    You do that with "chord memorizer " You can add "transformers" that will select different "chord memorizer " depending of either a CC change or a specific note range Have one in Minor, another one in Major, another in Major 7 ........ If you want to record the result you send the end of the chain to another midi instrument and record it
    • 6 years ago
    • By: Cyril Blanc
    Reply
  • Peter Schwartz
    Just read your reply. I don't believe your idea will work, because you can't record the output of an instrument. So if you cabled your environment process to another MIDI instrument, it would play that instrument but it wouldn't be recorded.
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Cyril Blanc
    to record if it does not work connect to sequencer input
    • 6 years ago
    • By: Cyril Blanc
    Reply
  • Chris
    Hi Peter, Thanks for the awesome little script, however for some reason I cannot get it to work properly. I am literally copying and pasting the script from the file in your article into the scripter in a new project in Logic Pro x (I have even saved it as a preset in the script window). Basically when I run the script, the GUI/front end loads up the two boxes to select the play methods (legato, pizzicato etc) and the Split note (e.g. C3) but it doesnt seem to actually split the keyboard - or change the sound according to the play methods I select. When I looked in the script, it says the following Pluginparemeter[0] missing unit Pluginparemeter[3] missing unit Which I assume is the above split and below split paremeters not working properly. I am a bit of a code newb so not sure how, in the process of my copy and paste, I am getting this wrong haha Any info appreciated. Thanks in advance Chris P.S do you know of anywhere we can get more scripts like this - been looking around and not much available.
    • 6 years ago
    • By: Chris
    Reply
  • Peter Schwartz
    Hi Chris, sorry you're having trouble with it. The messages you see about the missing unit in the Plugin Parameter are benign. However, I've gone and changed the code so that it no longer reports that message. It's working 100% as far as I can tell at 3:30 in the morning. I'm going to post a new message after this one with the new code. You can copy and paste it into the Scripter. Then, hit "Run Script". It should work 100% fine. If not, post back. Regarding other Scripts, it's early days yet. Presently there are problems associated with having too many scripts in a project which apparently Apple is aware of. But I'm pressing on all the same, and have a variety of plugins that I'm developing to do all kinds of neat stuff.
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Peter Schwartz
    function HandleMIDI(e) { var sus = new ControlChange; if (e instanceof NoteOn > 0) { if (e.pitch < GetParameter("Split Point")) { sus.number = 1; sus.value = (GetParameter("Below Split")*25); sus.send(); } else { sus.number = 1; sus.value = (GetParameter("Above Split")*25); sus.send(); }} e.send(); e.trace(); } var PluginParameters = [ {name:"MacProVideo", type:"menu",unit:"blobs",minValue:0,maxValue:1,numberOfSteps:2,defaultValue:1, valueStrings:["Off","On"]}, {name:"Above Split", type:"menu", unit:"blobs",minValue:0,maxValue:5,numberOfSteps:6,defaultValue:1 , valueStrings:["Legato","Staccato", "Pizzicato","Tremolo","H.Trill","W.Trill"]}, {name:"Split Point", type:"menu", unit:"blobs",minValue:0,maxValue:127,numberOfSteps:128,defaultValue:60, valueStrings:MIDI._noteNames}, {name:"Below Split", type:"menu",unit:"blobs", minValue:0, maxValue:5, numberOfSteps:6, defaultValue:0, valueStrings:["Legato","Staccato", "Pizzicato","Tremolo","H.Trill","W.Trill"]}];
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Chris
    Thanks for this. I tried the new code and alas still no love. Perhaps its something to do with the setup of my instrumentation - I am going into EXS24 > Orchestral > Strings > FullStings+ right? I have tried Stereo and Multi output versions - but still get the same result. Basically, the scripter says it works (so no more missing plugins) but seems to be sticking to the default sound that loads up when the sampleter starts (i.e. doesnt change when I change the selections in the scripter) not sure how the flipping flip I am going wrong with this... Cheers for your help Chris
    • 6 years ago
    • By: Chris
  • Peter Schwartz
    Gonna suggest that you download the project from the link above (it's been updated with the new code) and save the Channel Strip as a new Channel Strip Setting. Note that the script won't work unless Full Strings+ is modified as shown in the picture above, so the easiest move would be to save this as a Channel Strip Setting. No need to copy and paste code to make it work. Also, just for the record (wink) there weren't any missing plugins. The original code worked fine. I just didn't specify a few non-critical parameters that resulted in what appeared to be error messages but had no bearing on how well the script worked.
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Chris
    Boom. That did it. Nice one, thanks. Is this script limited to just FullStrings+ in EXS or are there other ways it can be tweaked? Awesome job though, sounds great with the two 'multis' at the same time. Chris
    • 6 years ago
    • By: Chris
    Reply
  • Peter Schwartz
    Hi Chris, Glad it's working for you. Yes, this script can be used with any EXS-24 instrument that has multiple samples (articulations) where each one is programmed within the EXS instrument itself to have a unique Articulation ID. Critical to the operation is setting the EXS's modulation matrix as shown above. Full Strings+ has 6 articulations, and the value of 25 you see in the code specifically addresses having six Articulation ID's. If an instrument had a greater or lesser number of articulations, that value would have to be adjusted (and so would the labels in the menus).
    • 6 years ago
    • By: Peter Schwartz
    Reply
  • Itay
    Hi Thanks all Trying to write a script to filter the channel strip incoming midi channel (like environment's channel splitter.any ideas? thanks again
    • 6 years ago
    • By: Itay
    Reply
  • Jackodrums
    I've followed Ski's method laid out in another forum thread to allow for more expressive playing of stock EXS strings using the modwheel (thanks!). But does anyone know if you can program a script that approximates this with non-Logic EXS instruments like Garritan or Sonatina Symphonic Orchestra? Some of these free or cheap libraries could work much better I feel if we could impose the same filter cutoff and volume tweaks using the mod wheel for better expression. Thanks in advance!
    • 6 years ago
    • By: Jackodrums
    Reply
  • Xepatii
    Thanks Peter for these insights. I have to say though, it would be nice to have a MacProVideo tutorial about the Logic Scripter. For someone who comes from the musicians side it's quite difficult to get into coding JS/Midi... But this looks really promising I think. Enormous potential this scripture has! (Greetings from Yoda) U
    • 5 years ago
    • By: Xepatii
    Reply
  • Sapario
    Peter Schwartz thank you for the gift. Incredible.
    • 6 years ago
    • By: Sapario
    Reply
  • shiftjam
    Great stuff! Thank you for that. Give us more scripts, I think there is a lot of power in the scripter plugin. Best regards, Leonard
    • 6 years ago
    • By: shiftjam
    Reply
  • Lowediy
    More of this, please! Amazing! This was one of my favorite updates off of the bat on Logic Pro X
    • 6 years ago
    • By: Lowediy
    Reply
  • Titudyi
    Amazing! Thanks so much!
    • 6 years ago
    • By: Titudyi
    Reply
  • Magic Fingers
    Wow!!! are you kidding me? Logic Pro X is taking away the need to learn several 3rd party apps and become exhausted with learning environment tricks (stuff that I am doing daily in LP9), and it's all under one hood now. I can't wait to upgrade my operating system so I can take advantage of all these new features. Way to go Logic Pro!!!
    • 6 years ago
    • By: Magic Fingers
    Reply
  • Magic Fingers
    Wow!!! are you kidding me? Logic Pro X is taking away the need to learn several 3rd party apps and become exhausted with learning environment tricks (stuff that I am doing daily in LP9), and it's all under one hood now. I can't wait to upgrade my operating system so I can take advantage of all these new features. Way to go Logic Pro!!!
    • 6 years ago
    • By: Magic Fingers
    Reply
  • Peter Schwartz
    I'm really glad you guys are digging this, and getting insight and inspiration as to what Scripting can do.
    • 6 years ago
    • By: Peter Schwartz
    Reply
MIDI FX: The Arpeggiator
Logic Pro X 200
Dream It. Do It.
Do you want to learn MIDI FX: The Arpeggiator?
Yes, I want to learn!
No Thanks, I just want to read the article.
Feedback
Course Advisor
Don't Know Where To Start?
Ask A Course Advisor
Ask Us!
Copy the link below and paste it into an email, forum, or Facebook to share this with your friends.
Make money when you share our links
Become a macProVideo.com Affiliate!
The current affiliate rate is: 50%
Classes Start Next Week!
Live 8-week Online Certification Classes for: