HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. orange
    3. Best
    • Profile
    • Following 2
    • Followers 12
    • Topics 139
    • Posts 1,897
    • Groups 1

    Posts

    Recent Best Controversial
    • LAF Collection for everyone

      Hello Hise family,

      Several friends asked me for some LAF examples lately. I think it's a good idea to share them here. If you'd like to share yor LAF stuff, please post them here. Let's make a great LAF library together :party_popper:

      Here is the GitHub link for this collection: https://github.com/christoph-hart/hise_laf_library/blob/main/Examples.md


      The below one is the first kit that uses Text Sliders, Arc Sliders, Gradient colored custom vector buttons.

      NOTE: The Gandalf icon is just for an example to show how to use custom vector graphics in the LAF buttons, so make sure the licensing terms before using this icon. You can replace it with your icons.

      When I find some time, I will update this post with new kits.

      Screen Shot 2022-10-30 at 09.14.53.png


      This cool LAF Table comes from @Fortune

      alt text


      Knob Peak Meter by @Steve-Mohican

      PeakMeter.gif


      Shaded SliderPacks by @DanH

      SSSP.gif


      Skeuomorphic Knob by @Straticah

      alt text


      3D Big & Small Knobs by @Soundavid

      alt text


      Rotating Tape Reel icon Knobs by @Fortune

      alt text


      Horizontal Linear Slider with Rounded Corners by @ulrik

      alt text

      posted in Presets / Scripts / Ideas
      orangeO
      orange
    • RE: The world of HISE

      @MikeB

      Beyhan, 38, Turkey.

      Chemical engineer MSc, Mixing engineer, Graphic designer, Music Producer (Electronic Music & Trailer Soundtracks)

      posted in General Questions
      orangeO
      orange
    • RE: The definitive feature request & bug fix roadmap

      Feature request

      It's actually compatibility request. Native Support for Apple ARM cpu computers.

      Basically Done - it's not 100% stable, but I can compile a few example projects for M1.

      posted in Feature Requests
      orangeO
      orange
    • Multi Instance DAW Crash Issue Guide

      Hi everyone

      As you might know from the forum, in some plugins, there are multi-instance crash issues in all DAWs but mostly Cubase, Reaper, Studio One.

      If the user inserts one plugin instance in the DAW project, it will be ok. But if the user inserts multi plugin instances (like 5 to 10), in some machines, the DAW project can not be opened again (no problem while inserting and using in the DAW project by the way, the only problem is about re-opening the DAW project again) and this is a nightmare for a user/customer also for you too as the plugin developer :)

      These multi instance crashes can be inverse proportion. For example, DAW project may crash with only 3 instances of your plugin. But it may not crash with 50 instances :) Or vice versa. It's all about moodycamels queue issue with Hise.

      Of course this issue is up to your code optimization. If the communication queue between audio thread and UI is full, that means your plugin is sending too many messages. These too many messages can cause a congestion / bottleneck and then the crash happens finally. The DAW project can’t be opened again!

      I’ve been investigating this issue (also acording to the users’ feedbacks of course) for a while and I just wanted to share my observations with you. These are my experiments and observations. If you find out anything else please wellcome and share.

      Please note that “Multi instance DAW Crash Issue” has no only one cause. This issue is the sum of various situations. If you will be careful about these causes, the crash issue can be reduced or even fixed. The main goal is making a very light cpu / ram user plugin. So, possible causes are described below:


      Wrong If Statement usage

      One cause is using too much sequential if statements in a wrong way. Just a quick example for wrong usage:

      if (value == 1)
      {
      Do something
      }
      
      if (value == 2)
      {
      Do something
      }
      
      if (value == 3)
      {
      Do something
      }
      
      if (value == 4)
      {
      Do something
      }
      

      In above code, since each if statement will be checked and that will cause too much message during the initialization. Instead of the sequential if statements, this implementation should be done like that:

      if (value == 1)
      {
      Do something
      }
      
      else if (value == 2)
      {
      Do something
      }
      
      else if (value == 3)
      {
      Do something
      }
      
      else
      {
      Do something
      }
      

      Now it is correct. With using else if, when the condition complies it will exit the statement and each if statement won't be checked. This will massively reduce the clog and the plugin will be much more tranquiled, relaxed :) Alternatively you can use switch / case statements for this purpose too.


      setAttribute:
      Another cause is the amount of used setAttribute APIs. More setAttribute you use, it means the plugin probably will crash more likely in multi-instances. (Remember sending too many messages). Of course you will need to use it in most cases. But if there is a case that you can live without using even one line, try not to use it. Do not over use setAttribute in your code and be careful while you use it especially in an array usage.


      Shared Functions:
      Shared functions have been used in various places in the same plugin. If these functions have lot's of setAttribute APIs, and if you used multiple shared functions in one GUI element (for example Link Button), the plugin tends to crash in multiple instances of course because of the bottleneck on the initialization.


      Image size:
      Total used image size is very important too. Please note that, even if you compressed images and the size is reduced; it doesn’t matters! On the exported plugins, the image will take it’s normal place inside the memory like it’s not compressed, as big sized bitmaps. So be careful about image dimensions and formats. For example if your background image doesn’t have transpency, there is no need to use it as.png file. Instead, use as jpg. Because .png files can be 3 or 4 times bigger than jpg files. Using jpg files will end up big bitmaps too but at least you will not get "Heap is Out of Space" error while compilng.

      Also avoid using big pixel sizes. For example if your GUI canvas size is 1000 x 600 pixels, there is no need to use 5000x3000 pixels :) Try to sharp the pixel sizes too, as much as you can. For knobs, calculate the optimum frame size for your GUI mesaurements and then prepare the imagestrip acording to this size. Don’t use oversized image strips. We need to make a very light cpu and ram sucker plugin :) Acording to my observations, going above the 15MB total image size, the multi instance crash possibility will be much more higher :)


      Deferring Callbacks:
      It’s not the ultimate cure for the crash issue but it can be a big improvement for some situations. Search forum for the usage of deferred callbacks. Also if you can reproduce the crash issue in your system, try using and not using plugin exports individually. Observe the impact, if deferring callbacks makes the improvement, use it. Also multi instance DAW testing is a good idea, save multi plugin opened DAW sessions individually (like 5 instances, 10 instances or 30 instances) and try to reopen them :)


      Timer Objects:
      Over used Timer objects can cause problems too. Especially very short times like 10ms, 20ms….etc.


      Simple Serial Copy Protection:
      If you are using thousands of long serial number batches in your plugin, since these thousands of serial numbers will be checked in every initialization, it can cause crashes. Instead of using thousands of lines for the serial copy protection, use the formula technique for serial number usage. Or make the serial check once a day.


      OpenGL

      If your plugin uses lot's of live analysis, vector based animations...etc, using OpenGL will be a good improvement. But if your plugin doesn't use stuff like that, it will has no impact, in some conditions also negative impact like black screen, not loading the plugin, extra crashes.... etc.

      posted in General Questions
      orangeO
      orange
    • RE: Notarisation for dummies

      @trillbilly

      Ok to recap all the things, the below process is the way I use. Be careful with the spaces and other chars with these codes:


      PLUGIN DISTRIBUTION PROCESS FOR macOS

      1) Export the plugin from HISE


      2) Sign the plugin: In the below example, my plugin folder is /Volumes/UnsignedPlugins/ For plugin signing, you need your Developer ID Application Certificate. Below code if for .vst, and similarly it will be same for vst3 and au plugins, only the file extension will be changed. So the code will be like this:

      codesign --force -s "Developer ID Application: John Doe" "/Volumes/UnsignedPlugins/MyPlugin.vst"
      

      This code is for checking the plugin signing process if it is successful or not:

      pkgutil --check-signature "/Volumes/UnsignedPlugins/MyPlugin.vst"
      

      3) Create a .pkg installer with WhiteBox Packages (without adding the Developer ID Installer Certificate). In this example the installer name is MyPlugin_Installer_v1.0.0.pkg


      4) Sign the installer: My unsigned installer folder is /Volumes/UnsignedInstallers/. Put the created .pkg installer (in step 3) into this folder. Also, my signed installer folder is /Volumes/SignedInstallers/. Below code will create a new signed installer file which will be placed to signed installer folder. For the installer signing, you also need your Developer ID Installer Certificate So the code will be like this:

      productsign --sign "Developer ID Installer: John Doe" "/Volumes/UnsignedInstallers/MyPlugin_Installer_v1.0.0.pkg" "/Volumes/SignedInstallers/MyPlugin_Installer_v1.0.0.pkg"
      

      This code is for checking the installer signing process if it is successful or not:

      pkgutil --check-signature "/Volumes/SignedInstallers/MyPlugin_Installer_v1.0.0.pkg"
      

      5) Notarize the installer: For this, you'll need an app specific password. In the below notarization code, the app specific password is (for example) abcd-efgh-ijkl-mnop You can use one password for all of your products, or you can use individual. But be aware that there is a limit for app specific passwords, so IMO less is better. The notarization code will be this:

      xcrun altool --notarize-app -f "/Volumes/SignedInstallers/MyPlugin_Installer_v1.0.0.pkg" --primary-bundle-id com.myplugininstaller.pkg --username "johndoe@gmail.com" --password "abcd-efgh-ijkl-mnop"
      

      After applying the notarization code to the Terminal, wait for the upload process is done. After the upload finished, wait for the Apple email for the "notarization is successful" notification. After the uploading, mostly it takes with in 15 minutes. rarely it can take 4-5 hours but it is so uncommon. If you haven't got the email yet, wait for it. Don't try to re-notarize, the Apple email will come soon or later. Sequential notarization attempts cause fucked up failures.


      6) Time Staple the Installer: After the "notarization is successful" email, the last step comes, Time Stamp. The code is this:

      xcrun stapler staple "/Volumes/SignedInstallers/MyPlugin_Installer_v1.0.0.pkg"
      

      That's it :)

      Also, after the Time Stamp, you can check the notarization status with below code. If you get "status: Accepted", then that means the notarization process is successful:

      spctl -a -vvv -t install "/Volumes/SignedInstallers/MyPlugin_Installer_v1.0.0.pkg"
      
      posted in General Questions
      orangeO
      orange
    • RE: Great LAF Examples anyone?

      This is not finished yet, all UI is Custom LAF & Paint Routines.

      Screen Shot 2022-10-29 at 15.51.04.png

      posted in General Questions
      orangeO
      orange
    • RE: HISE 4.0 - Wish List - Add yours.

      @Christoph-Hart

      The famous and long time-requested "Expandable UI" feature by many people.

      Link Preview Image
      Expandable GUI

      Please someone say this is possible!

      favicon

      Forum (forum.hise.audio)

      posted in Feature Requests
      orangeO
      orange
    • RE: The definitive feature request & bug fix roadmap

      Feature Request:

      HQ Wavetable Synthesis with audio import function and similar (LAF adjustable) display below:

      alt text

      posted in Feature Requests
      orangeO
      orange
    • RE: The definitive feature request & bug fix roadmap

      Bug Report

      Write Automation Issue on AU Plugins: Write automation doesn't work in exported AU plugins. Read Automation works. (only AU plugins)

      posted in Feature Requests
      orangeO
      orange
    • RE: Free HISE Filmstrips! Analog Knob-Kit 01 by Noisehead

      Yes there are lots of choices, the only important thing is the way to use these tools. I use Cinema 4D with Octane Render, PS, AI & AE combination.

      3 point lighting usually doesn't enough for me, in the end there are more than 10 light sources (some of them are lighting panels with small amounts) and also a good HDR image for the surface reflections.

      There is an option for the surface shadows (Shadow Catcher) in Octane Render which is an easy way to make Matte Shadow renders.

      SC---BG2__.jpg

      Eq4.jpg

      posted in Presets / Scripts / Ideas
      orangeO
      orange
    • Useful Snippets

      Hi everyone

      I want to share some snippets that might be useful for you. I plan to share some stuff periodically. If you want to share yours, you can share here too, so all of the useful stuff will be in one place.

      This is the first one, there are 57 vectorized icons (Bootstrap 3 Glyphicons) that I converted to the vectors in Hise, you can use them in your plugins ;)

      NOTE: Since the snippet has too many characters to write here, I am adding a text file below.

      Cheers ;)

      1 - Vector Icon Set:

      alt text

      1_Vector_Icon Set.txt

      posted in Presets / Scripts / Ideas
      orangeO
      orange
    • RE: Is it possible to compile scriptnode network?

      @djoe Yes it is working. I've shot a "How to compile DSP Network" video with the current develop branch. Here you go :) By the way, make sure that you have a clean Hise build.

      posted in General Questions
      orangeO
      orange
    • RE: How to promote plugins?

      @steve-mohican You've got several options:

      • The first channel is social media marketing (Instagram, Facebook, and YouTube) as @dustbro mentioned.

      • The second channel is email marketing. Still today it is very effective and all of the big brands do it continuously. But to do it, you need user emails, do not buy any bulk email addresses. The users should be subscribed to your newsletter email list themselves. For collecting emails, I suggest giving away a free plugin. This way you can collect audio industry-specific user emails.

      • Another channel is forum websites. I highly suggest GearSpace, KvR, vi-control...etc. But be careful on this, forum websites (especially GearSpace) can be very dangerous for a new company because you can get lots of noise, arguments, attacks, even if your product is good :D But if the GearSpace audience accept your product, then you're ready to go everywhere ;)

      • You can contact Audio Industry Blogs such as Rekkerd, Bedroom Producers Blog...etc to publish your product release news. Also, you can publish one news per week in the KvR blog for free!

      • I also suggest resellers (ADSR Sounds, APD, Producer Spot, Plugin Boutique...) Because they have thousands of existent customer database and the resellers can reach to them for you with a commission price.

      posted in General Questions
      orangeO
      orange
    • Woocommerce linked licensing system for your plugins

      Hi everyone

      We've been working on a WooCommerce linked licensing system for months. I can definately say that you can make an efficient online licening system with Hise. We've built even a License Manager application, and of course integrated the same system to the plugins too.

      Thanks go to @ustk for helping me about this system, he helped me to build a great solution for this 👍 I really appreciate that.

      Here is a working example video with this system: https://noiseash.com/knowledge-base/activating-plugins/

      I just wanted you to know that you can make the same thing including license activation/deactivation process with below requirments:

      • Install the JWT Authentication for WP REST API to your Wordpress Woocommerce website. This is a secure authentication method (No need to embed Woocommerce API keys to your software anymore).

      • You need to install Woocommerce License Manager plugin to your Wordpress Woocommerce website. That plugin is a go-to license plugin for Hise developers. It is a highly recommended, great and fast plugin that makes everything possible with lowest server requests. It's using JWT Auth system, that means no need to embed API keys to your exported plugin. This makes this plugin very secure and fast. With just one request, you can grab all of the user licenses which is a great feature! With Woocommerce REST API, you'd need to do it at least 2 requests, which isn't an economic way for the hosting server cpu. But with Woocommerce License Manager you can do it easily and much more securely.

      If you install both on your Wordpress Woocommerce website, then you're ready to go with using Hise's server API and Woocommerce License Manager API in your plugins to authorize your products. You'll be able to get:

      • Automatic license creation with the purchase
      • Activate / Deactivate Licenses with Machine ID (max. activation number can be assigned)
      • Get Purchased Products, Get License Meta Data,
      • Register License that were sold by resellers
      • Remove the license from the customer account
      • You can combine this with subscription based selling via using a Woocommerce Subscription plugin
      • And other ton's of features.

      API documentation is here: https://firassaidi.com/docs/documentation-woocommerce-license-manager/api-version-3/authentication-jwt/
      alt text

      posted in General Questions
      orangeO
      orange
    • RE: Merry Christmas

      Merry Christmas! Happy New year... 🎄 :mrs_claus_light_skin_tone:

      posted in General Questions
      orangeO
      orange
    • RE: [Feature Request] GUI Scaling with window handle?

      @tomekslesicki said in [Feature Request] GUI Scaling with window handle?:

      @Christoph-Hart I just tried this and it seems like the code doesn't seem to work. Of course I’m testing on a compiled plugin. Did anyone get it working?

      Do you mean ZoomPanel? Yes it is working on the compiled plugin here. Make sure that you've allowed the callbacks on the ZoomPanel.

      Zoom.gif

      posted in Feature Requests
      orangeO
      orange
    • RE: The definitive feature request & bug fix roadmap

      Bug Report

      Latency Issue on FL Studio: When Delay Compensation is used, there is a big latency only in FL Studio. (Other DAWs are fine with delay compensation)

      posted in Feature Requests
      orangeO
      orange
    • RE: Dear Hise Community

      Merry Christmas to everyone

      alt text

      posted in Presets / Scripts / Ideas
      orangeO
      orange
    • RE: Thank you Christoph

      Christoph touched the lives of many developers in this forum with Hise, and helped many of us realize our dreams. I personally owe him a lot for helping my dreams come true.

      In addition, a wonderful environment has been created by working hand in hand with helpful and valuable developer friends in this beautiful forum he has established.

      We all truly owe him a lot. God bless you @Christoph-Hart

      posted in Blog Entries
      orangeO
      orange
    • RE: Let’s Build the “League of Newbies”

      @Mighty23 Good idea.

      But does it have to be a group chat?

      I think sharing and collaboration can be done on a forum category or topic (there is even a category like "SNIPPET WAITING ROOM").

      This way, more people can come and benefit from it in the future.

      posted in General Questions
      orangeO
      orange