HISE Logo Forum
    • Categories
    • Register
    • Login

    Midi Effects Plugins in Ableton Live

    Scheduled Pinned Locked Moved General Questions
    22 Posts 5 Posters 1.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ulrikU
      ulrik
      last edited by

      I've started experimenting with building MidiFX Plugins with Hise.

      In Logic I can get those plugins to work, in this one, it will redirect the played/recorded notes in to selected scale

      Skärmavbild 2022-07-07 kl. 14.05.26.png

      I usually compile all my plugins to au and vst3 but I noticed that Ableton Live 11 doesn't see the au's and doesn't load the MidiFX plugins as vst3 so I compiled them as vst2 instead

      So I can load them from the "Plugins/VST" library into Live but they don't do anything to the recorded/played track they are assigned to.

      Skärmavbild 2022-07-07 kl. 14.01.59.png

      So does Ableton handle MidiFX Plugins differently than Logic?

      Hise Develop branch
      MacOs 15.3.1, Xcode 16.2
      http://musikboden.se

      lalalandsynthL 1 Reply Last reply Reply Quote 1
      • lalalandsynthL
        lalalandsynth @ulrik
        last edited by

        @ulrik Did you ever figure this out , I am trying to get our CC modulator working as a MIDIFX plugin but it only seems to work as an AUv3.
        When exported as AU it does not output any cc, the modulators are in scriptnode, not sure if they stop working in MIDIFX ?

        https://lalalandaudio.com/

        https://lalalandsynth.com/

        https://www.facebook.com/lalalandsynth

        https://www.facebook.com/lalalandsynth

        ulrikU 1 Reply Last reply Reply Quote 0
        • ulrikU
          ulrik @lalalandsynth
          last edited by

          @lalalandsynth Yes I got it working, for Logic I had to compile as MidiFX au, but for other DAWs I compiled as Instruments vst3

          midifx.gif

          Here you can see I send a slow LFO on cc 11, working nicely

          I've tested it in Reaper, Live, Cubase and Studio One, and I can get cc out on all if I compile it as an Instrument VST3

          Hise Develop branch
          MacOs 15.3.1, Xcode 16.2
          http://musikboden.se

          ulrikU lalalandsynthL 2 Replies Last reply Reply Quote 1
          • ulrikU
            ulrik @ulrik
            last edited by

            @ulrik I had to set the extra definitions with this though

            JucePlugin_ProducesMidiOutput=1

            Skärmavbild 2023-01-16 kl. 13.14.07.png

            Hise Develop branch
            MacOs 15.3.1, Xcode 16.2
            http://musikboden.se

            ulrikU 1 Reply Last reply Reply Quote 1
            • ulrikU
              ulrik @ulrik
              last edited by ulrik

              @ulrik So conclusion, to get it to work in those daws, except Logic, I had to compile them as instruments, not MidiFX plugins

              So the main question (topic), if it works in Live, yes as Instrument and as FX plugin, (VST3), however Live doesn't recognize on which midi channel the cc is sent, it will automatically set it to channel 1, if that would be a problem for you project

              Hise Develop branch
              MacOs 15.3.1, Xcode 16.2
              http://musikboden.se

              lalalandsynthL 1 Reply Last reply Reply Quote 1
              • lalalandsynthL
                lalalandsynth @ulrik
                last edited by lalalandsynth

                @ulrik Very interesting, will try that , just normal AU exported as MIDIfx from HISE.
                I think it did not work for us , we did have the extra definitions.
                Although we are using Scriptnode modulators and Global cables . not sure if that changes anything.

                I think it opened as midifx but had no cc output.

                So we ended up with the auv3 which is an hassle .

                https://lalalandaudio.com/

                https://lalalandsynth.com/

                https://www.facebook.com/lalalandsynth

                https://www.facebook.com/lalalandsynth

                1 Reply Last reply Reply Quote 0
                • lalalandsynthL
                  lalalandsynth @ulrik
                  last edited by lalalandsynth

                  @ulrik So I built an AU MidiFX from HISE ,it opens in Logic but the modulator does not run , scriptnode Clockramp.
                  Also not getting any CC output from knobs that should send CC.

                  I have the correct Extra definitions set.

                  I would love to get this working as there are no resize or ui issues with AU as opposed to AUv3.. although I might have to use that as the modulators work there.

                  Are you using a scriptnode modulator or any scriptnode nodes ?

                  Do you see anything wrong with my settings ?

                  Screenshot 2023-01-16 at 18.09.45.png
                  Screenshot 2023-01-16 at 18.09.33.png
                  Screenshot 2023-01-16 at 18.09.18.png
                  Screenshot 2023-01-16 at 18.09.50.png

                  https://lalalandaudio.com/

                  https://lalalandsynth.com/

                  https://www.facebook.com/lalalandsynth

                  https://www.facebook.com/lalalandsynth

                  ulrikU 1 Reply Last reply Reply Quote 0
                  • ulrikU
                    ulrik @lalalandsynth
                    last edited by

                    @lalalandsynth said in Midi Effects Plugins in Ableton Live:

                    Are you using a scriptnode modulator or any scriptnode nodes ?

                    No scriptnode nodes or modulators, and no modulator modules either, I've scripted my LFO's triggered by a running MidiPlayer, if I remember right, I could not get the modulator modules to work inside an MidiFX so I took that scripting road instead.

                    I've done a similar project (MidiFX) using the the transport handler, creating a "onGridChange" function to trigger the scripted LFO's

                    Do you see anything wrong with my settings ?

                    No, it looks allright

                    Hise Develop branch
                    MacOs 15.3.1, Xcode 16.2
                    http://musikboden.se

                    lalalandsynthL 2 Replies Last reply Reply Quote 0
                    • lalalandsynthL
                      lalalandsynth @ulrik
                      last edited by lalalandsynth

                      @ulrik I see, that is probably it. Scriptnode does not work for MIDIFX.
                      AUV3 is exported as fx and therefore works, but it does show up in MIDI fx tab in logic , I guess it allows that for AUv3 if it detects midi output ?

                      https://lalalandaudio.com/

                      https://lalalandsynth.com/

                      https://www.facebook.com/lalalandsynth

                      https://www.facebook.com/lalalandsynth

                      1 Reply Last reply Reply Quote 0
                      • lalalandsynthL
                        lalalandsynth @ulrik
                        last edited by

                        @ulrik I am assuming you are using a timer for sending out the CC ?
                        We just encountered a problem in our plugin.

                        Now works as Vst2, Vst3,AU and AAX.

                        BUT...when buffer is set to 1024 or higher , it stops working, that is the plugin runs but stops sending out cc.
                        Not entirely sure if scriptnode or the timer stops working.

                        Assuming that our projects both use the timer, have you tried setting buffer to 1024 or higher?

                        https://lalalandaudio.com/

                        https://lalalandsynth.com/

                        https://www.facebook.com/lalalandsynth

                        https://www.facebook.com/lalalandsynth

                        ulrikU 1 Reply Last reply Reply Quote 0
                        • ulrikU
                          ulrik @lalalandsynth
                          last edited by

                          @lalalandsynth Actually I'm using this function, creating MessageHolder objects for each controller value, and it is triggered by the TransportHandlers" GridChange function" set to minimum note value = 18 ( 1/96)

                          So it will read the cc values on each 1/64T of current tempo

                          //	SEND CC FUNCTION
                          inline function sendCC(number, value, channel)
                          {
                          	local cc;
                          	
                          	switch (number)
                          	{
                          		case 128:
                          			cc = 16384 * value;
                          			break;
                          		default:
                          			cc = 127 * value;
                          	}
                          	
                          	local m = Engine.createMessageHolder();
                          	m.setType(m.Controller);
                          	m.setChannel(channel);
                          	m.setControllerNumber(number);
                          	m.setControllerValue(cc);
                          	Synth.addMessageFromHolder(m);
                          	
                          	rm.sendOSCMessage(subdomains[channel-1], ["cc", channel, number, cc]);
                          };
                          

                          I've set the Transport handler like this:

                          const TH = Engine.createTransportHandler();
                          TH.setEnableGrid(true, 18);	//	18 = 1/96
                          TH.setSyncMode(TH.PreferExternal);
                          TH.setOnGridChange(true, GridChange);
                          

                          I have both some kind of Extra Low LFO curves running and a sliderpack for each channel (4 channels) and they can be configured for all cc's and pitch bend, and yes, it works nicely.
                          However I have not tried changing the buffer, I'll try it when I get home

                          CC lane / channel

                          Skärmavbild 2023-01-31 kl. 18.49.27.png

                          Low LFO / channel

                          Skärmavbild 2023-01-31 kl. 18.50.15.png

                          Skärmavbild 2023-01-31 kl. 18.50.22.png

                          Hise Develop branch
                          MacOs 15.3.1, Xcode 16.2
                          http://musikboden.se

                          lalalandsynthL 1 Reply Last reply Reply Quote 0
                          • lalalandsynthL
                            lalalandsynth @ulrik
                            last edited by

                            @ulrik very interesting to see! Thanks.
                            I am pretty sure that we have discovered that midi out stops working at 1024 buffer or higher.

                            Rather than the timer or scriptnode.

                            https://lalalandaudio.com/

                            https://lalalandsynth.com/

                            https://www.facebook.com/lalalandsynth

                            https://www.facebook.com/lalalandsynth

                            ulrikU 2 Replies Last reply Reply Quote 0
                            • ulrikU
                              ulrik @lalalandsynth
                              last edited by

                              @lalalandsynth Confirmed, something breaks at 1024 here, the clock seems to still triggers but... the Synth.addNoteOn & Synth.sendController stops working at 1024 (I've not tested over 1024)

                              video

                              @Christoph-Hart what do you think happens? Could it be fixed?

                              Hise Develop branch
                              MacOs 15.3.1, Xcode 16.2
                              http://musikboden.se

                              1 Reply Last reply Reply Quote 1
                              • ulrikU
                                ulrik @lalalandsynth
                                last edited by

                                @lalalandsynth said in Midi Effects Plugins in Ableton Live:

                                @ulrik very interesting to see! Thanks.
                                I am pretty sure that we have discovered that midi out stops working at 1024 buffer or higher.

                                Yeah, the midi out is out :)

                                Hise Develop branch
                                MacOs 15.3.1, Xcode 16.2
                                http://musikboden.se

                                lalalandsynthL 1 Reply Last reply Reply Quote 2
                                • lalalandsynthL
                                  lalalandsynth @ulrik
                                  last edited by

                                  @ulrik indeed, thanks for confirming.
                                  Discovered by complete accident, completely puzzled for quite a while as I didnt notice that protools changed my buffer size.

                                  All of a sudden plugin stopped working :)

                                  Should i make a bug report?

                                  https://lalalandaudio.com/

                                  https://lalalandsynth.com/

                                  https://www.facebook.com/lalalandsynth

                                  https://www.facebook.com/lalalandsynth

                                  jonhallurJ 1 Reply Last reply Reply Quote 0
                                  • jonhallurJ
                                    jonhallur @lalalandsynth
                                    last edited by

                                    @lalalandsynth I think I have found away around it. Although there are some warnings in the code about memory usage etc.
                                    10884208-fde5-49af-b586-e188117e33dd-image.png
                                    But since we are just using the plugins for MIDI and the only audio we are processing is are 2 audio paths from ScriptNode I "hope" it will slide.

                                    Just add this the the Extra Definitions in the HISE settings will give you some extra breathing room for the plugin.

                                    HISE_MAX_PROCESSING_BLOCKSIZE=2048
                                    
                                    lalalandsynthL ulrikU P 3 Replies Last reply Reply Quote 3
                                    • lalalandsynthL
                                      lalalandsynth @jonhallur
                                      last edited by

                                      @jonhallur awesome, maybe @Christoph-Hart can chime in on this.

                                      https://lalalandaudio.com/

                                      https://lalalandsynth.com/

                                      https://www.facebook.com/lalalandsynth

                                      https://www.facebook.com/lalalandsynth

                                      1 Reply Last reply Reply Quote 0
                                      • ulrikU
                                        ulrik @jonhallur
                                        last edited by

                                        @jonhallur Nice finding!

                                        Hise Develop branch
                                        MacOs 15.3.1, Xcode 16.2
                                        http://musikboden.se

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          ps @jonhallur
                                          last edited by

                                          @Christoph-Hart Oh boy. this was probably the biggest HISE mystery for me in the past year.
                                          Is there any way to work around this so we can have midi out working with all buffer sizes without affecting the performance of the plugin?

                                          Christoph HartC 1 Reply Last reply Reply Quote 0
                                          • Christoph HartC
                                            Christoph Hart @ps
                                            last edited by

                                            Interesting. I've looked in the code and HISE will break down audio (and midi) buffers into smaller chunks if the buffer size exceeds the preprocessor value but it appears that it doesn't copy the temporary (smaller) midi buffers back to the original buffer, which would explain the behaviour.

                                            I've just fixed that but please check if it solves the problem (you should not rely on the preprocessor flag to get it working).

                                            ulrikU 1 Reply Last reply Reply Quote 2
                                            • First post
                                              Last post

                                            24

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.5k

                                            Posts