How to intercept and transpose MIDI notes to Synth Group sound generators?
-
I'm using a Synthesizer Group as a container for 6 monophonic Waveform Generators.
I need to transpose the MIDI notes going into each so when the user plays a single note it produces a chord.
In the onNoteOn() script how do I transpose the note numbers then send to each generator in the Synth Group?
Example:
- transpose incoming note 0 semitones and send to Waveform Generator 1
- transpose incoming note 3 semitones and send to Waveform Generator 2
- transpose incoming note 7 semitones and send to Waveform Generator 3
- etc.
-
@dannytaurus Under the Midi Processor there is a Transposer which you can use to repitch the notes.
-
@HISEnberg Yeah, I tied that but the MIDI Processor only exists for the Synth Group as a whole.
-
@HISEnberg The Waveform Generators inside the Synth Group don't have a MIDI Processor and I don't see a way to add one.
I just need to know how to target each of the WG inside the Synth Group, and send MIDI notes to them.
-
@dannytaurus I don't think you can use Synth Group, my guess is that you have to use a container for the 6 generators, and place a "midi filter" for each one of them, ch 1 to 6, and in the onNoteOn callback distribute the notes by setting different midi channels for the notes
-
@dannytaurus Something like this?
I had to script the AHDSR Envelope because linking the AHDSR Envelope Mod from the Global Modulator to all 6 Generators doesn't work as it should
HiseSnippet 2332.3oc6c1saajaE.dFaOYszlea2raQKJJQtRBwvPR9mrXcSih+KQHQwBQdytEKRWLdFJKBOhTXlQJVsHE8xdU60aeS5c4Qn.8EnOB6SPaOjbFMT+DYIsxIV1TvNQC44bzgGxgmyGGA3J9LGbP.y2vL0gcZhMLutU0Nzv56T2lPMJsqg4MrpRN8ErP7g3fPis6zzNH.6ZXZt3S3hXlZICwqe7Qaa6YScvIMYX7JFwA+bRCRXRqUJ9Lhm291t3CIMTjd8hkbXzcXdrVf6rnUNil1NmXeL9E1bwVvxv7Z64RBY9UCsCwAFlKsMysS05r2Pkx+JR.4HOL+h7FUACIadelmK2i4u2Xm5DO2JwC6.CvnURBBKJCBelUYhKoa6IAiaK5.kngZ7vbgQ4d4mR2aAE2aIo6cGqpN9jlgI8v8sO0pDMD6WyFlBTcKorFKbxRV6v.Ingq1v9D799vEc0Hyl4xsBB9mrakNMLMDDhd7S2s5KKyba4gCPODIVVr5w3vG64IZ0FFpAYtmPr60mZOidDWmuK9CDTaGVilLJbAnRXHLydurqjFM3qgqxSgfzDovtXG6NSjFUaEDByySjNuD6gsCv2K6vT40PLgP8HTLpVKpSHgQQLZ23C2h9LuLNwlaETaauV3ro+SoS4wbr8PD2SgnXWMVkPcwmdPsDUfvdpzoBdCIzoNJCHd1zo.sS4.NEJ2WAuKUMlOJiMhP6YBMKuqT1qF.ymgg9jiZEhyXupblI1Q1hKzQ9X6S1J1l4mbaxm5FgEKL4VTL2NBSt1jaxnI+QXz0mbiFs5XnF8soea5z8YM9bLXJgchVcrism2QvTRlAW3.1SYYEeG5CnYDKd.Si5uqZ0FZeQ1xC6Ozt46P6OJEyPa03Hru5RWtfvVU8tW30Fu8Bcj2koHHiVhRBOnIN55jcKyOjcKMhtME12zJxCAQCE6ZdyncMq5Qbw9FDvHKaIWvaH79jTQqVzXLz9ZV7k18qajSbF59IVhEw8o7g+vX8AmxJZkUepi9aio5Qq16Q8hqs1cemwWWZW6PaH7YFEIgnaSreHgOIZtKtMjOWlDJELBBNIj0TDpi1OBxBc1A6SUCVcTK.3MD2v5IM7GJVGSNttRsCkJ1f4h4gdQsCMrSr0e8eWLHD2rJ4OhUKJInUsZDPJKKTi.iFDWWObEV.guLlK2+8+AudzemG3FiwPzT9op9370HHdgmxPfNmMDRV9qLH9yWHGDWeLtIL4C9uzdJGD76EcHGg8.2Roj7e+6TGVvK0g0+3G3u9mpCK2sGxvxTnYg2YLt0g9yr1kDDkDDwy8DLzxQ+hEs7wGirgDJswTtX7BFgZl3sBtA44fUfl1idLTA0pNPdyPb4n1yjcq2Stuxfi.LCqRNlx7w60lWlVnuL6abYUTvrwxA0ywU+EhzXY3RIkocux7JLzLIrSFocH0PY5VPLnaEeLe78LbmfLYQ+NT9n5vDI3o7D7JiSQ0BRsoxTya2Q3nkbyDOvEel7cmyPyJJb.9QwDq5.2.Hc22F6wN0Y9t7XHTH+ZqfdvJn7v6xuN76CdsvqEdCADI+VHB529Pzlv+e+6G4qwkb1sVeaW2nHKYED89B6+cjWC45WAkS3TpdTyVA0yjHkn+tilftiFEyPbyFUHz6sZkQGme3CA+3CXf9iSoSVypRmFU4RSUh+grk..HGyFpRMyOpfnN3aqnte.GAkBa2zQcu1I.kN2PQoG5ncLc26XUgySMb+cgg3ubJ8yY+M5fItg0d0pgcBSb1kr1+am1SgX5bkkktxuz5IdrirSNK.95Fvqvxr.+5ntQc6G0Uf7i3Xj9Wi6wH0brOFIyE+IdtLCKhXtzGgiMZ1uV+mOvzTvL8tyo7fttszk+DKAzqvSuo78Ho+1iSVlQYMqynDG0EMuDCEgb7wX+dNiRRSlms+6cnIQT1oke6dV.JpYdfVi3YTvFks7bbanTLEAEPC8aNUpu3ZAUPwhqwUAtaOGVYY8dytohgt11ZLW8biHjNj3VvK16peyXeUN6bw1YutjRadHtdqXPl4h.6MiYGunDZixll1JlvP3l2s6kIaLm+r8Vkc295.7g1BOKYamRz1PEc392JhCN169JCVPyhi29JmSEcs3UyhtdIqUHgdbYaHQFmPG.fpBU03fAOgRwdb3.yE3kwKuNG+ZdjoJl5JtfejDQclmesYTm4i6bHKEG3I.dGYCI0uMKdJfypx2xMko3Reon7MMY0kIxp6JckO05araiE2yEkLfecMleCzSvvseClL3bGg5.mPvENz2lFzjEfyqZ495qPuYWBaQ6UbYS8HEe3sOL7Tja4hwMVPswJ1zdLFbcOVpLQ47N+OOZOJOEXULLZbOHvAFr7Xm5sCUZ4Ef+F94rlWUwjlKn17Ss8cg4kdvL5e6ow73Z589VE4Oi8st1El8sFJDm4ft2srhx.sOwKL5zA9bqxk1sDJpCjrmdWS2ebc5q.I4YBt3X7zwtkkizqjGIb+Odue7QiyiXKsUilXvy8CmtGO3xb82i18gKZYdaiKHYElRh9aMHQ+xx2meZY40.7u2HuFfWCvqA3+PBv+qhNHUQcVhc9657B+92DePqBAPBIlH19Dfdt.wf7PRVdihmcC+qHIjaghcjO617i5H3+pgc.CZp+KV.AiNIOTrKZtA86KrfBvKfDS2nO9y2efOZkIfrqflr6BJY2r4YqbtAvM0aV+SBZqvHg1lIgrYK.mQwOF.bwZmq3kSHtBZHN8SgUCwog3tBCwUPCwog3zPbZHNl+ZZHNMD2LFhK24GD2ZyCO4sk0famCfaqoA2zfaZvMM31UXvs0zfaZvMM3lFbi4utFbSCtM+.ts97.31s0famCfaqqA2zfaZvMM31UXvs00faZvMM3lFbi4ugFbSCtM+70lbi4su1jelFh6b.haCMDmFhSCwog3tBCwsgFhSCwog3zPbL+M0PbZHt4GHtMm2f39EZHtyAHtM0PbZHNMDmFh6JLD2lZHNMDmFh6xED2kkOiF1N9ru2QV4Ju5hkEs.wVp3OsjorJyuFkev5c4+YB46cb50TCnXgoUw0lVEWeZUbioUwMmVEevzp3Wd1JxQDebqPVC48h.pbk8joRLkTxhaKM9+.3YKnHB
-
@ulrik Thanks! I'll try it out today
-
@Christoph-Hart Is my original request here not possible?
To have 6 Waveform Generators inside a Synthesizer Group but have individual control over the transpose of notes sent to each WG.
If it helps, each WG is monophonic with Voices set to as low as possible (2?).
-
@dannytaurus look up synthgroup on the forum.
There’s an older post from Christoph where he details the use cases of the synth group. They are quite specific.
I’m not sure how you have your current set up in the tree that it’s possible to do what you want to do the way you want to do it.
-
@dannytaurus
In this example I have 6 WaveGenerators in 1 SynthGroup.
WaveGenerator1 is reading midi channel 1, WaveGenerator 2 - midi channel 2, etc...
meaning you can set independent transpose per generator via the "Distribute Notes" script inside the Synth GroupNormally the Midi Chain is not available (visible) if you add a WG inside the Synth Group, but if you construct them outside the SG and then copy them into the synth group, the midichain is available (visible) in the module tree
This way of "fooling" Hise might not be a proper and safe way to work, and maybe it will lead to unexpected issues, I guess Christoph made the midi chain invisible for a good reason?
HiseSnippet 2018.3oc6b0rbaaqElz1L0RMMooI81r3tfimtPt1win7O8mbysJwRNQMQwZhRStyzoSKLIjDlPAvgDzMp2watK5h9Lz0caeDZeD5iP6ttruAsGPPJQJq3HqZEK0K7hDgCv4b9v4.bvGflQM7Y13f.luldtG2yCqoeQil8n7N61AQnZ0pnoeUiljm+z10nQxuqOKzS6N87PAAXGMc8EuqXf54VRK5ue+iuCxEQswCDoo8DFwF+.RWBefzFkuOw0cOjC9wjtoF8VkqYyn6xbYg.nVznnlGx9Yn13GhDCaACM8KT0gvY9M4HNNPSeo6vb50rC6qnxw+DR.4.WrngkVSvPRw6wbcDHVHUa2NDWmFIS9.MMciFCBEKJCEWynNwgzW9fPxaF0g4.MRGOzWHK7VLC7rRCuhof2HfjdJHsjDRWwnosOwiOnGAddciZTN1uEBB6oghbrZ5+jwtLX.T9FcQOCumOznuBE1oXw0Mg+Y0a1JjZyILpIi9PFGuOsvp4+u4yk+n7lC2UqVirOga7YttX+Q1sHS6eRJVfF18.r+5lGhbCw8GHL8yFSMdwwzzoba4rN0.YzZTBeeOL8EsPPKNTAe5SqUAwQhDQrLXbdXeNQ.A8J3CgU0xzRNiJ3fmwYdv55ikyfUKLmPWDO6RHw9l3NfXPl7lH4PCH7do2WclstZbg3ULZP31cFMFWXDXDhTSCLFua7MLp1pE1lO.fKYr2+Y5r0Ks6ubl5hx5eBueMo.b.I.6aFI25rnv3WN1EFqRQvrYu5os3tHeeB1uF0A+7TN+G6meOVOeJkDvnrHnb6trPZJrnUNt2JXdHMCzi6nomOF4jdZJPeSL.UmHSFjYM7hmToaqIrz8EmiKc+VFUHAbexAgbronzZvnpfuvOrX+R3AX98vj1c3ErDEsy6iaahf5nGhoB0Muk4m84RocgY5C.qChpRaSn3MrgjEGWOVdgXswfp7ZNIplGxcfRQa9uO8fDwsX9lEHPih2zjX9uL2A9u0VKpFc+gtgWXPmBIHE43beJ6fBqjz+JqUfrl0pqaZsYw2irtYwUADjK0DaPAV3PpteRy8eXg919yHe9Fsw7BqPbVY00ymC7atU5Rnq7Ql2nzVqG0B8bnUbi.N1qI4qwfDqMJlO2QfuNJe97ufS4pC4DfkwFj1TlOtpHjTf6CGBAHLeNWlMx0jBy9jwAPQn9CiNvRDIiGygYGySvfXnJYAocHsLKDU1HR+vtM7whT88w8BJrp4+1zZU4DSFrcLIz9YGnmb4j5RkGAemdUk8AiTXdv94RF8F1tXjDWGIbb+rmUT16V8SeQtSBcve2xT5AH0EGbfzDcsTIgaXEkFdh3.5BPp7PQZ7lo8bzZ.IhN5j3NbxwhaAKzlJAi+FyXQ+BwnBFJOpnykhK5zzk3f80HNBxhIYSKsHPmtpt1ox.kF1.KW9zYfMG1.+ySoA1ZXC7tmRCr8vFX8SoA1YXCXUdhHNJxcc8XTQhT+0FqrGbLtgtvk8R9P2HFGW329C4eP8PQyqGmaSpHl9DYsSoWKI85+6UqW2T50kzek50sjd8ad050skdc4Edk50cjd8a+K50Y+a+jgZVL29Wy312qRyGEeqmnOCLlNDN51CmkSecfxqWGFkXmtp4iv.Ct1sw9oQ7HmF2lyQ1Oa2P+CyT1sB1F06XRkCtujujUVJ4Av4ZtoG38.9wGyb8ET96K2LLfO31Hk+0u9J+zivvYhAo721kqZyfTBdBC6VmbX2XLWZ7FFxIoYzsel8tU7kRvmLKL6AvKZDk9mUieW1Hdw3La.7RFw6MlUCgm3Cyr3+27vLurMAhWrvD5albOp7cSNGg2aKg2qa7Tzg3naREgr2NpMbiqtl2ESw9BbeROq0OOtOqk2X+rV6ayAH7XeDMviE.G.mxxC0Worm5Ix3VGWTlQIld6ASOqz2ZIQXozBafnYLFzNikpSR8NZ+xGKeMN4KesefMLYEwtz4wFgtA3mRb3crRq3.wkRK9dHeGHujgnwz48ytvr26msv399YWMV5.DYMxuBjuyvT80ab190aDuT4xFvpCJE6tGwkikYk+gQ8ZUpYF2gormrIlgWJOwLKS87GKNF2b+xF1RTIe4tgu8dzMmdoFIuQWOLfbe9j8DJKKzuJ0YXsKVdd6FT4RvXSRWOWbxslRdaabKTnKOQ5GLEtK0.IWq7wtSy6V9ADJF4O8tVi9Xlutd5q0XN+989onWlbJ3ymsyhuiAPBoj7aww77IW9HVHmPaWGA6nEutDTwsIvxyFGetf3jN8EDULksKl7vSMwTmnFhmcJtSKQa83NsR5bBYzVRwnUwnctgQaIEi1YSFsklGXzpUVwncpwn8CULZULZULZULZOuYztohQqhQ6bCi1MULZmMYzt47.i1kULZOyXzd0gYzZUTQoUQoUQoUQo87lR6VJJsJJsyMTZ2RQoc1jR6VyCTZeSEk1oHkVKEkVEkVEkVEk1yaJsaqnzpnzN2PocaEk1YSJsaOOPo8ZJJsSQJskTTZUTZUTZUTZOuoztihRqhR6bCk1cTTZmMozty7.k1qqnzNEoztohRqhRqhRqhR6YGk1+t3itHae1WXKO6PTXY4HIPrkF8qhbNi5h1li3WzMwOBjegscVScLEKMoJt4jp3VSphaOoJtyjp36OoJ9AubEEDlucHm0Ut+Ct3PipQLuz0k2YHZqn1eBPYExMA
-
@ulrik Thanks! That's very cool.
Clever way to allow MIDI processing for each child sound generator.
I'm trying it out right now!
-
@dannytaurus said in How to intercept and transpose MIDI notes to Synth Group sound generators?:
Clever way to allow MIDI processing for each child sound generator.
Well it's not so clever, cause it doesn't work, it seems all channels will pass in to each wg, the midi filter modules will have no effect I noticed.
Well it was a wild shot
-
Normally the Midi Chain is not available (visible) if you add a WG inside the Synth Group, but if you construct them outside the SG and then copy them into the synth group, the midichain is available (visible) in the module tree
-
@Christoph-Hart Yeah, that was a stupid idea
-
@ulrik Yep, I noticed an issue when I played 6 monophonic Waveform Generators and it used 36 voices
@Christoph-Hart Ah well, we tried
I (hopefully) made the question moot anyway by adding semitones to the Waveform Generator.