Announcement

Collapse
No announcement yet.

OSCulator Plug-in for Logic Pro

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • guuft667
    replied
    camille

    Sorry for maybe spamming you.

    I refer to your post:

    Originally posted by camille View Post

    I just checked in with Apple about this issue.
    They told me Logic Pro Control Surface Plugins are no longer supported, and therefore not loaded on Apple Silicon, this is what dnonkong refers to. I would like to replace the OSCulator Plug-in for Logic Pro with a MDS (MIDI Device Script, written in Lua language), but the documentation looks quite sparse at the moment. Once again, a deprecated feature with no obvious migration path…
    ?

    I can exactly understand what you mean. I was trying to build my custom OSC MDS script since about a year...
    I was searching for documatation about this. All i found was this here:
    View a table of top control surfaces that Logic Pro for Mac directly supports.

    Notice this: "To use a control surface with an Apple Silicon Mac computer for which no built-in plug-in is available, consult the manufacturer’s support materials for the control surface to see if an MDS is available."

    Apple did never publish any further documentation about the MDS scripts, as far as i know. I can not realize why - or what the purpuse is.

    I also tried to look inside the built in MDS-es. Just to learn how they work... Nothing.

    Then i found the MDS Script, which Native Instruments offer to their Customers

    Scroll down and you will find the zip. "MASCHINE MK3 OSC.device" seems to be interesting. I learned a lot from this script.

    But: If you read the original commeted-out margs from NI:

    Code:
    --[[ Requirements for OSC Profiles
    For OSC Profiles, there are only three functions to be implemented:
    * `controller_info`: as with any other MIDI Device Profile, provides a default assignment list, just as for other control surfaces, and also the pattern recognizing the device (`OSC_pattern`)
    * `CSFeedback`: doesn't send any feedback; returns a non-null value for the maximum length of text feedback.
    * `CSLabelSize`: returns the maximum length of a text label, if there is one for the assignment.
    
    All OSC communication is done by Logic Pro — you don't have to write it.]]
    
    --------------------------------------------
    --- ControlIDs
    ------------------
    --[[
    In general the field ControlID seems not to be required for an entry in the Item table, however some entries that seem
    similar to others will not show up correctly unless they have a controlID assigned to them (e.g.
    'fader-bank-' and fader-bank+' where only the first entry shows up when both have no ControlID assigned to them).
    
    The ControlIDs seem to be arbitrary as long as they are unique.]]
    NI seemed to be in the same situation... Trial and error...

    ---

    I think it is possible to run MDPs (MIDI Device Plug-ins). Although Apple says no. As i posted here.
    Sure: "~/Library/Application Support/MIDI Device Plug-ins" is ignored by Logic on M1 Macs.
    But: If you put it directly into the Logic Apps Dir: "/Applications/Logic\ Pro\ X.app/Contents/PlugIns/MIDI\ Device\ Plug-ins/OSCulator.bundle/Contents/MacOS/" it seems to work.
    And if you look at the TouchOSC.bundle - it is fully supported on my M1 Mac. So the claim "control surface plug-ins from manufacturers other than Apple do not work on M1 Macs" is simply not true...

    I think that the only "trick" is to compile the bundle with both architectures...
    x86_64 and arm64...
    ...and put this into /Applications/Logic\ Pro\ X.app/Contents/PlugIns/MIDI\ Device\ Plug-ins/ folder

    I bet money that it will work

    Example: Look into the TouchOSC.bundle:
    Code:
    lipo -archs /Applications/Logic\ Pro\ X.app/Contents/PlugIns/MIDI\ Device\ Plug-ins/TouchOSC.bundle/Contents/MacOS/TouchOSC
    ?gives me:
    Code:
    x86_64 arm64
    ?
    while your OSCulator.bundle:
    Code:
    lipo -archs /Applications/Logic\ Pro\ X.app/Contents/PlugIns/MIDI\ Device\ Plug-ins/OSCulator.bundle/Contents/MacOS/OSCulator
    gives me:
    Code:
    x86_64
    ?


    So... long post - a simple final question:

    Would it be possible for you to compile the OSCulator.bundle with both archs (x86_64 and arm64)?
    As far as my own experiences with Xcode: It should not be really hard to additionally add the arm64 arch...

    don't hecitate to contact me, if i can help out with this.

    regards

    Leave a comment:


  • guuft667
    replied
    Thanks for the confirmation.

    I can not reproduce any dropped messages in my environment.
    So - i think it may depend on your configuration or network, or.. or.. or..

    But if you are happy with TouchOSC - so far... Have Fun ;-)

    For me - i just learned a few days ago how powerful OSCulatator is.
    Sure, not simple to understand the details. But from day to day, i dive deeper into it and have more ideas how to integrate it in my environment.


    camille
    Thanks for such a great tool!

    Leave a comment:


  • LoicD
    replied
    Hi,
    Yes I did it, and actually it works... randomly.
    Sometimes it would pick up OSC messages, sometimes not, without any error messages dropped.
    I'll keep my TouchOSC setup that a tad more annoying but more stable.
    Thanks for your precious efforts


    Leave a comment:


  • guuft667
    replied
    Originally posted by LoicD View Post
    I tried your trick and indeed, I managed to see OSCulator in the device list in native ( = not Rosetta) mode.
    Alas, in the OSCulator monitor, nothing is transmitted, contrarily to Rosetta mode where all messages are active and shown in monitor.

    I don't know what kind of witchcraft you used, but, congratulations !
    just checked again - it works!

    1st Pic in Rosetta Mode:
    ROS.png

    After this i closed Logic, disabled Rosetta and started again... nothing else...
    2nd Pic: Non-Rosetta Mode:
    SIL.png

    Sure that you copied the current OSCulator.bundle (v.10.1.1) to: /Applications/Logic Pro X.app/Contents/PlugIns/MIDI Device Plug-ins/
    ??
    Please check exactly how i described this...

    Leave a comment:


  • guuft667
    replied
    No witchcraft - i swear

    i can check the steps exactly for you if you want.
    and write down here.

    but i am not at home today… maybe sunday.

    regards

    edit: as far as i remember (not sure exactly)

    - check that the messages work in rosetta mode
    - switch logic to normal mode
    - maybe restart the osculator instance (not close the app)

    try to fiddle a bit - with logic and osculator thats how i did

    no guarantee that its really stable after reboot or sth.

    i do not use this everyday, so thats the reason i dont rememder exactly. But im sure to reproduce when sitting in front of my mac…
    Last edited by guuft667; 05-17-2023, 09:58 PM.

    Leave a comment:


  • LoicD
    replied
    I tried your trick and indeed, I managed to see OSCulator in the device list in native ( = not Rosetta) mode.
    Alas, in the OSCulator monitor, nothing is transmitted, contrarily to Rosetta mode where all messages are active and shown in monitor.

    I don't know what kind of witchcraft you used, but, congratulations !

    Leave a comment:


  • camille
    replied
    Happy to see that you found a workaround that works for you!
    Thanks for the tip.

    Leave a comment:


  • guuft667
    replied
    camille

    Hey, it seems to work for me in Logic 10.7.7 on current Ventura and M1 Mac.

    What I did:

    - Close Logic Pro
    - Copy the current OSCulator.bundle (v.10.1.1) to: /Applications/Logic Pro X.app/Contents/PlugIns/MIDI Device Plug-ins/
    - Then I started OSCulator
    - Before starting Logic, enable the Rosetta Mode
    - Start Logic, and it found the OSCulator Controller (added it, an so on...)
    - Close Logic
    - Disable Rosetta
    - Start Logic again...
    - Although the icon disappeared and the OSCulator Plugin seems to be disabled (greyed out), it still works!
    - An indicator is, that the ports are highlighted
    - Although, i paused the routing and restarted it again - still works

    Here a screenshot - i got three instances of OSCulator runnig:

    osculator.png

    But i did not test how it behaves after a restart of my Mac till now...

    Leave a comment:


  • camille
    replied
    Hi Loic,

    I just checked in with Apple about this issue.
    They told me Logic Pro Control Surface Plugins are no longer supported, and therefore not loaded on Apple Silicon, this is what dnonkong refers to. I would like to replace the OSCulator Plug-in for Logic Pro with a MDS (MIDI Device Script, written in Lua language), but the documentation looks quite sparse at the moment. Once again, a deprecated feature with no obvious migration path…

    Leave a comment:


  • LoicD
    replied
    Same situation here, new M1 MBP and I followed the instructions : OSCulator never shows up in Logic. It is a very important part in my composing workflow.
    It seems like a MDS component is needed too.
    Last edited by LoicD; 04-16-2022, 10:50 PM.

    Leave a comment:


  • dnonkong
    replied
    According to https://support.apple.com/guide/logi...ls718dd5b2/mac, this may be an M1 issue?

    "To use a control surface with an Apple Silicon Mac computer for which no built-in plug-in is available, consult the manufacturer’s support materials for the control surface to see if an MDS is available."

    Leave a comment:


  • dnonkong
    replied
    Having a hard time getting Logic 10.7.3 to recognize the bundle in Mac OS 12.3. Installed per the instructions, and added to the app itself as well. Enabled in system prefs / privacy settings as well. Any ideas?
    Last edited by dnonkong; 04-07-2022, 11:48 PM.

    Leave a comment:


  • camille
    replied
    Hi Zuriel.

    I guess /1/Play is the message sent from an app like TouchOSC to OSCulator.

    The advantage of mapping OSC messages is that you can send them over the network. So for example if you are preparing an art installation where OSCulator does not run on the same computer that runs Logic, then you want to use the network. Keystrokes are fine as well, just mind that they are not always the same from computer to computer, for example it can depend on the language the operating system is running.

    As for your last question, I'm afraid there is no easy solution. I understand you would like to be able to receive in your app all messages that OSCulator receives, like some sort of delegation. You could use the oscbroadcaster for that. I'm not sure how you would interact with sending messages, as OSCulator is able to send to many targets.
    In general, you want to design things so the OSC messages flow like in a network, so yeah, you will have to forward the specific messages you are interested in to your app.


    Best,
    Camille

    Leave a comment:


  • Zuriel
    replied
    I just started using the OSCulator Logic plugin for a project that I am working on where I am using a push2 and python to communcate with Logic.
    Python app to communicate via Midi and OSC to Logic Pro X and Ableton Push2. Requires Push2 / Logic Pro X / OSCulator. - zurie/LogicX-Push2


    One of the things I am trying to understand is... I see 1 commands for the same thing.. say /Logic/Transport/Play and /1/Play

    and then in there I see /1/Play going to -> /Logic/Transport/Play etc. sorta like a indirect route? or loop? or what exactly is the concept there with that? I had to go in LOGIC and change the transport to /1/Play for it to start working... is everyone going to have to do that? why couldn't i just use /logic/transport/play or could I? maybe I am missing some readme, docs on the logic plugin and how and why its done that way?



    another question is... I see that Logic has the ability to accept keystrokes. and since I am building my tool specifically for logic, and therefore indirectly mac.... and I am making Osculator required to do alot of the things I am doing... why not just map everything to keystrokes? would one have an inherit advantage over the other? like I am using /logic/transport/play as a OSC message to play but not sure if theres a benefit or a speed benefit between apple keystroke vs logic listening to osc message

    and lastly... I am using OSCulator to send my program some variables, things like... are we playing / recording / is the metronome enabled or disabled.

    that way I could click play in Logic and my push2 lights up the play button.

    thats all working but I had to listen in my app for a specific OSC path and get the data from those variables. is there some 'central' location where you get a massive dump of OSC data in some specific route? or does all of the data you send and receive have to be sculpted by OSC and specifically sent...

    just wondering if theres a spot that has alot of this data already and I am just not listening in the right spot for it?

    thanks!
    Last edited by Zuriel; 06-30-2021, 07:53 PM.

    Leave a comment:


  • Dewdman42
    replied
    Just out of curiosity, does anything like this exist for Cubase or any other DAW's at the moment?

    Leave a comment:

Working...
X