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
-
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.