Catalina and libstXX++ trick

Discussion in 'Mac / Hackintosh' started by caveatemptor, Dec 16, 2019.

  1. caveatemptor

    caveatemptor Newbie

    Joined:
    Dec 16, 2019
    Messages:
    4
    Likes Received:
    2
    How can I get my old libstXX++ au plugins working on Catalina? (e.g. Antares Harmony Engine, McDSP, Altiverb)

    I know there is a method that works used by MORiA... where the AU is connected to a libstXX++ in the applications folder. Here's a photo: https://i.imgur.com/3fhxZjz.png. This is how I got H3000 Factory to work on Catalina.

    So now that we know there's a method that works...

    HOW can I connect my other AU plugins mentioned above to libstXX using this method?
    Please any help would save me immensely.
     
    • Like Like x 2
    • Interesting Interesting x 1
    • Useful Useful x 1
    • List
  2.  
  3. caveatemptor

    caveatemptor Newbie

    Joined:
    Dec 16, 2019
    Messages:
    4
    Likes Received:
    2
    C’mon guys. We KNOW that this is possible because I have H3000 up and running. Just need someone smarter technically than me to school me on how to connect the other au’s to the dylib
     
  4. dan_spenc

    dan_spenc Newbie

    Joined:
    May 17, 2020
    Messages:
    2
    Likes Received:
    0
    Hi. Can you post back on whether any progress was made here? Thank you for the initial post on this issue.

    I just learned that new macs are Catalina-exclusive. Grappling with its implications, I'm struggling with a plugin that crashes the DAW on open and a plugin that will not open.

    Actually anything posted regarding manual workarounds for plugin compatibility with Catalina would be much appreciated.
     
  5. Tambu

    Tambu Newbie

    Joined:
    Apr 20, 2020
    Messages:
    3
    Likes Received:
    1
    Would love to learn this as well :)
     
  6. bluetoy69

    bluetoy69 Member

    Joined:
    Nov 4, 2014
    Messages:
    13
    Likes Received:
    8
    I have dylib plugins working on Catalina except for Sonnox,Antares and Altiverb (blank UI, logic 10.5 issue) Just look for those “Adobe pached”versions.
     
    • Like Like x 2
    • Agree Agree x 1
    • Interesting Interesting x 1
    • List
  7. zpaces

    zpaces Producer

    Joined:
    Jul 29, 2016
    Messages:
    230
    Likes Received:
    123
    You need to remove the security flags of those plugins.
    1. Install the old plugins on Mojave or earlier.
    2. Update to Catalina
    3. Open Terminal and deflag old plugins. E.g.:

      sudo xattr -r -d com.apple.quarantine /Library/Audio/Plug-Ins/Components/Synplant.component
    That's how I did it. This works with every kind of file, even Apps.
     
  8. tzzsmk

    tzzsmk Audiosexual

    Joined:
    Sep 13, 2016
    Messages:
    3,156
    Likes Received:
    1,935
    Location:
    Heart of Europe
    assuming you have correct libs in Applications/ilok folder
    do this commands in terminal for every app/plugin you want:

    sudo install_name_tool -change /usr/lib/libstdc++.6.dylib /Applications/ilok/libstXX++.6.dylib APP_OR_VST_PACKAGECONTENTS_MACOS_BINARY_LOCATION

    :chilling:
     
    • Useful Useful x 2
    • Love it! Love it! x 1
    • List
  9. Jim Stratos

    Jim Stratos Ultrasonic

    Joined:
    Apr 22, 2017
    Messages:
    113
    Likes Received:
    30
    Can you be more specific by giving an example for noobs like me?
     
  10. ElMoreno

    ElMoreno Kapellmeister

    Joined:
    Jan 13, 2012
    Messages:
    318
    Likes Received:
    48
    zpaces: Your command...

    sudo xattr -r -d com.apple.quarantine /Library/Audio/Plug-Ins/Components/Synplant.component

    work even for us on Sierra? :dunno:
     
    Last edited: Jun 6, 2020
  11. Dr. Evil

    Dr. Evil Newbie

    Joined:
    Sep 20, 2016
    Messages:
    4
    Likes Received:
    1
    I tried your method but can't get for example Altverb 7 to work... I get this part I paste in terminal "sudo install_name_tool -change /usr/lib/libstdc++.6.dylib /Applications/ilok/libstXX++.6.dylib" but this part "APP_OR_VST_PACKAGECONTENTS_MACOS_BINARY_LOCATION" I get confused. When I get to the Binary "APP_OR_VST_PACKAGECONTENTS_MACOS_BINARY", what do I do with the location part? Any help would be much appreciated. Thanks tzzsmk!
     
  12. Qrchack

    Qrchack Rock Star

    Joined:
    Dec 15, 2015
    Messages:
    798
    Likes Received:
    338
    Location:
    Poland
    It says it in the name. .app and .vst files aren't actually files, they are containers ("folders"). When you right click and select Show Package Contents, you can see the actual executable in Contents/MacOS. The rest is metadata, libraries and various other resources.
     
  13. SmokerNzt

    SmokerNzt Rock Star

    Joined:
    Mar 2, 2013
    Messages:
    527
    Likes Received:
    320
    here it was posted long time ago for Catalina you need just to change the locations
    rather to /usr/lib to different path
    1. Changed the name of openssh's libstdc to libstXX++.6.0.9.dylib and altered it (please use my attached lib - 10.9.5 or do as the user Manta correctly described if your OS version is different):

    Go to the openssh dylib file for your system, change in a hex editor (I used Hex Friend) the name libstdc++.6.0.9.dylib to libstXX++.6.0.9.dylib and save this file to your usr/lib/ folder


    2. Copied that lib to /usr/lib using the terminal app:
    sudo cp -p libstXX++.6.0.9.dylib /usr/lib

    3. Linked the lib to the name "6" as the original lib (terminal):
    cd /usr/lib
    ln -s libstXX++.6.0.9.dylib libstXX++.6.dylib


    4. Now it's time to patch the plugin. Go to the plugins folder (/library/audio/plug-ins/components) and right_click the .component (or .vst) you want to patch (in my case was LX480Complete x64.component). Choose the option "Open with -> Terminal".

    5. Then navigate to the folder Contents/MacOS and read the plugin dependencies (terminal)
    cd contents/MacOS
    otool -L <your plugin file> (in my case otool -L LX480Complete\ x64)

    NOTE: when the file name has space(s) like the above you should put a "\" character before each space


    The output of the otool command was the following (note that the default system libstdc is a dependency for the Plugin as shown in the output):

    LX480Complete x64:
    /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
    /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 152.0.0)
    /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 103.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.0.0)
    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)

    6. Let's patch it! Just execute the following command:
    install_name_tool -change /usr/lib/libstdc++.6.dylib /usr/lib/libstXX++.6.dylib LX480Complete\ x64

    7. Let's now confirm that the library was patched into the plugin (note that now it shows our "xx" library instead of the system "dc" library)!
    otool -L LX480Complete\ x64

    LX480Complete x64:
    /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
    /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 152.0.0)
    /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstXX++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 103.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.0.0)
    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 38.0.0)

    Now we should repeat this process in our DAW executable file (it also needs to be patched). In my case it's Studio One 2. Make a backup of your .app folder before beginning, right? :)

    8. Navigate to you DAW folder in Terminal:
    cd /applications/Studio\ One\ 2.app/

    9. Then navigate to the folder Contents/MacOS and read the plugin dependencies (terminal)
    cd contents/MacOS
    otool -L <your DAW executable> (in my case otool -L studioapp)


    The output of the otool command was the following (note that the default system libstdc is a dependency for the DAW as shown in the output):

    studioapp:

    /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.2.0)
    @executable_path/libipp.dylib (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclgui.framework/Versions/A/cclgui (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclsystem.framework/Versions/A/cclsystem (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/ccltext.framework/Versions/A/ccltext (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclnet.framework/Versions/A/cclnet (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclsecurity.framework/Versions/A/cclsecurity (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55179.13.0)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.19.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.18.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)


    10. Let's patch it! Just execute the following command:
    install_name_tool -change /usr/lib/libstdc++.6.dylib /usr/lib/libstXX++.6.dylib studioapp

    11. Let's confirm that the library was patched into the DAW (note that now it shows our "xx" library instead of the system "dc" library)!
    otool -L studioapp

    studioapp:

    /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.2.0)
    @executable_path/libipp.dylib (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclgui.framework/Versions/A/cclgui (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclsystem.framework/Versions/A/cclsystem (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/ccltext.framework/Versions/A/ccltext (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclnet.framework/Versions/A/cclnet (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/cclsecurity.framework/Versions/A/cclsecurity (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55179.13.0)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /usr/lib/libstXX++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.19.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.18.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)

    Now try it!

    This is not a very complicated procedure, but it will make you sweat if you are not used to work in the terminal app.

    The thing is that you need to edit the lib with an Hex editor and then execute several commands.

    If you think I should detail more I can do it.


    Cheers!
     
    • Like Like x 2
    • Winner Winner x 1
    • Interesting Interesting x 1
    • List
  14. Moogerfooger

    Moogerfooger Audiosexual

    Joined:
    Jun 11, 2016
    Messages:
    1,392
    Likes Received:
    755
    Does any of this fix the blank GUI issues with Altiverb in latest version of Catalina?
     
  15. grdh20

    grdh20 Platinum Record

    Joined:
    Jan 14, 2014
    Messages:
    656
    Likes Received:
    225
    I've given up on these older hacks with Catalina and forward. Bug Sur is even worse, and it will get worse with ARM macs. Mojave is really the last of the tweakers os.
     
    • Agree Agree x 4
    • Like Like x 1
    • Interesting Interesting x 1
    • List
  16. AgA

    AgA Newbie

    Joined:
    Nov 6, 2013
    Messages:
    36
    Likes Received:
    2
    mac os catalina libstdc

    Reboot into Recovery mode Restart and hold Cmd-R

    open terminal

    1.csrutil disable
    inter
    restart and go normal mode

    open terminal

    2.sudo mount -uw /

    3.sudo killall Finder

    Install.

    - Replace libstdc++.6.0.9 at /usr/lib/
    (no need to replace if you already did for other releases)

    all plug ins working fine but after it Safari get error and not work !! any chance get safari working ? thank you
     
    • Interesting Interesting x 1
    • List
  17. SmokerNzt

    SmokerNzt Rock Star

    Joined:
    Mar 2, 2013
    Messages:
    527
    Likes Received:
    320
    Replace libstdc++.6.0.9 at /usr/lib/ with the original one !

    Reboot into Recovery mode Restart and hold Cmd-R

    open terminal

    1.csrutil enable
    inter
    restart and go normal mode

    open terminal

    2.sudo unmount -uw /

    3.sudo killall Finder
     
    • Like Like x 1
    • Agree Agree x 1
    • Funny Funny x 1
    • List
  18. e-minor

    e-minor Platinum Record

    Joined:
    Jan 17, 2015
    Messages:
    531
    Likes Received:
    292
    Question...using the catalina and libstXX++ trick, the 32 bit plugins in catalina still won't work right?I'm still on Mojave as this was my understanding.
     
  19. Valnar

    Valnar Rock Star

    Joined:
    Feb 21, 2020
    Messages:
    744
    Likes Received:
    348
    maybe with a wrapper like 32lives or jbridge?
     
  20. AgA

    AgA Newbie

    Joined:
    Nov 6, 2013
    Messages:
    36
    Likes Received:
    2
    I have live32 its not work any more forget 32bit
    Or another way can install Mojave to add a new partition on your hard disk and switch between Mojave and Catalina
     
    Last edited: Jun 27, 2020
  21. 5teezo

    5teezo Audiosexual

    Joined:
    Feb 2, 2012
    Messages:
    2,062
    Likes Received:
    1,169
    Since I have a dual boot system, I just booted from High Sierra to be able to have write access to catalinas system folder and copied the dylib file over to Catalinas system folder. Catalina write protects the system folder pretty stromg so using another system to access catalinas file system worked for me.

    BTW, disabling System Integrity Protection alone is not enough to copy the file over.
     
    • Interesting Interesting x 2
    • List
Loading...
Similar Threads - Catalina libstXX++ trick Forum Date
Omnisphere install help mac catalina 10.15.7 Omnisphere Nov 2, 2023
Updating from Catalina to Big Sur or Monterey? Mac / Hackintosh Oct 3, 2023
Kontakt scripts catalina version question? Kontakt Jul 26, 2023
Updating from Catalina to Big Sur Mac / Hackintosh Dec 16, 2022
Ezdrummer and superior drummer 3 woes on Catalina Mac / Hackintosh Oct 9, 2022
Loading...