HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. phatamoto
    P
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 5
    • Groups 0

    phatamoto

    @phatamoto

    0
    Reputation
    1
    Profile views
    5
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    phatamoto Unfollow Follow

    Latest posts made by phatamoto

    • RE: Configuring a MIDI Output for a MIDI FX plugin, and for use during the development process

      I've made some progress:

      I've selected "Enable Midi Out" in the Project Settings, and found in the documentation that

      Message.sendToMidiOut()
      

      needs to be called on the message itself:

      This will forward the message to the MIDI out of the plugin.

      I understand that Message methods may only be called within a MIDI callback.
      I'm not sure where this might be, or how to access a Message when I'm currently only working with MessageHolder.

      My assumption is, that somehow calling Message.sendToMidiOut() on each Message in the MessageHolder list will produce MIDI output in the exported MIDI FX plugin, and hopefully also while scripting in the IDE during the development process.

      I have an overall understanding of the subtle differences between MIDI FX plugins and VST3, VST2, etc., and how they are expected to perform in the different hosts/OSs, based on various reports I've read both here and in the JUCE forums.

      My goal for now is to get some kind of MIDI output working, using any of these paths forward.

      posted in Scripting
      P
      phatamoto
    • Configuring a MIDI Output for a MIDI FX plugin, and for use during the development process

      How might one create and configure a MIDI output for a MIDI FX plugin (to be created by the "Export->Export as MIDI FX plugin" menu item)?

      The below snippet includes populating a MidiPlayer sequence with notes and controller data, which gets sent to a sound-generator downstream. I'd like to delete the sound-generator and have the MIDI get sent out directly.

      I'm looking for the MIDI output to function during the development process as well, when scripting in the IDE built with Xcode.

      HiseSnippet 2927.3oc2Z07aabbEeojYRDSafcaZQODTLPWJsoxJ9gDoTcMDIW9gnEIkLIkjcBRSWt6Pti0t6Ps6rjlNv.4RA5eBM2JPu2K8RK5gBziEnmxgDfdnFnHEnHGZtzysuY2kb2UhVVUwNsoBF1Zeyady6yeyalwGXQUv11TKgXqza5HrPruQ7tSMYZRZxDSgFUDhci362UhQaQTIGnKOEaITd5HYaarpPrXKWmyVrUtlf6OewNkk0kMUvAjDDNhRTvMIFDV.0CJtGQWulrJtGwHD2aTrgB0ThpSc.UZ43oEFIqbh7PbaYNaKEWH1qTUkvnVcYxLrsPrqUlpNsqFchoG+GQrI80w7OxHzEDjG4ZTcUtFyoJHoQzUOXloaKHDK9AANhk8bDuYbWSdF8.Gx0cG.ELiv9iXKEU8VNh5kIr5kNj5s.UZ4PpzqNK1DJJvUk2HdqFUZf7njIhhH4XYgMYcwm5fiDP9hc7GpmE3ZCSuIkNppoLndpgIykdef0tivQGH1xWZaMyEZqBbypFQGys6Xy9.3laiPLuhLSVXo+Xr34xssnYu76skj9iDe7CKKd+xF6aKU3ctekJhhREpZs4c6Xd5tCYZELUFb3iKwt6QS5Y1SLqb0bE53njeSi1rGJmkkdySm9.5nCKz3cJsg5o0pmJ0zSRkJU97aIIJVZ79h4ZM9ACbDOtT6c2uT6xEjxUa7dCRMowf8EOVjUeew1hE52ueA49a0l0RsU6Va2b6SvLk6q8X1j9J0O8H5AU0Zdb1zo2f0M8ndla9vw0GtW4rE5+vGsckx0qrciTRr5EZmq+3V2qS9NsafkXk1r1Iar6wRp05eO0cqKsc096k6vwzA6W53xpU5mebMphgo0vANoDyVZRsI6o0sBdW1AEFjSbRpg4kbpqd2rEZdRIs5a2tuRtMFOYHVp9IxRN0Z2pvCx8nwjgRRopx1qvQ4rFe7vSK28cLJWu51M52M2I4NbTyrJ2Ut4wMUue+w4vS1RKaUi819n914dvjIZ3pNmHW04tsOr.MWmIDsoOZnVpJ3SxWwoQ6t8Ob6N8OIWiI2SStdlF16qUZWQwZ6NnvlktKUfGeCJoiwAA5RFZJybr.ZuRaGixxPlQnjs1TCBLtKRkOwqWrB1bQj4IxPRoEKLLjW1cjD3dXiQz.B+3hBgp4tlWM2Mh2UwhLhELBOo7a6SM.EHR02RdiJrziVJ952BAPZ1LzXYKjkA5NnplCIlXwgXVccZeY8NTGFwbXKYS.nyJ4MuchDCbLUXDpIZjEwjA.vIIpqARP2AeyDePhUHCPII1krrjmlzi5MSrBPeEIXon5XQ24ASBkBs5ODsJHyUVY.0BlEn.ouMhf9QdhSTGaBkK.kTo.Y3JjyHEW9dWx64Jjmjf+GrtMFcAqG7Odp0sWgy+SRjfXpCFMJpgU0xhZkzvdnqQEUVbp2NwS.mgkgH3AMwJrdTtq3CVsB0.Pi4Kz5ZDa7pOYsPxi6+Rr95HIYlhFRVWG81HKrrBCAKKdL1ZJBjBx.Baf+FwzjYHad1hMZBgogbE457UUVUE3TBDAG+K4pqeqUWadDAVlas9bygZ1lxv6alz0R.CFc1gFLXgiAFMyhpqyC7KXXdkg0EMwjlNF8wVgSN3LB4uQAmekKG3L3nY7sMBXjZ1vjv1eD1+6KdmTAIOA.+1gMbwsgxAeZ.eivVLBWchUAOFZKvqFak3Uv1mvniDtzEfud7FfLsFHCasEdauYEd+7Dw+Oupag4nICbrKnrfmh9Ll3hqZYfQQGDo1Ccm6fV0KLt5MQg9wqj9EcY6h.JdtEqt9dvhd+QZVx13RgrLD2z7Dyp9i5i3r.2vs+xfE7bfB1sQ2pPA5pcglGUvGPsX.47ajN84fGVe8mU08LcJr88AnmKJG5IfXWjL8cHt3Fm0GBSKQB+ZCQC4Sv0rfOlmWmLe5zqgf+BD8LEPQGK6kqFrEArlb.lj5Da1ZHEMYv+nuFxDnMGa.qSUHrofVPsI7YsFxKAh6r4oZ7xjPUIJ.fIC2xChbWdEu6px4zPzFy3klIMD8v7BO.mRa2UMYfBDlgi7UkjyzovCJ4o7I8MhHqH.DBnzFiRFTH2E9DZZrF05dN.9M1pLn01ImYi2ze9yMP5kx.oyMPpnOxc3QtHKj9rMB5UzHfbL+HUXqgGqEG4Xqkzvmb.EpWoR37CIoylcnn.JN+efD3frB2RuKWpvJgyCB1Da9Hm2K3SeNq9NQWMYACeDuxJoqBFrbWsj..VKpCKr6gW3II0gKTNSdvYtXtldXtl.lalraA+hKTKG7LrKMyZnBP0F7makVLctLY2Dpqg1OfovzdadJhsOpJPrGzaAzkAzShF3IQ.PkacJx1+XZhI3decXeq6fd2261IB1CiYIaZOBH+1Y1lia.BqjpJRF0GLDMDrkh2RMGMvW2xmNk2TguxBJJ.ojA7.misbQYCHkVL2VYWDqadFVE2jyb1b4WDyEhxbVNq4yr0BXsP1nrlySS4VprqkpnfrfvDZHjC.mS.kHbnChb9tk5XFvrEd.1h6RQLJziGF4dR4QtmTVLjekS1+7yfy08tO3YUAGzN4pgOiMees0WOzj7fjKoqO6j11I4JRDNbqfRtwZnMlYR2hqnMFbVECoRw1l+.FRSdLFIaNE42OFRmJCccsFZBlOSS3j3b6xSxf0BGjgMcdVDZ.wxlkfLHYX0fXWkyUxaNCym2irm.nvtw8Amga+uar9FHFTngrmchLWtuPK5IPuvdd+1zIfRhdnC3e4sk4Zh7JkEDG.KTEP2XHBy2TbC17sJgFE83LvlrnF.ihQbsCzgRZerolvh3kGDd2w+muw73unZL+qhlwud7VTUGc9AtCegX7aAze.vGDogbd6Ll.T7zH2bzRWzk38LukrmyQOtjp6Mhe.ANY3h02kVf9BdsW15q+cN9MiWcv.n41.k8Zwqc+K7BFegqJugmp75w6Bav5hG5pHeW2uQGyAlpiMwVbmZlm0cA+g4+K+5K6cAO5ReWv6qvfkum6lDT6H2oYWrAoG.iYGd0NzFZoFeZGdTNxEfRksV3PuVwZfQtfADD5xQBcSWJYPcLmo+ES7I+0ycQnW6xUR+btS5q8x5No+JsZ6KO3vU+Jzicv4ddiqCow79EqZxO+APgqieK.xafriNaF0n40snlzQZTShR3DhNXlEY3PrUXcegFTIFK7Mse.qXGLzzPnD3mpWrIj3IaA9I7EA7bkuh8H9hKJd88h6otHdwH5+9wM+m9HQ7YGbzUK+Ny+DM2Fxbgp3G9G9me5N.fPOYWcHvE2.h4vwFTCSqBVgzGq+RKZ7BYqpk+51VUuXdKraLqMktZxivvR5ccftegpc+y8JXi8djgxDY6l3ArHOVIPqCYn1Lhe3a9q9G+9cABG.BHfwdEaRmDgze92ULZtwaUbeHKxleTTh4vvuEQzGHkCan5DdOwjEK4vnCOyyn5tEYCyQNQz2JVjwQRHaQdT38g7r7ZDc3TvQ1H7E2K0M+VSAvOXsiCGh26517OuOug1XKwa8z66z7uc2+Dap59w+B9wevL7ui4OXlYCFNY608B1uJ.PCc76FpeMueOZb1kDGwJZH9sJNefvwY2.SM3LT7KoKzL9I+lu+msyL5QRL9768o63mDv6NXtb9YebwcImipPkhAQlm9KG8m7doInYJkWNue5WwQE+8ReC+8R6veTk99616QB4QKZPpCkZzk73YYvne5m+22oBTxDTw.9pOamiwrlvr0Cxr+XHyeZXZO8wu4eamiIpPuogjEDCvOFGpv7W7Qezu8qYd4+eYMLjUrnuuh2Qg4P3ulKEv2Z59ruqDuE+aTFA2iGGFrx.5j88UThJpyMwrW0Il6pNwMtpSbyq5DyeUmXgq5D254OQ9AM3aYY30PBrIzAUcuagXwl+edjXKK7uADPxfMG
      
      posted in Scripting
      P
      phatamoto
    • RE: Populating a MidiPlayer with event data received over OSC

      @Lindon

      Thank you, this is very helpful!

      posted in General Questions
      P
      phatamoto
    • RE: Populating a MidiPlayer with event data received over OSC

      @Lindon

      I haven't yet gotten anywhere beyond receiving the data over OSC.
      I'm unclear on where one needs to populate the MidiPlayer, does it need to happen with a callback locally-specific to the MidiPlayer, or can the MidiPlayer be accessed from with the same Interface onInit callback where the OSC is being received?

      I've been through some of the documentation and several videos, but still a bit unclear as to how to approach this.

      My hope is to get this first bit working as a jumpstart into HISE, something immediately useful to my external music-making workflow, then progressively add features as I learn more and more about HISE and the range of possibilities it offers.

      Here's the OSC-receive code. It can receive arrays or single values, and for now just prints the value(s):

      const var rm = Engine.getGlobalRoutingManager();
      
      inline function print(value)
      {
      	Console.print(value);
      }
      
      inline function printOSC(id, value)
      {
              // if received token is an array (if it has a defined length)
      	if (typeof value.length == "number")            
      	{
      		for (i = 0; i < value.length; i++)
      		{
      			Console.print(value[i]);
      		}
      	}
      	else 
      	{
      		Console.print(value);	
      	}
      }
      
      inline function processOSC_phraseA(id, value) 
      {
      	print("phraseA: ");
      	printOSC(id, value);
      }
      
      inline function printError(msg)
      {
      	Console.print(msg);
      }
      
      rm.connectToOSC({"Domain": "/HISE", "SourcePort": 6400}, printError);
      
      rm.addOSCCallback("/phraseA", processOSC_phraseA); 
      
      posted in General Questions
      P
      phatamoto
    • Populating a MidiPlayer with event data received over OSC

      I'm new to HISE, and seeking some tips for getting this particular bit of functionality working:

      Receiving an array of event data over OSC, for use in populating a MidiPlayer with note and cc messages, and sending the events out of the MIDI out when used as a MIDI FX plugin in Logic.

      I have the OSC receive part working, using the GlobalRoutingManager within an onInit callback of the Interface.

      Where or how might one populate a MidiPlayer with events? I haven't found any code examples of this yet.

      And also, how might one pass the OSC data received in that Interface callback, over to where it can be used to populate the MidiPlayer?

      Best,
      Thom

      posted in General Questions
      P
      phatamoto