HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. stusmith
    3. Posts
    S
    • Profile
    • Following 2
    • Followers 0
    • Topics 2
    • Posts 16
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Converting Interface Components to Vector Graphics

      @d-healey BOOM!

      Thanks. 🙏

      I'm quite certain I'll be signing up to your Patreon at some point. Doing reasonably well by myself so far but I'm only scratching the surface.

      Appreciate all you are doing here!

      posted in Scripting
      S
      stusmith
    • RE: Converting Interface Components to Vector Graphics

      Sooo... @d-healey. Your videos are great. The knobs and sliders one was just what I needed to create my custom design and I ran with that and have one FX plugin basically done.

      However, when starting a new plugin, I discovered that the code seems to also affect the knobs and sliders in the built-in modules, see below. Making them kinda unusable. 😅

      I hadn't noticed before because I was only using Script FX.

      Screenshot 2025-01-11 at 10.48.44.png

      Is there a way to change the scripts to only affect interface elements in the plugin and not HISE as a whole?

      Here's the relevant bit of script (which works great for the actual plugin!):

      // Customise Dials
      laf.registerFunction("drawRotarySlider", function(g, obj)
      {
          var a = obj.area;
      
          // Calculate padding as a percentage of the dial size
          var padding = a[2] * 0.05; // % of the width
      
          // Background circle
          g.setColour(secondaryColour);
          g.fillEllipse([padding, padding, a[2] - padding * 2, a[3] - padding * 2]);
      
          // Define the angle range for the dial
          var startAngle = -2.35; // Start position in radians (~135 degrees)
          var endAngle = 2.35;    // End position in radians (~45 degrees)
      
          // Map valueNormalized (0-1) to the angle range
          var angle = startAngle + (endAngle - startAngle) * obj.valueNormalized;
      
          // Position the circle relative to the outer edge
          g.setColour(primaryColour);
          var radius = a[2] / 12; // Size of the circle
          var offset = a[2] / 3.5; // Distance from the center
          var centerX = a[2] / 2;
          var centerY = a[3] / 2;
      
          // Calculate position based on the angle and offset
          var x = centerX + Math.sin(angle) * offset - radius;
          var y = centerY - Math.cos(angle) * offset - radius;
      
          // Draw the indicator circle
          g.fillEllipse([x, y, radius * 2, radius * 2]);
      });
      
      
      
      
      
      // Customise Sliders
      laf.registerFunction("drawLinearSlider", function(g, obj)
      {
          var a = obj.area;
          g.fillAll(secondaryColour);
          g.setColour(primaryColour);
      
          if (obj.style == 2) // Horizontal
          {
              var w = a[2] / 21;
              var x = a[2] * obj.valueNormalized - w * obj.valueNormalized;
              g.fillRoundedRectangle([x, -1, w + 1, a[3] + 2], 0);     
          }
          else // Vertical
          {
              var h = a[3] / 21;
              var y = a[3] - a[3] * obj.valueNormalized - h + h * obj.valueNormalized;
              g.fillRoundedRectangle([0, y, a[2] + 2, h + 1], 0);     
          }
      });
      
      posted in Scripting
      S
      stusmith
    • RE: Let’s Build the “League of Newbies”

      Did the room thing go ahead...? I'm such a noob I don't know how to check if I'm in one, but I don't think I am. 😅

      posted in General Questions
      S
      stusmith
    • RE: Converting Interface Components to Vector Graphics

      @d-healey Ok so I'm following your "Look and Feel Knobs and Sliders" video and it's exactly what I needed... I was definitely overcomplicating things.

      Thanks! 🙏

      posted in Scripting
      S
      stusmith
    • RE: Converting Interface Components to Vector Graphics

      @d-healey Mhmm... gonna try from scratch based on one of your tuts. I had this idea that I wanted to remake everything with vectors because vectors = good... might have just been making life harder for myself instead.

      posted in Scripting
      S
      stusmith
    • RE: Converting Interface Components to Vector Graphics

      @d-healey Heheh... I CAN'T RELAX!

      JK. I'm chill, just keen. 🥰

      Quite pleased with the progress I've made so far but only just began with the vector interface stuff and clearly have much to learn. Wondering if I'm missing something obvious with these dials.

      posted in Scripting
      S
      stusmith
    • Converting Interface Components to Vector Graphics

      Hello! I have created a working effects plugin using the generic interface elements in the interface designer.

      Now I want to customise the GUI. I found and adapted some bits of code to generate vector dials that are kinda what I'm after but I run into issues trying to rewire things to replace the existing interface elements.

      Is there a best method for doing this kind of thing? I'm still very nooby so I'm almost certainly missing some basic knowledge here. 😅

      Here's a bit of code I'm using to render some dials but they only output values of 0-1 without any skewing to match the parameters I want to assign them to.

      Thanks for your invaluable help!

      inline function createCircularKnob(name, x, y)
      {
          local widget = Content.addPanel(name, x, y);
      
          Content.setPropertiesFromJSON(name, {
            "width": 50,
            "height": 50,
            "allowCallbacks": "Clicks, Hover & Dragging"
          });
      
          widget.setPaintRoutine(function(g)
          {
              // Draw the knob base
              g.setColour(Colours.black); // Solid color for knob
              g.fillEllipse([0, 0, this.getWidth(), this.getHeight()]);
      
              // Calculate pointer position
              var angle = this.getValue() * 1.5 * Math.PI + Math.PI * 0.75; // Start at 7.5 o'clock, end at 4.5 o'clock
              var centerX = this.getWidth() / 2;
              var centerY = this.getHeight() / 2;
              var radius = this.getWidth() * 0.4; // Pointer radius from center
      
              var pointerX = centerX + Math.cos(angle) * radius;
              var pointerY = centerY + Math.sin(angle) * radius;
      
              // Draw the pointer
              g.setColour(0xFFFFE092); // Pointer color (#FFE092 with full opacity)
              g.fillEllipse([pointerX - 3, pointerY - 3, 6, 6]); // Small circular pointer
          });
      
          widget.setMouseCallback(function(event)
          {
              if(event.clicked)
              {
                  this.data.mouseDownValue = this.getValue();
              }
              else if (event.drag)
              {
                  var distance = event.dragX - event.dragY;
                  
                  // Adjust sensitivity
                  var normalisedDistance = distance / 200.0; 
                  
                  // Calculate and clamp the new value
                  var newValue = Math.range(this.data.mouseDownValue + normalisedDistance, 0.0, 1.0);
      
                  this.setValue(newValue);
                  this.changed();
                  this.repaintImmediately();
              }
          });
      
          return widget;
      }
      
      // Render Dials
      const var HiQ_Dial = createCircularKnob("HiQ_Dial", 130, 220);
      const var LoQ_Dial = createCircularKnob("LoQ_Dial", 190, 220);
      const var HiCut_Dial = createCircularKnob("HiCut_Dial", 250, 220);
      const var LoCut_Dial = createCircularKnob("LoCut_Dial", 310, 220);
      
      
      posted in Scripting
      S
      stusmith
    • RE: Let’s Build the “League of Newbies”

      I'd like to be added to the chat! Thanks! 🙏

      posted in General Questions
      S
      stusmith
    • RE: Noob Problems - Error Compiling Plugins

      @d-healey Forgot to come back and thank you for the reply!

      Since fixing the IPP thing I've not had any problems spitting out working plugins on the Macbook. Great fun. I've worked through the first synth tutorial and that raised some questions that I may post later but I got the right results.

      I definitely have some other things to learn by nyself before I start bothering the forums again but I'm pretty sure I'll be back soon. ❤️

      posted in General Questions
      S
      stusmith
    • RE: Noob Problems - Error Compiling Plugins

      To conclude. I hadn't installed the Intel IPP library because, a) it wasn't specified as mandatory, and b) the link in the install guide is an exe and I'm on mac.

      Because the "Use IPP" box was checked in the settings it was failing at this stage when compiling. Unchecking it allowed the compiling process to complete.

      posted in General Questions
      S
      stusmith
    • RE: Noob Problems - Error Compiling Plugins

      Ooooh! I compiled a working plugin!

      I feel this IPP thing may return to bite me in the ass so I'll still look for a solution to that but for now I'm super happy I got something that works in my DAW. 🥳

      posted in General Questions
      S
      stusmith
    • RE: Noob Problems - Error Compiling Plugins

      @Morphoice This is where my noobness will shine through... I have no idea how to use github.

      How do I find the latest dev branch?

      Meanwhile, I also bothered ChatGPT for some advice and I think I've got a step further. I didn't have IPP installed and there's an option to not use it. I've unchecked that in a test project and it's actually compiled!

      Might not be a great fix but seemed to work for now. Gonna try a more complex project.

      posted in General Questions
      S
      stusmith
    • RE: Noob Problems - Error Compiling Plugins

      @Morphoice

      v4.1.0

      from here: https://github.com/christophhart/HISE

      posted in General Questions
      S
      stusmith
    • RE: Noob Problems - Error Compiling Plugins

      I've been casually clicking OK on this every time... maybe it's related.

      Screenshot 2024-12-31 at 10.53.24.png

      posted in General Questions
      S
      stusmith
    • RE: Noob Problems - Error Compiling Plugins

      @Morphoice Thanks for the welcome!

      I did have a go at this, creating new projects with nothing in them or just a simple generator. I also tried no spaces in the project name, just in case.

      Every time there's the same kind of error message, though it seems to appear in a different place. 😅

      posted in General Questions
      S
      stusmith
    • Noob Problems - Error Compiling Plugins

      Hello! I have just started using HISE and have managed to find my way around ok so far within the software but I have been unable to actually compile a plugin.

      I'm using a Macbook Pro M1 with Sequoa 15.2 and the HISE build from GIthub. I have Xcode and Projucer installed along with the SDK stuff as per the Export Wizard. I am very much not an expert with all this coding and compiling stuff and feel I got lucky so far getting things up and running!

      Whenever I try to Export as an Instrument or FX plugin I get a terminal popup which always includes a ** BUILD FAILED ** line halfway through and I'm not sure what to do next.

      I've searched the web for solutions and have not found anything that works. I think the time for hand-holding has come. All help is massively appreciated. I have much to learn. ❤️

      eg:

      Last login: Tue Dec 31 10:16:25 on ttys003
      /Users/stusmith/Documents/HISE\ Projects/Test\ Plugin/Binaries/batchCompileOSX ; exit;
      stusmith@MacBookPro-2 ~ % /Users/stusmith/Documents/HISE\ Projects/Test\ Plugin/Binaries/batchCompileOSX ; exit;
      Re-saving file: /Users/stusmith/Documents/HISE Projects/Test Plugin/Binaries/AutogeneratedProject.jucer
      Finished saving: Visual Studio 2017
      Finished saving: Xcode (macOS)
      Finished saving: Xcode (iOS)
      Finished saving: Linux Makefile
      Compiling Instrument plugin Test Plugin ...
          Building targets in manual order is deprecated - check "Parallelize build for command-line builds" in the project editor, or set DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING in any of the targets in the current build to suppress this warning
      ▸ Compiling include_melatonin_blur.cpp
      ▸ Compiling include_juce_product_unlocking.mm
      ▸ Compiling include_juce_gui_extra.mm
      ▸ Compiling include_juce_gui_basics.mm
      ▸ Compiling include_juce_opengl.mm
      ▸ Compiling include_juce_graphics.mm
      ▸ Compiling include_juce_events.mm
      ▸ Compiling include_juce_osc.cpp
      ▸ Compiling include_juce_dsp.mm
      ▸ Compiling include_juce_data_structures.mm
      ▸ Compiling include_juce_cryptography.mm
      ▸ Compiling include_juce_core.mm
      ▸ Compiling include_juce_audio_utils.mm
      ▸ Compiling include_juce_audio_processors.mm
      ▸ Compiling include_juce_audio_plugin_client_utils.cpp
      ▸ Compiling include_juce_audio_plugin_client_VST_utils.mm
      ▸ Compiling include_juce_audio_formats.mm
      ** BUILD FAILED **
      
      
      The following build commands failed:
      	CompileC /Users/stusmith/Documents/HISE\ Projects/Test\ Plugin/Binaries/Builds/MacOSX/build/Test\ Plugin.build/Release/Test\ Plugin\ -\ Shared\ Code.build/Objects-normal/x86_64/include_hi_tools_02.o /Users/stusmith/Documents/HISE\ Projects/Test\ Plugin/Binaries/JuceLibraryCode/include_hi_tools_02.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Test Plugin - Shared Code' from project 'Test Plugin')
      (1 failure)
      ▸ Compiling include_juce_audio_devices.mm
      ▸ Compiling include_juce_audio_basics.mm
      ▸ Compiling include_hi_zstd_3.mm
      ▸ Compiling include_hi_zstd_2.mm
      ▸ Compiling include_hi_zstd_1.mm
      ▸ Compiling include_hi_tools_02.cpp
      ▸ Compiling include_hi_tools_01.cpp
      ▸ Compiling include_hi_streaming.cpp
      ▸ Compiling include_hi_snex_62.cpp
      ▸ Compiling include_hi_snex_61.c
          Build Carbon Resources build phases are no longer supported.  Rez source files should be moved to the Copy Bundle Resources build phase. (in target 'Test Plugin - AU' from project 'Test Plugin')
      
      Saving session...
      ...copying shared history...
      ...saving history...truncating history files...
      ...completed.
      
      [Process completed]
      
      
      
      posted in General Questions
      S
      stusmith