HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. fellowfinch
    3. Posts
    F
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 21
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: I'll just leave this here...

      @obolig Sadly no :/

      I just decided to scrap it and focus on other stuff. If anyone finds a possible solution so animation would work on Standalone, AU on Mac etc please let us know :)

      As far as I understand the only shaders that would work would be Metal, so a converter would be an option here. MoltenGL is a bit pricey but allegedly it can convert openGL stuff to Metal quite seamlessly.

      posted in General Questions
      F
      fellowfinch
    • RE: Code a midi cc direct to a slider?

      @d-healey omg...

      this is way easier...apologies for such dumb questions, I guess I complicate too much for pretty straight to the point solutions.

      I assume this can be changed even by the user?

      posted in General Questions
      F
      fellowfinch
    • RE: Code a midi cc direct to a slider?

      @d-healey good question...

      too fresh out of the oven when it comes to HISE work I'm afraid, so probably didnt even realize that was the way too go. Will look into using modulators next.
      thank you!

      posted in General Questions
      F
      fellowfinch
    • RE: Code a midi cc direct to a slider?

      Apologies for reviving an old topic;

      Whenever I hit a problem or a feature implementation I like to dig through the forum. I want to code a midi CC to a filter's cutoff running through my Sampler.

      To my understanding it should be done like this?

      I put this in my MIDI scrip editor for Sampler1 (onController section)

      function onController()
      {
          if(Message.getControllerNumber() == 1) //using modulation wheel
          {
              knbFiltr.setValueNormalized(Message.getControllerValue() / 127.0);
          }
      }
      

      on my main Init page for the UserInterface

      I've put this

      const var knbFiltr = Content.getComponent("knbFiltr");
      

      referencing my cutoff Filter knob.

      ...reading @d-healey reply I also put in the init of the script processor

      const var knbFiltr = Content.addControl()
      

      trying to compile it states function does not exist.
      I'm sure I missed something dumb here :) still learning...

      posted in General Questions
      F
      fellowfinch
    • RE: MIDI Routing - Floating Tile Keyboard Retrigering (strategy help)

      @d-healey said in MIDI Routing - Floating Tile Keyboard Retrigering (strategy help):

      Message.ignoreEvent(true);

      This works perfectly! Thank you @d-healey

      posted in Scripting
      F
      fellowfinch
    • RE: MIDI Routing - Floating Tile Keyboard Retrigering (strategy help)

      @d-healey said in MIDI Routing - Floating Tile Keyboard Retrigering (strategy help):

      No idea, is that what you've done?

      yeah, I'm using a button connected to the MIDI Processor to trigger a note on event, kickstarting the Audio Loop Player. Should I done it a bit differently? :)

      const var processorButton = Content.addButton("processorButton", 0, 0);
      const var AudioLoopPlayer1 = Synth.getChildSynth("Audio Loop Player1");
       
      reg eventId; 
       
      processorButton.setControlCallback(playAtmo);
       
      inline function playAtmo(component, value)
      {
      	if (value)
      	{
      		eventId = Synth.playNote(64, 100);
      	}
      	else 
      		
      		Synth.noteOffByEventId(eventId);
      };
      

      hope this is ok?

      @d-healey said in MIDI Routing - Floating Tile Keyboard Retrigering (strategy help):

      This is done using Message.ignoreEvent(true);

      great! will try it with this tomorrow!

      posted in Scripting
      F
      fellowfinch
    • RE: MIDI Routing - Floating Tile Keyboard Retrigering (strategy help)

      @d-healey said in MIDI Routing - Floating Tile Keyboard Retrigering (strategy help):

      it's on note on and on note off callback's you ignore the incoming events.

      thank you as always @d-healey! I assume this is done by using the following command?

      Settings.toggleMidiInput( String midiInputName, bool enableInput)
      

      however, aren't the Audio Loop Players also triggered by MIDI note 64? - which is connected to the button?

      posted in Scripting
      F
      fellowfinch
    • MIDI Routing - Floating Tile Keyboard Retrigering (strategy help)

      Have a rather simple setup,

      • sample player for instrument samples "controlled" by floating tile keyboard
      • two audio loop players for atmos controlled by two buttons

      Whenever I play through the floating tile keyboard it also retriggers the Audio Loop Player. Both of the Audio Loop Players are connected via Buttons on the main interface and I use a MIDI Processor to specifically trigger those two players.

      I assume I would need to MIDI map the keyboard just to the sampler but am thinking what would be the best way to do it? Through MIDI Processor? Channel selection?

      Any help greatly appreciated!

      posted in Scripting
      F
      fellowfinch
    • RE: Trigger Audio Loop Player with a Button

      @fellowfinch

      edit:

      needed to add this in inteface

      Button1.setControlCallback(onControl);
      

      and this in MIDI processor

      processorButton.setControlCallback(playAtmo);
      

      works fine now! however, I still get MIDI keyboard (floating tile) that plays the audio loop. What would be the best way to have the keyboard fltile be hooked only to the main sampler?

      posted in General Questions
      F
      fellowfinch
    • RE: Trigger Audio Loop Player with a Button

      @d-healey

      thank you for your help, however I'm still struggling a bit to understand what would be the best practice here.

      Looking at the Scripting practices I think I understand the gist, comments added to showcase my though process

      //button atmos
      const var Button1 = Content.addButton("Button1", 0, 0);  // call for button to be added to the main script
      const var MIDIprocessor = Synth.getMidiProcessor("Midi Processor"); //calling a MIDI processor to be added
      
      Synth.deferCallbacks("true"); // need this to to run in the message thread instead of audio thread?
      
      
      ///call for a function
      function onControl(number, value)
      {
      	MidiProcessor.setAttribute(0,value); //calling our Midi processor
      }
      
      
      

      after this, jump into my MIDI processor & Script Processor, I have added this

       const var processorButton = Content.addButton("processorButton", 0, 0); // adds a button to the MIDI processor
       const var AudioLoopPlayer1 = Synth.getChildSynth("Audio Loop Player1"); //connects to my Audio Loop Player?
       
       reg eventId; 
       
      inline function playAtmo(component, value) //function to play the atmo button
      {
      	if (value)
      	{
      		eventId = Synth.playNote(64, 100); 
      	}
      	else 
      		
      		Synth.noteOffByEventId(eventId);
      };
      

      and then back to my interface with

      Content.getComponent("processorButton");
      

      I can see the button in both interface and MIDI processor but cannot get them linked up or to play a note. I'm still trying to wrap my head around how exactly to set up this trigger :) I'm assuming that I need to somehow tell my MIDI processor to trigger the button for the atmo.

      posted in General Questions
      F
      fellowfinch
    • RE: Trigger Audio Loop Player with a Button

      apologies for reviving this old topic but I have a similar question. Basically I'm trying to do the same, have two buttons connected to Audio Loop Players for additional ambience.

      I managed to trigger one of the Loops by using a button and some scripting however I still trigger the audio loop when playing the keyboard. I scripted it this way;

      //button atmos
      const var Button1 = Content.getComponent("Button1");
      const var AudioLoopPlayer1 = Synth.getChildSynth("Audio Loop Player1");
      
      
      reg eventId; 
      
      inline function PlayAtmo(component, value)
      {
      	if (value)
      	{
      		eventId = Synth.playNote(64, 100);
      	}
      	else 
      		
      		Synth.noteOffByEventId(eventId);
      };
      
      Content.getComponent("Button1").setControlCallback(PlayAtmo);
      

      I assume this is correct? And when triggering the button I can loop it normally, however when there is a note off event I can still hear it if I play the keyboard on the user interface floating Point. I see that @d-healey mentioned that maybe this script should be put into the loop player itself, but am puzzled what exactly should go into the MIDI script processor that is hooked up to the Audio Loop Player, or better yet how exactly do these interconnect (what needs to be in the main init script, and what in the midi script processor)?

      posted in General Questions
      F
      fellowfinch
    • RE: I'll just leave this here...

      @aaronventure

      I have checked and indeed my browser supports webGL, but wouldn't this be a tad bad since the end users might not get the shader graphics due to them being on different systems?

      I assume you can port openGL shaders to Metal shaders but HISE may not support that? Or am I thinking wrongly here...

      posted in General Questions
      F
      fellowfinch
    • RE: I'll just leave this here...

      @d-healey

      ahaaa, thank you for clarifying! I assume HISE does not support anything via Metal? Meaning I'm out of the lovely shaders for my plugs:anxious_face_with_sweat:

      posted in General Questions
      F
      fellowfinch
    • RE: I'll just leave this here...

      @aaronventure said in I'll just leave this here...:

      There's a FloatingTile component with ContentType = CustomSettings, and one of them is a switch for enabling open GL. can you add that to your plugin, compile it, see if that works.

      Added this tile and checked if openGL is set to "true", compiled it and it did not work. Bummer :/

      @Lindon said in I'll just leave this here...:

      @fellowfinch do you have a graphics card that will render OpenGL?

      I'm running an M1 Mac 14", I think it should handle the shaders

      here are the specs
      https://support.apple.com/kb/SP854?viewlocale=en_AM&locale=en_AM

      Is there any chance of ziping the project file here so anyone can try running it at their end and seeing if it works and maybe it's just my computer or? We can even do it through DM, if anyone has the willpower and time to help me pinpoint the problem.

      posted in General Questions
      F
      fellowfinch
    • RE: I'll just leave this here...

      @aaronventure said in I'll just leave this here...:

      Settings.setEnableOpenGL(true)

      Content.makeFrontInterface(850, 420);
      
      Settings.setEnableOpenGL(true);
      
      //our sampler
      const var Sampler1 = Synth.getChildSynth("Sampler1");
      
      //sample maps array
      const var SampleMaps = Sampler.getSampleMapList();
      const var ComboBox1 = Content.getComponent("ComboBox1");
      
      //combo box
      ComboBox1.set("items", SampleMaps.join("\n"));
      
      
      inline function onComboBox1Control(component, value)
      {
      	Sampler1.asSampler().loadSampleMap(SampleMaps[value-1]);
      };
      
      Content.getComponent("ComboBox1").setControlCallback(onComboBox1Control);
      
      //image input
      
      const var pnlBCK = Content.getComponent("pnlBCK");
      
      pnlBCK.loadImage("{PROJECT_FOLDER}test.png", "bck");
      
      pnlBCK.setPaintRoutine(function(g)
      {
      	var a = this.getLocalBounds(0);
      	
      	g.drawImage("bck", a, 0, 0);
      
      	
      });
      
      
      //shaders
      //static shader
      const var Panel1 = Content.getComponent("Panel1");
      const var shader = Content.createShader("shader");
      
      Panel1.setPaintRoutine(function(g)
      {
      	g.applyShader(shader, [0, 0, this.getWidth(), this.getHeight()]);
      });
      //earth shader
      const var Panel2 = Content.getComponent("Panel2");
      const var shader2 = Content.createShader("shader2");
      
      Panel2.setPaintRoutine(function(g)
      {
      	g.applyShader(shader2, [0, 0, this.getWidth(), this.getHeight()]);
      });
      
      
      

      ran this and compiled ok, the generalSettings file also has a "1", alas shader is not seen in the exported file. I can interact and manipulate it normally inside of HISE though...

      posted in General Questions
      F
      fellowfinch
    • RE: I'll just leave this here...

      @aaronventure

      aha, I though you were referring to the folder where my project is stored.

      I went into the path
      /Users/YOURNAME/Library/Application Support/HISE/`

      to the HISE General Settings and changed the "0" to 1, like so;

      <?xml version="1.0" encoding="UTF-8"?>
      
      <GLOBAL_SETTINGS DISK_MODE="0" SCALE_FACTOR="1.0" VOICE_AMOUNT_MULTIPLIER="2"
                       GLOBAL_BPM="-1.0" MIDI_CHANNELS="1" OPEN_GL="1"/>
      

      Sadly, when I tried exporting to standalone the shader files did not appear. Even though I can see that there is an include_juce_opengl file in the arm64 folder of the build.
      I tried recompiling the HISE standalone app again, making double sure that the openGL was enabled and tried again, yet no shaders are present.

      Just to make sure, shaders should appear by exporting the hise project and then finding it in the Binary folder as an exec file?

      posted in General Questions
      F
      fellowfinch
    • RE: I'll just leave this here...

      @aaronventure
      thank you for your reply, however I still can't get HISE to export it with shaders.

      I did the following;

      • opened projucer and opened the HISE standalone file
      • in hi_core module I chose "enabled" on USE_OPENGL and in juce_opengl I flagged use global path
      • compiled it in xCode as a standalsone and opened the file in my Build folder
      • in my project I went to "Settings" - Development and flagged "Use Open GL"
      • exported as a standalone, and once the build was finished, opened it up but its lacking the shaders in the GUI

      @aaronventure said in I'll just leave this here...:

      You can see that in the General Settings file in the AppData folder of your plugin.

      Can't seem to find this particular folder, also probably should mention I'm using a Mac.

      @aaronventure said in I'll just leave this here...:

      Also if you want to make sure that it gets set to 1, you can just tweak or create that file with the correct flag on install.

      Still learning... how exactly do I do this? I tried searching for the files via search and opening up in Sublime to see if there is any file I can change that "open GL" is set to 1. I'm aware this strategy might not be viable...

      I can provide any screenshots that might help to pinpoint the problem :)

      posted in General Questions
      F
      fellowfinch
    • RE: I'll just leave this here...

      Question regarding exporting a standalone application with inserted shaders. I'm not a wiz in scripting, although learning. I did manage to get shaders working in interface designer, but whenever I export it to standalone the shaders are not visible.

      I assume it's something obvious I might have forgotten to include, but couldn't find what might be wrong.

      posted in General Questions
      F
      fellowfinch
    • RE: Problem with EXPORTING - BUILD FAIL

      @d-healey said in Problem with EXPORTING - BUILD FAIL:

      But before using any scripts you should learn to do it manually so that you understand what the script does and can solve problems that arise when using it.

      Definitely will do that. Just a quick question; is there a guide to the process of finishing (compiling, packaging, and licensing) a plugin all though Mac? Even with just bullet points? Just so I know what exactly to look into when doing research.

      posted in Scripting
      F
      fellowfinch
    • RE: Problem with EXPORTING - BUILD FAIL

      @d-healey

      thank you! this fixed the issue quite well and I'm able to find the "app" in binary and I can run it through terminal. I assume that once I get to the finishing stages of any project I can do it via the automated script you wrote? I wasn't able to create an installer but was able to throw out a standalone app. I'll keep lurking on this forum as I learn HISE through it :) thank you!

      posted in Scripting
      F
      fellowfinch