Optimal Midi Architecture
-
Many dynamic polyphonic piano roll sequencers like:


-
-
I like the concept of the midi player and would like to utilize such a module, but it seems quite limited and potentially buggy, need something more compatible to move forward.
-
@Bart Since the MIDI player is just a script processor I see no reason why you couldn't roll your own using scripting.
-
Do you mean making a Hise Tree Module via a Script Processor?
-
@Bart Correct
-
Please tell me more, is there an example somewhere?
Its probably beyond my capabilities, but willing to consider attempting it.
-
@Bart I've not done it. You're basically building a one track sequencer via scripting. It's not a small project.
-
Ohhh, so you don't mean scripting an actual Hise Module with a pop out UI like the current MIDI Player Hise Module... You just mean a normal script processor for managing the MIDI data?
Guess the script can have an interface within the Interface Designer anyway..
-
@Bart said in Optimal Midi Architecture:
Ohhh, so you don't mean scripting an actual Hise Module with a pop out UI like the current MIDI Player Hise Module... You just mean a normal script processor for managing the MIDI data?
They're the same thing ;) that's why they show up in the MIDI processor list. For example here's the C++ for the arpeggiator, you'll see it's the same stuff as a regular script (on init, on note on, on note off, etc).
Here's a video that shows how to create a reusable keyswitcher module and connect it to the UI. This is the kind of pattern you'll need to use.
-
What limitations do you run into with the Midi Player?
It does in fact do a lot of heavy lifting to ensure sample accuracy so you would have to script a LOT to get its basic functionality up and running.
-
Oh my goodness I feel so dumb,,, you know what..... I've never seen that Interface tab in the popup module for script processors, because I only ever click the open in workspace icon, or jump straight to the midi callback tabs..
You're right, they're the exact same thing!

Hise is AWESOME!
But I still don't know the answers to questions at the top of this thread..
Do you think @ulrik may know some things about midi and automation sample accurate playback and optimal data management. (without using the Midi Player Module) -
Don't know if MIDI Players can be dynamically added and removed via the final exported plugin
Don't think it handles parameter automations
Don't think they can playback and display more than one Sequence and or Track at a time
Couldn't get them to output MIDI to anything other than MIDI channel 1,
Using the MIDI Channel Setter Module would be fine, but couldn't get it working with stuck notes
MIDI Player doesn't seem to immediately update it's Sequence and Track when changing themWould be great if a single MIDI Player could manage everything:
Sample accurate playback for MIDI events (already does) and automations (doesn't do)
MIDI 2.0 per note parameter modulation (Hise Events may already be capable??)
Manage parameter automations with sample rate accuracy and MIDI 2.0 resolution
Playback more than one Sequence and or Track together from the single MIDI PlayerSo basically a single MIDI Player Module that handles it all, and then you can utilize the Floating Tiles and custom Piano Roll Panels to view any of the content within the one MIDI Player Module.
So Floating Tile 1 might display Sequence 5 Track 2, while scripted Panel displays piano roll for Sequence 10 Tracks 1 2 3 4 all from the one MIDI Player.Having the option to use a single MIDI Player would then help declutter plugins when many MIDI tracks are needed, but not necessarily wanted clogging up the module tree.
More things I'm sure

A single MIDI Player that can handle it all optimally and accurately, something like that

-
@Bart Sounds to me like the Midi Player is exactly what you need here as Christoph suggests. The only aspect really missing is CC control, but you can manage that with other custom MIDI processors.
I had a project a few years back attempting to create a full MIDI browser and piano roll (credits go to @ustk here). It is A LOT of scripting. You can in fact display many MIDI tracks (including those not used) at any time in a panel. HISE doesn't support MIDI 2.0 yet (as far as I am aware, @Christoph-Hart is that on your radar btw?)
You're welcome to poke around the project. Apologies it is quite a mess as the project was abandoned early on. The tools you mention, isn't that the purpose of using a DAW?
HiseSnippet 20417.3oc681EbibjsdffRBiDfjZ0Zl4d26t1w5R7NiLP2ffnv+noZ0DjDraNM+AhfcK0WFz8TDn.P0rPUPUUf+zZ3czMr8ZuQb209QOuMO4m8i1OY4vwtQru4M76NlG7aaDdmW1m1H16lmLqexr9CE.A5grEolAMPUYdxSdxSdxu7jmLSwyMDU5H14k5JRCGJZDK1BuaSM01h55pZwVH4AWLTL1BeT7VWnXze89BRJw1ZiXK7gwaJInntuprbr0tXnfttXmXKrv69XHAKj38hg+6O9n0DjETZK57nXwdtpTawskFHY37zlq9TIY4ME5Hdfz.pTWb0sZqprtpr5HDy7twyEanP6SD5Itq.jr2IdrmHn2O1B2KtP6B74xUrbmBGKHbbm70J1UrP4xE4KzsVthB0DJmqV4bE4isvOoQGICUsVFBFh5wV38VSsyEs5qdlBo.dtjtzwxhvO3i0BUxjGuopbGnJBOM158kj6XKkzQxr6PIydWhL6mGeGoNR1O2Q1cW7K3bxAs.bg2gk8dWF1iml8xQwd9vRKPwRuGgk9z3sZqIMzv4Mj1xsTLD05JfZmnYERZi8N6mH95pnTnXjcfvIhapg9gcNRwmiOWFtJ4xkdkjIShUSx1Qrqn15BxxGiZszSYnMRD8VDQzUkEy1VVTPKEjbIk1xi5HlZwMDQOTSvPBkjruReQ3kKur8qaJnHJiDfJn+w581urgxohxpCEsdAU9LyBN6dxmrPWu4XOi9hZs5KY38U6LR1PpMghtoUSrJ4oR8DPMcteIzZull5Y5h99pmJdwwpBZcrp2ND0pGl0aRPyNaKz8ktyJpuhtA2oBZbCUjeIP7MjzGJKbgN2C4rZC6IZTWVdc0ACUUP+VO0htRrIWHKoHx0cjRanUgafy6atepdZBC6K0VOCWaK5jgCdmn1VHqImmN42kjC8mU5x1E08FUpoxcdNy+PEBjB7GxpsEjwEQSLMPb6N1+P+PJBezJzYPVBUceHUFgJ2tpFh6K11PPomLxNitQpCQJn4nXUHUesTGi9oR65oOQTpWeiToOhl6j5xkhpHjzaLXnwEoRy8vGxki6y+bBejUVTomQetujKWZb1HR.5pmBvZH9kOekUb+RgyMeYNmWY+ktpZboTf2KoPJsz1uyoXbnFjzcGM.QM3aGxezJLIxgS1Q.0aE8yTlOJiUVS6JG1rGIGBmmx7Q9kiK8VCb3q8QsKLDhOiM4Wxh0R6V9LD5BSZcP4021L2YQ3TAIYAjsxVnwLfRjlFKSjmDl49b7dxM7V6xylWKlwMYuGWtrkSOCZyT0j5IoHH+hfZ0r3KsABxRuVrSSUnWcJm74H8PUO6ZmeDQSbf.Zv9Njxhlf2iKEsXZIJ4fKUBleX2OWWzfLZMpm9lalK+lUxW1UFYrIru5H.8gc+0TGhq64NJiCSRTwNL+QYn3FzO3ylyiR2ktMpLDKkXsP.eCFYBUgk.iantx2yWqCqjLfJG4ezydFZjBQ2IqilvYaiLdlBU1Y3vejKat.rzXUMtLYRrFiD1D.mD2W3wFtoEFzKu+8sLvpI1inWC52tR+gRGQYECmprcDLDxRYOEkMIOIBUOah.qXfZbLf5g0f.o541xlqQExvYzWRm7omhxTLcIsoUZq7RGkEM9kBRS3.U7H1DMQyj6JkHVbewg.StmhUyHLZeOQKzFHAZR6QuTw8K1C0RijaIPuiy8q51022ACZpgFBVTy2WCnU0BKioTFM3XQsLnAkkQrkUBQHxXg4EOXXdznPaSFCmJgpJaoHYr2PQkfvlFybfeDjvmaxUnjZfAD9SMADJ144RhmMTUyHlDB62GG+zguzBuULLqSifOlMY9IDx7mYRl5i5Ho90BmJhTkGfozch203kVOg2Ko.kjXKrR7keFBcj9xhZJh5FKugn9IFpCWFSOtVBCFJKpub0bU4.3P3u8To1mj8LgSioAM5HwHh0WH9B.MwOogRGqeGycs9Nlr6ZiLLTUv74GF+XCkWtyHCQ9vpuii.PK0jPfVxRcD0LIvIJG+RX9SrD36+c+2y+CQg.IwD.0ywCC7y8l+6ZleDLviUWS8byFq1CN9kjd887Pk+3il1187A0tWaBa20UDzDmKs54ups54ups54c0p+6JOYs5dX.tooU2a0X0osUuPPs5e4D1p2WvXo1xpnYkNWZ5KbUa5KbUa5YIve3u6u6e3j0z6lA9gmMMM8dpFevT2zWLnl9uXJZ5QSsWYtzvW7p1vW7p1vWzce9IzRuGFnxzzv6gJ2cpa3KETCe0Irgusrvv4RidoqZidoqZiNKAVsa2kmrF8RgMvbjaz8Pke9T2nWdV0nOTTq8boQu7UsQu7UsQmk.+9u+28u6e+D0n6gA9Klld5doxT2nWInF8JSXitg5f4RadkqZadkqZa9TR.617nj+w2l6gJ+8m517pA0l+fIEGeegSD0lKM6UupM6UupM6UuhM6UmIM6dnB2T2rWaV0UWSZ9zUu1UsMu1UsMu1UrMu1LoM2CUVbRZy+DFW0jaVMm8iUU5oNCa1+HGO0ja5Z2+HGW0ja5Z29HGe0j6pn5.NqI2z1z+ILdqwCY9ESRa+ciy7rqwNpKQbxOrYwIOq4m9rVX5yZwH.a2GEkeNVQogxo0MLDZeB3vYWsN+k+1+aQhR+YrTZawSEkmReUdGKR8DU4Ntow+7+yqFEZ7IVzXCw1BWvRje++w+C+yhDQ9TKhzZjtgGWm9q69udseXhHy9hxhB5d7A7+0+UqNER30GocpKR8G9p+s+WlrlcrzwGJMgixsCsvI5JueJwTIteMrfESAItKlD1wx.+DzMfhJ2gPEYgKfEBZ55JQzZerlTmVRuVLL7QAyG+bh.QVZHPmFJvBAeUpQ.U1U7bioqs0gFM0DOc5nwGaKYE03u5jH+Uol.sssPiAMcz3O2lFlQay5fSi8gVOaqMfQyhsvBlKMVSM0ghZFRvJwsvFhmJ0VjDvTIhaNBWrE9.6HlI1BuOgG9XSdXqAB8DwrvGDG+c9XmSWfWP+iyfkV19A+K+WrZe7JAa+j+v+zU6JIaFfa+Ew+tl6u2upw5G7xM2a6MZr+kG2K6Pkdf7vlaRvxM30N0jafkDdsdWMtw.odZEAdIiyWtRkJ44KESxPb.4w4A.Q4KwWtT07Eyki5MtdQjX5ODyz0GoIDrT7Eqxx2+9+Wcy249aV0ECVLekp70xkqpaFrPtREJVpPAdjpKcv0AZG1raRV1cagiskw3uSyq+gWuJEudfKd86O0MuhRRWjdH1nj8y9BrbO1B+8hat95blqGKGXGlaHnwMTPCwbTbIsrCHIQIJQbMwdijEzXZ.9jIXEfOmNhLCocnom1gumtcfzLfDz7EpVoTri64iZkdaX41WSP6f9HfiHPlntj+j34ykMWLAYodJCvL+GD+XUT+9AwDFYn9DjEdRSFSSdh3777UKVkOV.ZvmhpvVwNvK.N9U09+6+s0++8+6GYqF3n7wnL7QAo69yvxePrAFVPC4hF4I.c36dwOvJ6927+hO5vdZgYaWhRWSV4B429J4kUaehUDttvGRUlePPU26XWcUX6Afl7wEz+fsl9C+sd5A7Mdqo9IKEjkUOyNtRAVZcYjVhN2dJxnBLIsfZBiLAGle0Wwx7Cshkhsvn42VEFqf2amOWRCW8565SudmlkBPWC9J774qTNWAdpFnDwKUpFx5YoXQyNLXlqP0hEymOl6Nd0JVqbk70JwXF3CiTHQDPS62W2USKx7f6pYwUGmjhXn6ciui6QN3KjqbE9JEJ6sRhpKnJewZTRJyGmiGIBmnpHInMBR6c2YYUrkqpHe0pEqTqX47E7VEQuIeQzacUEqTMe9hH8Dlp3mFovJgpJtAcU7KcWE2vSUb2wVEcqsYOZKot+Shi2Z.CT6XBqpsDLD5.5sKvK9gABLlK0MDGRMr3u+286928H8Qc6JgRU73bcVCk+NcjEsrh6j27+fjdS4Q8jTZJngFEzPTiXYaH6CIiP9AXlaId+FfL7Hs4b59yugEowiiXASIp42CQZ9hUcIMwyTwRZ9tw2NPYYLFwRfiF7Si6J.DYjNWD1HB+geqOVGiReJerGRyq2wvbmXP30MkUE.mkc.BesyX.XNFMA.Z1826hcMmmvAlPlfrr2ohZPXOhq+LCnxiLXi5W6SymGCyVc0KWfuT4x4igmWxB6FGhvxEa5LvyhOfaQmHfjewLv6wQUI5M4v+ZSUXvwuVU6DcHvjQOuqfrtXxKcMRzp9IqcIK8VCJv77w0z3i0WuHmuSb4ii.5gX1FP.OIRCB7mDWVrqQL20luzGzz4bCB+vwpdMN7yANAlOwFDNDUlLUr+Qg0I.0LL4cBBGQDy7Y7oQIJQAHEvneMK6iMuDegjdlF42+Uq5sQAzkPLXw37KkOYgkJlrzRkSVYopIqsDetj77KwmOIegk3KljuzR7kSxWYI9pI4qsTdK6cuS7wp3MRWb8Q5nIFzTc3ngVQD6jBkMef3cN75OT17SJT17iQpl+OcPYqVCg1oVYeLkVqR4ZnhXhgxledBkM+0Bnr4mmPYyO2gx9IQJVYmiPYyesCJ6DhJM+7DUZ9a5nRyOOQkleliJM+MFTo4udiJM+TfJM+XQk99waA6Ig2TvRyOVXoePzfkledBKM+L.3Y9aR.OyOi.dVHH8MDPtq8.OKLo.OKLFoZg2l.dVXdB7rv0BfmElm.OKbs.3Yg4IvyB2zAdVXdB7rvMcfmElm.OKLyAdV3FCvyBWuAdVXJ.dVXr.OuSbbzszg6IR8ELdSg+rvrB+Yg4I9yBy.7mEtIg+rvLB+YwfT6905W+weVbRweNtNtEeaB+Yw4I9yhWKveVbdh+r30B7mEmm3OKdSG+Yw4I9yh2zweVbdh+r3LG+YwaL3OKd8F+Ywo.+Ywwh+7ihCv3dyh9r3rB8Yw4I5yhy.zmEuIg9r3LB8YofT5Pc+eCg9LwTi9rzjh9rzXjpkdaB8Yo4I5yRWKPeVZdh9rz0BzmklmnOKcSG8Yo4I5yR2zQeVZdh9rTTPeFMjOkhPfHttrvv2TXdJMqv7TZdh4ozL.ySoaRXdJMVLOIhDlmxAotg5E7lAyC6dda5A.UdRA.UdLh3xuMA.p77D.T4qE.fJOOA.U9ZA.nxyS.PkuoC.p77D.T4a5.fJOOA.Ud1A.pbD..0TTq8aJ.PkmU.fJOOA.UdF..p7MI.PkmQ.fpDj51c+GeCC.TkIE.TkwHhq71D.nJyS.PUtV..px7D.TkqE.fpLOA.U4lN.nJyS.PUtoC.px7D.TkYG.nJiE.T73G.G8HuYv+TYVg+ox7D+SkY.9mJ2jv+TYFg+oZPZa49e5FF9mpSJ9mpiQDW8sI7OUmm3epds.+S04I9mpWKv+Tcdh+o5Mc7OUmm3epdSG+S04I9mpyN7OUGK9mOHdK7A39aJHPUmUPfpNOg.UcF.Ap5MIHPUmQPfpEjBWy+mugAAp1jBAp1XDw0daBBTs4IDnZWKf.UadBAp10BHP0lmPfpcSGBTs4IDnZ2zg.UadBAp1rCBTsH3Bn8kdi4BnZyJ7O0lm3epMCv+T6lD9mZSO9mOg4XKKWPpaC+au9C.x80FSDQ.kz5fzMmWoraoyMdLPL2YMyVPPtkU+oCEDy0pyrEFTPUx273fXt4els.gbWIuYhDh9hMZ1BEZBkOWyvB8y7b53laFCFxuNISKZnOg4rYMWDNFr1QRuc14HfH20toFQzcYOdVyMigD4lOmJLQtuZutdCJxcUdp2MXerMgp2oCUkN22ReTX8aiFfGWMdWrpaDP+OXh.JC2STOUTi6y41PSnWOjD2iR6VqFRuFG9+u.yFvskDbGcXyJLGAv0npJ+vW6VEyy8mw+o+lUmoWxCi6ps3CC29kyMAkJa0J6ODx0JiuUKOMhAJ8nE.Qth5Q7rv6ErJnyE3yOMtzfdLUyHe443asz4p74W54p7AURzED9d8I.UaV49DLfCHF86RtX3Yz60fQqFox00kEz26t9tpXPJq9oiMA2FgQ99KxOVJp2eG9IvboZwyW100GTh37kpTKWg7wz6qd11HEVcuF7RF9XQ9Zn36OkctASQCz2+234134aW0cmGO8SBpE7mDoIA3b8LFXal6A6EV0q4VMAT6+i0TggObfiMPEOzhFpsDNEAZpJo.CP9DAkNlOE0caftAhmH8nW3uu26OKCkFJm5eeMOMG5sEjE2TnMXFvlO9COJ1DIJnOIKQU1IUTLdtbVIr9ezOgUSIi18whqYhvf9XU56+1qwBi+A9IL1TR1PTa1IMX1l+u9Zrz3umuRiyipjHvKLqjXFF0gL52+N9LYn+QQPR3F82mDutrLmyC7EDAssPlaPIWdWnPsR0JVtH5SOyJsZwRExmOenGBbNxiO0lsQxjmpbLyUuVV5QD5Fg573FbDMq2oc3.eEWL2Qh2cxtRaCZ3BtUsh4.RpMmQ+OINjsXzyg+e9+4PmCe73bn49Dvr3W8egWwo21BWcIetmgWe9pzNWhG6mP9Bk7KzcyWfuZtJdtEEqVpXU31HrbDudm7+R88bZV5BZSFVSWGmPuNOZ14snHHNc4Olw5SnMlSR26F064XJw5Iq5iN5OINjteTpgd2HeOOeN8gJnOBw2ONNg21OeLWz0A4SHK4Xh3lI85bu7qEZndu8uo5n+c9KaMS5OJ0RuyDdAnGznQ+hUCRw5OP448eooL9OO9tnojKHiDncf8eJhU.noVFMvkUrIVr8FbXl6LYW16Au3.+nRpkXLW7xLyt9PZDxa514pc7YJTDAwciS7iBm4EGdLuqQQwUmXWykbL94FUFGnN7Jb4bipuyTmCy3hzDiKh9bOJzP1Ys4c0GbcvG9q861MlVvXApBJI+lI622dUeD29vveJYkosanBty0tq5e4PXkO1RMAHRrwv8hJBGKKBK321hBZJDwtGQfWoTrH0FbWbUpojfh59pxrW+3eOaMJRR4OJNlVb.whBWN9liOHPd+NDdWV3BP5DXaQQaT0sLP7YDXpwTSi4MrVB7nH8ignZ4.UUCYCogAdqr7O0kNM2eqOQy.ygU5chiHJPS2GToIhWnb0hEywtMG9v3UqjuHeIjIyvmZ9GEuPwB0JjuFxtarM8X8J0pvylx0JEZk7tVHS3EAeNuWD71KXuOWg0luYg2IJ1SIK.ocmgHaQ82+OY1vkA3IFJ4Fycqd7nH5+yXqSdk+uHr0pNmGW+G6uNn0p1QtMNejMAGomOU7hiUEz5D4KEdu3WQb73XnwViBY7AOSy+wZRcv8ZB5TH8u1zfzGFGRJGNsDTVeX7CDQkSqKTZyN6p79NIff.vs3pSTEJXKr+bx.dxRCANsAdjHpp0ObL65oO1VhujsluMRadxj82IJlaifNCiszjwsyAaLcUsXkx0J3Zk59v3EKkuVUDFSdei.NhiccuVy3S.52o4Bji.ZT480frZwGvUnTVxA8rY37rWaCgSE2czfiE0rNrmwuea0yPYC8nxjz+DIxOqVD+SRjR7XMgg8kZqyjyMD6JLR1n9vgH.DBJNGhz32tlLpK.hT6ijjpvwNc1x3mefZudHbGH8RljCFiLCQCzy4wO6Y5hOWD7aOUwanMRz5kaJKXzx3BYWTpYCK4t6m2xPPyvoTxa87FJcnJ6xdNDr8Y0Mhf4p.CslDg6dcPTXAz2QU6O9OY0PFp3GzdSMTwBeXzGd.eFjKXXHpo.cLCrii6gm+9u0csg6rfb4.szZRFf38GeivykDOyU3wvv1+0iks8CdqW1NZPpIvRA43tfwtfb16AtmV4t9f4yB4JlRR56nBwDmf1EDD.yAVtol3oAhNahXYLktprbvyE6isA+GRK+220MGuUfbLvc9sLmqGEMi.MgDsJ.ysn4tScEH+bnBLtoeADoEZDqnCP6qBDV.ZFZBA6FofzQBlC+ys4Py7gupqBrG4DvouO4VyZJYUuNg5mgiSVHaaZFnW7AF0yGDk1SKA5IRHHVicPxhqFItjr2lZJzSbKktpAsCMPhMRo+Iwgjxwyo1kqXV2Nsvmvf8Wr5rRd9ems7zLasPPeZ2OPY5uX7gIwWZu.xlzJJ7p8c8QrEduCLiSWDjJzLmQCQifxHoDaqMfGBwfu4K.n7qcwPAccXldK7taAPUQP7ufF5+BuCYXdDRICbnhslZmKZ0W8LEhkrmS2eF1KEV8r6KI2wlqziEYV7SiiifG+4w2wGdLVr4BO9tGX1j2naWDlSGF78hu42vH2lKE+Oyp3wQVHIF.wEuS.ARyC3sVgsH4+ziVSPF.fSKkdtpTawskFHQoqMb0mJIKuoPGQ75AQ0Ocq1pJzyq.lp3Nj0kyV2.2PcfFBIEDCxTu.3Pxj35PyA6qpZrqpAEMVcUhCJw3vQjmI0hmJpoyRgMsiN0UhuLBvul9xHnjh5FKugn9IFpCWFKt3HTUe4p4ph8PH9aOEYhJ6YBmRVgu3K.DzLbzguJiXZLeP+.zDAr94BuKay76EbyLOUy7lpxcr7jh2l7EdOupb+b78Cj8yo68BufyIGyEsvEVfhkdeBK8Qwct8fvrxGS8.VMw0GoAlqZI9siDYz.+iOx7UXMlwptfTuPTGfo2ZnH6Kb2R7tQqkvmNbVCDhq1V+.kZnJ9NwMuNk9+LNeo7YUNn7SqtNegrG735Yexvu54Epq0XsSyWpLZt6418UO4YO84c1RIWo941K2ye9KJe9AOu6f8W+48yu19UZyWYa9WOTBoe80Ba7Uau21mrV6seF+Eke0qun0S0Ome+m95cFp85Rm9MEq7Wskd0dmsYVsJ0unkR201O6Fx670UFr9AMW6YYW6U827j1q+Mmt0VuPoXoGW4qWe+re8qe9W0buN+pxO4UekRA9y2ZWgcJV1Xa4CpHjs+dupJ+NG2riVgmWoUVptQK4IN41YmlK0Xml4WZMU0AqILrvR0Jc7vAYG.C2s.XlnkTOEAiQZv5Hu6HTZPhR6Vm6t5tpn9WBLAW2cWcCQE+d71N84b5jusU+NmVbr2pfG7aG9u4YuyO70qdCX.Ol9QeBgGe+30exFs1GyZeX7FJmJJirky1AZGUE0g8UUjZyZMzPSpWOQMZd02J.0RYa93+vW8u8+xibVpVZxZFiZlO4u729e6QTwkEcBwAJDUrBPh4EyHv3+3+g+YqZE7FjG8q69udsevJlCrx1+0+Uq1nsp6QQl.Ad38lWHdDUJ9XyPyiCOn20OHP2wh+HsBW+XvOhDxSWWkeehUjDcsU.dGq3w45pHLTT3u6a0nvYra+AV3eZIAHJerUw+93wUBCCdrXaHJKvHg9Z14k9hU8Ak9VnwDzLZpJKn4V9NqP8vf4Lbk.nJwcsd5h+z3Xw70clD2ze8lIuKrmy+SDKZtyg2Q.AxAlPFBVYKzTOaKZtJL5vjvdGvGijemyZRYsDU5f+weG5OqczK76ELeIu0KeiTFSxD3y+1vD3aM0Sfu1DNAdcEAMwam99re564i1z2+4qd8d56wCZ566EuTIyYu2+om0Ha1c9pF+Uupd1rY+lrYqmsIZls625fsx+WkEdzwOoYye0Fun9ZOt6Z0OPpYV0lupwSNN6uZilYqb+mlkdxyeV.pvDU0HNg4+3ilqSX1ZCmEKHwy1wKUvT7reySPhmC1pYqC5s4K.wwlHwS1MNsnxq23YmquI5Im9qxlcquBKR1eilMVqQ16e+0.w3upUwsnjMYbIa1V5XMAsKVdcg18Q8qexVsZrrAhIuoHlleZQEijgPjXR5lkh07Shcqt0OVzsdaxKe4myd4ybNmi2Ke.5vn3kuX+BFu7gioHVu7Yxyrd4CQ8a8x2sd46Vu7cqW9tNuV6Sk6.dmvbGv6dkbGPg2FbGPyo1c.e4D5Nf9BFK0FBMpN25SfYuOAJ7VtOAdQ7xVS5878yglW6q9UgMo2l6r9Za9pFe0y6dZ8u4qx9rmbP1rpe0l0e88Gk8Tz6OXO4FkadhRkMnzn+GDfFMRy8lxDSdSHldaaxbyI+orbDESoxm9VOO8VkB0ahNg4iteBtFZ95sIuDT3VuDbqWBt0KA25kfa8RvMVuD7dg4kf3WIuDT7G2dI3KlBuDfDaJ25ifYuOBJFMeDD6ZtOBdmaWUtaWGyamgRzmgRwamgxsyP41Ynb6LTtcFJ2XmgxOIrYn79WoYnT5G2yPo5DNCk1xBCuc1Iy9YmTJhyNI105Ym7VEvwR2Bb7Vfi2Bb7Vfi2Bb7FKvwOHLfiItR.GK+1.vw0diAbDIwZeKvwYOvwx2Bb75Fvwx2Bb7Vfi2Bb7Vfi2Bb7FKvwjgAb7CuR.Gq71.vwcmZfiUlPfiFpCtE23rG2XkawMdcC2XkawMdKtwawMdKtwawMdiE23GEFtwO9Jgar5OtWo5GLoG.W8ENQT6VniydniUuE530MniUuE53sPGuE53sPGuE53MVni2ILniexUB5XsebCcbRc4nlzstbbNfar1s3Futgar1s3FuE23s3FuE23s3Fuwha7tgga7SmJbiIstz9x8iafiS5g9+wpJ8TuE53rA53cnuy9xcK1wqGXG+HmqAtb2Bd7Vvi2Bd7Vvi2Bd7FK3weZXfG+Yi6Ro5y7sLt6U5Rox7k4oyYdWur.cNK35kEoyYQWurDcNK45kkoyYYWurBcNq35kUoyYUWurFcNq4VHvHh38HiXERtkR7LhId2xIdFAEuaIEOinh2srhmQXwaKsPHZaqo9RD1cCMUYXDrO.+DjloBF1bh36.+liO1oBxiXF3FNyadY61rjxSFyOsYrvzlwhSaFKMsYr7zlwJSaFqN9LBXUqOxPc.w3IB7ZyFjCKoErAOuv6FSbvwhcPS4nUaMogFfFv62Ee.K8Nv+PJ0OEFrUVTCSI8ruROFnvfflG6cdZx3KuL2R99WRzad716sV8s4dd882p9Za2nUxvRMhp5FbcQzdewdHq9ZbOjqgROIEwrxpBc1D8h55oVz88FMjA8k2A9TTCwjKYl6rFFcWLC2hZjetX5URlLzxma8mTe2carcKtl0ebiPRJgQOEwfmN7kV1KQL65DwR1dhFqqNXnpB5GoVjJM.O3j4gJx32.YCMphnVfjvSJ8mPdYi5xx1jQ2gNnDhn.mOjndmNikKPoAKLcx8IJG+RXdNgW5Vohk4gm1THBYEkH1bdrgxK2YDZr1PypUp7lWXL3wmWHUr4sqwK+ZgSE6ppMH7rSkPVJHKz8kOUQ8Xpb2VSDAaXa01BxnI3dRckNaJJJmxS1VajggpRjxX3J6M184M1dulMhTmSllK8Whl33XatPowkVp.Rs6wZpiFNdkTOYVT4TyrxgxbqKTL5alUarinrZMgV2ZXpGaWtGdz3DLGrWSt02a2Cpu0tM1ORxDrJFbq7FXWG6T3iVH12S.zwvyNU57RjlRBJpfmqBmFNIyGRHKbA1iQgR.yDAYOTgHXAMZJTPyMT2fZls8M9PMB4M4dsGBbIAOdnjxIYKN1dL6r2FOKpcSbb3EVoyVg044oVjxoXKlNSxD3+3FSRyG8jVH5IsXzSZonmzxQOoUhdRqF8jVK5IkO2hoQlFLSr8+FtkhF6zbu8qu+K3db88WKpXFnFUHX0b5D4U4t9HMgv6hfSg+YbughJiOy3TwR.ruxGOqylLDIbKSC3eiEyCxy6X6hRVXmb2Gfc9Pu+AM.anIzqGfvkC6qSbOW0Q5hbBJc3fQc04VWPVF7UL2my0DY.wfiLaXwjAP0j.6nOTnsHmECk76RhFJhK3Fby2tc8McFgEUdjEIQOBY1QvuMh0v2i2OGP8iGALe1bq3JUqgpTsjdsnUhPopf2Tsojrr4D.33HoheEeJuwkFnzzoSjcZ7isLPycnMopiSZty2byFqmKW87atoeT9IpmJpYmdyLTN25k7lbg1FRmJRRKuE6l67ZkJyWN2FE7O4TzmmP80WeS7etSujhmB.ROeNZxGMUALhOLPDIkdQHKRJxnFBttiTZCy7hSWUy.o9gUgSkFmDhRH7mL..jSYz.ajNCEzzE2B0izBxVVT2pdF84VlqZ5UryHpWJWJXT+bqvIw8ENj.8y6e+z1oyonbJtdPBMAUQ+VLMeEgluBQypn+glVdoG7GlZYGNRuuMKenD283pxcetWcTZ1h3Rle4.wijeLonxAI0W5zXwJKmjVwGKqdLpp2DPy5x5wj2jZh0solm1SvPlngn1.H8D4rjRGwyS5SKvVvKPR6k3CtYkB8sodPnsuRc4RYzWBoG8P5rdnzQQpUzhijVwy6OFMekSBpsz4a.CPSJn1wVzZhFizTbnjKIyYnhGpAvnSXimonzGHIoOURdhnTu9FoRysDGu6zcJU5vVW8RJ0tc0EMPoiwJr6TIaYHGkPVi5tS4PgNcPVIPoqj6WcrJZFfCZZmf74bmBcYUfURcFpxjG0AxjXoQ878Psyc+fNG6otc7qb0G2zXCLnH7lEIqVD3rEXU5f+Eu7LvWLWHD3qlq3vhdHDzaeOsNXGfbXtLb4yvUHCWwLbk7Iov32OjpC+gNZIdR8POySto.qhvvrsQLkF8iX5BpIbFL2S7P9bsgEujJq5P..rq3YsFcLltlx4LHEqkraAWxUC1Rb4xVhp3ftI3Fr6wc5g4NBYqyLmNI4zC4Oh6KQ+Swi3dj8S6.tOHUe11X2EWZzqRwidJPizNDm6ASMcJRSGZI42NRnC3jv1Gnl5bjtVdphaYnQchXVmuW9nzTkXFtyyf3YJIHR+jX0+P7aNJsWU55npHsh84b2mRpm+H5pAzIEpAQuTXoVAf0yuxrV9ZVUvTC8wRPsJXo+Rz7CRxSxA5S6hoBRpNQxRJE0h9q.bUkbkNJRUnRGEZOLbkZR5Axvegjwi7yHAdbgNBFBYQjQrsAXbB8M2saBHqO.lLXHj0TGozQOEuejqW1iE6IorMd5oFZiDoRTurnYFIWWVNk0fQoV73dDfoKllIg5vLxfmSkTICwA9jXlQbolcPPHCvD+wZBcjPVUgzm5P+KiLb4H+uyykifsF+y92KakRtQyQpZDinYvBKZva9JmBuJlmoNBUMpI0j1UYiTyNitry3LPcXiKXzWEMqxigIBwTRzSMJHona3YkbgFyerUR.NHGMt9vrX3dDivv0rmRy8.Ould1Xo8BPyDkw4DEYDhOXTokLQ3DXxuvI47gkbLc2AIrypInzSL0wn9b1V1OyNifITmdh9vk3BjlNWPQm9APGOVc8RWu3YwplMjkkFpKl5Pfegxxg7ze+nwQQ+f55QwRV3XzbKNqunBGtIF3bbSs4B0lzMJcZ0gOiEoreSaSeT2tRmuh2t0d5PYHdtgO1Lry.rlborWgsLb74ckJKzrZBCf.wD0lgQMdnKt9H+xE7Z6FYvlYJL5uCsgK5gJGQgP2Ei3VLg5HU.00gHJPkxhbcVaQTmEpGLPeQ+XKRqyCopT2mawGfR+8Ib78CP9BVYpKK0SQryAHwZJLcxfA7hAGf92yPXeygFcaw1HaqZhcVCqrtXXSjcxluJwQX1t+5JOw0cZG4IthLTpK1gCkWi9XnzPvcRlaIQIN8OVlZ6UZ9oSwbS0EwqtZ9b4lQyxzerCS4r0grJdJLCMRGyO+y49LxuQcX5EtgL78vtNLWW9b4xkMmecWQCJsUmyCxXv.nCw2fH.oHCOcuvNcW3WIYzQk6gdADtxLXfeSChRc69MVVDENVOksK9PEMYf5z3A6LepYcJsOCJARcB49BKoXZOIxKef8MpsPGSfU7MQDot+cStzySDkQVkbXIj5yDxSPdskJlBCLLDWxhKPyj7K3XRIgSCL4o8s7FWUjoRYkPTadDnF+3DXWF93ZAqvqINDbWYJOCmvvseFUmwf584sPWheRKPeL.zVVp8InwH9M+FtwaAvS1hVenmpbL1LotOts1ZDSDVNXLJhulfNrziXgMyE.wip2oBxX.N+9OFV35+10JK2mC3jjbfCsqp1.AYoWK1IkeVC71izoE9TKokcYDli3Y9g9YPH75Ah53ZnZCgkbtGDXGcRqtdeotFandlhi5hFLD45f1f+8y9t.684eC1gkOB.45VB5V1fRFBzmiF62rLLha5UlhRqceXxLcREPluLPCMyl5atnUeyMapu7QqzvFlcJsWLkkVtwJcCmUmplFePDZqgy6uFd.bP9nIrxOAMMAWRiotFVsJej62Ni5iVIZBlJyFc1J+IuOZgnUeKLapuElCJ9ElHE+hQq9VbBrRDbIcET7KNQ0pRQqVU5p2ctzzTqt7p6vAbzNrNwgU1dbXJ7zfpBNLdPnOzMoVp1VAaTFNrbx+XgHP+G3uqJNquDBqBwgEsIAVnNF3m41dDlFLHhylLLzaQ2MDtiQBplODvMKBDgvl.Lsxj4Ce0Q3oPYIkhJHxw4diP5AD1LTb4afOyquA7gvyv.AXxVxX6E68gNwbbnKwL1AVrdRJjjKXfTmN1Ln0OLelBYJloTlxYpjoZlZ9SbemtBsNbcccodltUybm7vpidBQK6DRj3bRv5jVUdv1TcKNMkCOe3IGkgyzIrg3qUJ1ld9HmL14i3zpiIgsIxTTTjdw6wIxk0sIwTEkjiwMoVlqPF.T4ZHfrKfedDH5D4axuisl3z6GUuwQVjo+YSYYLLUufcfPncwohyHJosaQICCfcUrkfvgCvCFEYtve1.7ZrW1XJa37cbFncqtrrY3dJoPZDer8T2mrFwvLr+cIuBFz+t.BhMhQbxJxfqX1sCdGMzmEG3xj9DKsePbYgtLQQ6eyuHtqMWheaqkntwTXB62oH+PsOej2WKO7gAD8uq8rCNXuca8.tcd1AM39btV6s8dbAmCmsTSVMwdR5Hz.aZopuHrhMGn1qmrHIIKlgyomXFvQaoMCCXbjkR78VVXEjWw9ovXoBnIe57jKvOgm5ImgeRdpmzG+jBTOAbxV4U3RZ+.I88TLKQLHHXjQdmzCq1hY.z9PRZeDNsTKQN2Cb8DT1SjLADuzvVWGV1yjInWWPGZhZERPVXz8gElSry9hsMPlgkEwAQwE3kxpOZvBbJwzrvFbxf+YfXeMg2fHfvhIS.7+g4NOe9b3+vAywEjfHf9IHXw8QsFBnoUcD2CnxlUjFL9rAa.tIsRfFkPW+Bj0kgHTGckEw5BISf8aJTCRmLw2QXFnMnGjZxB2fZD5ycOtbYKtB489DFE9y9zOAw9TzzohXQx.pKnrwSxMOYM1ymglNV0vKIJW1SU86RFRLe3Gyx1nwJqMMMkLTF0sPOIS3VHdtQR2KUMn.6rH0lEC0RSuCxFCdWgRu3zPaCjo5jfx4vycDNPYSzKbubsVkTF6r5rNs38Nzk3MXp4XGn9O1aOQh8dIfo7XNyw9Cja1Li2ehQNyvXmV+ElAxmt6dqgLOZtWW41t9K16YGDtARXTz.LOtupgf1Esjk5Hp8mByi1OBF9vtqVwbNoEuL61uAVFSasJwtvD+fbxA0EXFd33zJEz+tXNtgRmi5LjloLn0Yv5KNELEC1FpWP+tyvc5KQ8Fn9AZaTLrqjnYsDen4klhoDRSRJpGbQppNt2C9vnxJiM2BmvJTDEmnFJcXRR9r4cmDPx5Pu6ykxNiKQ8BfQrG4wALOcOVjHTuuPG0y7zmM24EMMJa2ekIDaZCQ6mFprQloPhKx2KhrHPh1FMq.sgYeUzE1bN8LMQkL.iVLg7G03dnx4bqxJSPIh62fsGmG+e1439z4.BXO7ONJrZlcIEXMZeoAb8QM33AL8Q9YY50tT.02nUJHyfYyQUTlinAqKirvEiUvk67R1iH4mLidDqoWBg0dqUxt425mv23yVy9KzxLz7skZC6CXbv6YqTiiQ6MPVtfy2NjxMgX7Tp8hJc779ZEn5egIArt6sgdz3dOsU0IcLfNBLEwJrYCBY.rL.mMcTG5wkMD6DRYQwrLYIjxgIKHXLjc0jovxFhHnras9qOBucq1byZ0xkCARj7CxliJAKhPWzg.KDTFgnsLEQvkAWkxXJOv+B8YdrVHAUEUPuAishG+CG9IvxPp0AMjXWNEUCNlE50ZPbJ7UHPlgN.ODlUNYAa814mTVu6HoOD0YvbiYjzxKTVH..j1KhOMBbASxJQD73eg6k6mlrrw0lclfH+dwsoB6L5fHvjte4zR28cQ2vHxhquH8rx8ASXDKU3GzwC2kIcKlO.KRI0PpH..9IY4hQ5iLEFYZKPKwJSLdP5PULaNF6mzf8nXsfv6Y6rh.rjh5HnoBGETjdhKkKa0LbGRrIdDoihWyrIH1PKTxBHMk8vRb2mOGiIQxSrxDeot3+xPrc3NSLOIYhiblBWjGd5RVLp1m5G.LuDACQEFeFxs67Bm5GQNqQ.Ya8mswV6w800ediM2a+cBGRKi2JBZp+8GM3XEAI40DZeROrts+PbS3Z34M2zFdSBpn1m4EXY4DyI6ORNHb1IX4gx4XfHXg0F5ebdSUcIH2La6wD067pQ5jHeYnhrNJ4CMSmMEr2kakMAXu78bbXFDmmbM2c6VDqSIFB7SpEOGwtmaGO1oW4dKS0mCOLw434KlKi8zCvaYER2yoTLAdDN.wj24hvH4L2e1YETLj91Qhm0Gg.DZGWdYBG6cVqBj3g.0QAl1BLORtL34qfpzExfmmBLka.4Er21LmpHVxO40LvhzzLOKmH8L+Jfwp8FBYWPlaffVOvYOZnQaE6zSLoGSpVRDKQw3rnxNocXAzLGSG+c0gKgCSGt1pZJhZAX+0Yx1A3oYKotcH+aJ6o9c9ibB7eXqDFHsVDyPKZosM4MJvdGwmFENTqR.MKI70iJHyC42rR9xYvSIlTmxvwH+0GndhHo1QTsnrii2BK3MyD5KN8lb7MQzNuFBzXLSBQDzwZN8IhT5vrm6lDQwYEOfqU8cZtcCtFar0A6se310wdQ9J4qBD44yxsFrj9Cfi7115beN2wHDLlJqtaLyX6ehL9311MbMW99oYmm+F3wjKf6StunNZRzK2BI2DY8jfox9YKSlQ7Csz16eOrCEs367Y8LuaSbVsQ4wwjkmw4uWd7GT7FgDAs8YMecVTmKKvCPgv.mB3jV3jsoFDH4nLRxUFLCQoWKYzut7v9B1VZNVFMfaF7b9RCLFBzBYeR.ekYhxExx0ZjxIhJbZVmoBXtm7rGhKorhmOT.rYmh..pPNZiXALO2nxbjRB2a07qntrQfJ8zDAWllMOhFbNTAu4QveOOMEcdbgih7boI4fRXULK2diP8J3NV70lKlIdkBfeEfrJ+LRVkCUMwkCVRQ9VzDT1jfmhDH4A4q4onl8Cm.YDNCThnRY4pq0lUYRPq8A8QSKwt2Zt7qP+x8E5fOTPH9jHWI1Wh5zAujfsljZyNdV+f7uPWPquQY+33d.+fou+8DwI.5Hh9mTlEXFtkxCcYPeTI8JAOftsv1i6vPUxpoY5NiKObgkg66tLisTgxlAZNeDlMrMcuo+JpadPs.LJ.dJatB2C8064qSEI4SNnJZUrOEpGoZZJ6oU9a9MTS3L8i73sO2KNV9L79HQHrkGQhk9T4rTdm7yc7om9UnSEFGfUOBWlxCI6PswZ2BSbBn0DEmXuzQYq2dYtrLfflc7n111OxU5JY+vopB1ZwkC1.B4aQy.hMMfJrMMrVIMrEDKxY+vIvBBNCTBiigC76.DFUlMBCTWyLjxwzZ5oSt0zbknnA1x4o1lSO0wb5oi2bJsqmwYHioiFxUjpiPkrTNnsipgiMxbX6.lqIw8fEs.0Shm5QdVjBH8nrAqMAbTFHjKvUivFAz91VnQ5RTO+avO2iuVSeO.oQU3HSXepT+BRpc6lUuo9MhMHFW2.NXEbqZm8gARfOogIUMK25HUMzP+8zTUO0AcI4m9qtVnzrYr+hPWWb4P56R95D14kmlHP+Tx2ySSPmGOI8ew4fRVUKK211th1wax84rWBepg+MDvCt6LcMKuL2m3c49TCka3wMmjlee1SLOJBtSkIC95RTx7y267K5IpPu72QveotmOtA1Ont7.p6E715P6ZL9zCOEMhS87ILk9owaJzSbWgSk5A1JXBXo+Od23IS5M9foOXRCNDg+Na+36DtLtcfOMkHduxf3ukEaYnNbQKsD+hQLpC7ynD8uTIGhNLvYyoxEv97FuF.QlSgmtXHmuaWMFUGIG7kQubkjt4IuwtlOsTfL0+lT74kaXsmInNYsIxfSIWwBKZknU.1J.xScd5FZg3+AN6jWdNm8tis3bNTZCqXrkQAKqoEgoIMPTU6fymWYiYtcpDgz.6thZ5mG5+7oiO49pZMM0yzEY61++Ss3Nm+lTIBDW30O7gyx+vTb881o4d61X2C31uwlM1uwtqiO7NcNprmCEK7edOCiQyx.Mtsxi0j5L1CxXpzBV.7gZOWR7rwc5JSktEIKQK6AEMP9lZhmF5AEsUhbwGVuZWxZ9Ed9gD4S9MOudG64TsE+6WtyGgbm2SsW9XhzwT+qkHZFe8CjR9lZWbDjFX7tsT5pFJgrRjO425VICNJR3GK2XmRyZmlXOyyDUGK8V6AjbqPdu4Ve1IA.5bpwE7M+GYl4dnVx8QR.HrrndDBvA7nBlOxP0PPtkrJ97yxNK2yNorbBHMn3OcQHRLE6Xp+SumevuGivJ3WSU877tA3KWOwSQ8GVWncenT+tKWYtY2Ymms8AasTysq+hF6y05EsNnwNyiRxyIKKdiZefJ0Qi8PmVRmfZEPOQ8BtuD0F.GXGzOyODFoIY2jJveAoxQQoUbR8Tq.ZucYr+VPMndSYXZU9vXg8dJ8UukiOVuoO4DrS2ngcv9RiXHf4Ud5byBIbWUNShy0xrRsXZe4EOBZzLhQ3qZabfJdGvjx0.DoCqQBXh8IUj8TrVy40w6VGqi1tDDviItbt0i5w6u0Fba9rcW+fs1a2VuI5L0ClrLxpknrr4I8mDauHyytFUvMQjiFoeIscNmjngWAF7TA6JqppQHD2x1oNMSxaiJQqSWV+TpbNngnHgGJXGOUAPB6CJ2kssSyPCmUZ1JT2IeR1kdbGRovfj.2ihqcV8Vmz.hf6QyW9kHGR3bRuAQtBaJLI.SRHo3nUL0.8oobcmdvlBB3r2lsoDGYaV8+o6xeOpw0bIjHjxbW8Q+FbWGniL3eYcGBR0ux7RL.Rz1R5NVIHe5dBeTr.YhdtsESJ3AT1vnpP2G1InInivMmD9Et4VVy8tJFx1LiTuIaKPWuDuV7cMo0hOvMwOztfOJiOYDlhPnYJq9ni0Mfk1Ik2riYtfyJti2dcSs3kKl997Y3ldBjc..N2a9S6WcpGdSIhIAppYSN1TdIsQ3Kc9JNl8hVCgxHYYenxk9z+0Jig0kAFWsyNNCzlxLSdLABI7oh3Ez1W7.2mawWtHtKON+YojGLp7l6+FR.82Ik6w3OzpfNJsWseeG1BZCs35rVpjYv9RzbKsvL7KYmCC6LRn+XP8YaXkfT9O3q8YjAjFqCqebzdFTqXvUT.ViOJTXxqizkrKG+T6vToCJUXemxprME5ZSOWd3QWc1yOk3f4nfTqAGhRoQukBL7dpdZBC6K0VOikFZF7HMjg8cqsepzqIu.L5yNzD44VwQluuiOj2gizoh9+NRvmQMPmivfpSXmMHm0lg160SWNmrlkzjYozRNpyR3dC56orUTMD227PS1Wnmn4s4zs4.0cMSONLVz8V9YbDxgOlncAy5BT21FrSl4of68enSAf2zRd0v.4hapS0I1mgcUfZEbvukuhGaJCDN27szyc.WafBA75tcgErYBGg8tifslK7M7NrxU2TKNwNfkLeTFq7l1cVrYORVDNOk4i7MKW5mUOJMAXlAzzBMPqUIrjE64uoyoShnpI0SRQP9EAJSrXNqkTrI9BCLkSFc3KDdX6JguTQSbfvvgh3spgiVDteMaAbOtTNuG2+sX5UBpE0FttsTKOUu.H6KapPhkt2mimrIxJ6ljr+xxxFSLEWspcLE6eh8eachEsvBjYKAHZG3UuyoN.AHq+fP70hr6oC6xZ6UAGsceOf55Vx11hRxo7GvKRF6fxNsKj98DM2gCKhmS.fmIE8jDvMIHjNbpcwuzpbsHCk2+XlVuEkSux7b9yMquE3E78d1Aas67wu29MOyvN.LrZmoCrdqcdLqUeRfOaOSqflM2Ua1S3fzzd7VRw3d9+zp0TLE9XigvEnAXBDSnUp+LjUJ.ndfV0HGK.Vt3wg5z3lgwl8yyVq3GodBwwofeJf74ieTC0HBv7N7iOS5w0VVnLI7mcadwdOPYyPikTEK5ukJVbp9m2BEX0kBv.o+F6bzDxvUHbJD.jR+wRNFdgc2mDfUZmXBniXWgQx38Dumpo0dmyAqJCB0Ld.k5ArYtLrfSwGp4dXF2gXfktJLO9LTb.aLGDQo.Uu.xlYjnYg2LikKGj7w282ASKp+CQM1Y.w1.wyOqY.XLRxx43x+rAaHUvwPp.kgzbN6L6DVSYpG2.4PlVKCnb73nGRt3Obc5lmwyYY9Q9LkBOkfjdiACMtHUZ7rJfUa.yMgBsFzgY.VmIJHowzMbqqWSwPawZSLBZ66kYaXjdOu4YRrvoBRxvMaRK7pw+Plb6Ao4JdYQu3UqlwMUwmcAQ.neDZvFODeBic0.3i2MGTv68fmmVJsDkbHbKZ1MqPPjiLDGUfz9vcjsdgKBQNySbXb7Oi.AY+kPPGsCtRkuiW5vW1aI7nVRatYipv+EwRxRPFgxAeDiXEp1SfLibx5P24iRieYDdfiVIrJTgb9OtP.UHFNz5XcXBjd0v+4sv7cPHFommByOWsgMsnF3DufuAAMj05BlBlVpm6CiD9w3rnDEb1HonhKCG9ibYy4c3F6V9KSO+VA+FOGhZnmTe2M1tw9yo3Dx9FMF6ZL8.mBU3GgezmTUS5rjbeocXeDrKdtjg2wiCI.LBwM3VQFaP12i1T0BHySyT27xg3Pff0CtH.JVu6KdnGu6x501O+y8egjLu8IbQbdJhegKh6EItOyQ567uznliILOTelmo6+7u8TZE+yg4Q6ZBuGZrIB3m9Bxw8UJg+9d00UBgaMwnqy3CXhIUWYtpmLGzQBnKx37VQz7UwXTBCHZaBdk+7bHb6MTbhdlGKIi3RCRGVKdthPBMHcnm9a5IhKcOkO+hcnvtZVFW+xf5BeYHSCE151hWLtwmVWUQez.wNnj1TSTWWT25HP46V7DwKVWsCrh9kKjuPwKyfO1W0f3AYawtF9mr7zI6YCsjXtSVI5jsO9L1x2zUfNcvUVf2jwW3Rqig4FvFrw7fUIvprUU06nxjSL.mHsiroL02Ts8HcRPSE9JpMYCiiMmQduoO0.CYVcbB1QejOgiaK7QxTeHNZLSM2EhFlmxSbBFb47LoduED4r718Rw6CCkySUUA7XFSD23Nat4XRyHpoS+Ab3S5jAvVeBNTJHXXrOKqfyabjx6wpmm1oN.sFlM6.eiUJASsAwyfeIfR0QYEufhikqI2+3I7b1O4prKEVYSOrFPuzjyTNa87HxI2ORbR9PkBOzIV0.l3YCmPYgqvTKLFovDHRXXJmd1QVv3hs7pigUtFfxrotFY0pHZZY35np7OzfSVUnC2NaswVTqbrUg+YAW5P71ZMNrU5cCZarXusx3JjVEGliDQh3YtZNlL9DtM5fvrrDBRgG.w0yHjotKHUVp6QKzirraXVaBuElG275WkAegBvHU7IUgHfB.hieDw24qfpv6hZzMaggpnsbCbjD1YXfsDNAkNtaymZjOSLZmqR.O4FUyzgjwaDOGFhkfTzLAX3+drxZWmD7NrhNR1c1GfTVNvKIquNUlJAKszJyr32Nn021oFsKd+YNY0nfB2jqxxhO6VZbW.Cvx7uvgpKwwG7Dwnxy8uuKHoQsoXLgS+kdhK802a+8ar9An+ciF90TslydNZJaobtu7X1FF4RuRf5GNEZ9YagxaWnQYCdE7NAzU2QfpQYGeENAo5MDNAs2CX9SOuMYQgb4GO4xSQt4jSF2Z2sNXq5au0eUcXWMLOJjoYifLUa.DucCuLvsH5mh2hnnoPcrpfVGl8H5+6eZb1c6nUpBcqNZkHXkko+MY7LTiq5Y1WELvFoAtRQbd.ruVcJTrOW1B6ZnFJ8PcUMO7a.V1xLpUZvNzO0RXuuSQB7oc.hGvq5NbVAlAN1qKkgqRFtZY33g0txI0JiFXl17EoeNF3B3tbMLc7d3J.9Pmu5laVeSvQ4ER62QwEaZJllojGhmrdmnWFkiPYTEJijvpMKKnaPhJbvCwvSjzwtxdKEcI.MHIBrWwNw6Xc4LCo2y1uVReM3nn.QwTH7jl6nMxlb2IL5f6GJyWx8K43MOhGLCWXxBNhAJ7a9MbV+n.8OJS+ipz+.GgEHcZ25WAFeSeWR2Q2D0wFp8A1I97nW7h.W2VX0JIJHqPmdq8Gju2739d42XQE+txaLIp8jJL0HQiei9+T2fXVmq+Rb2ygoYesYqD9xJwa6k6zRbWTGq6ianKk8sQkclvyLnVM24kJnlXTqPX.cpKgbop6t1as.g4v2H.Vx3LTsNH4wQAbymaVYC5zWf9lbgbQtXUyeD0cah4Yzcd7erWEW9c8snk1cZ7c8EMqZjirzfCzFZFZyMKkC9OSFpPY3+bkab7EoNr0HstjHH3vhjSm67NBOjDqJq.r5QQhmcHLIPYX7dp2PSyNbxB+xwKnJLicPv85Of13K5A9bgKNoB6KCnB3o17Y1b1jTcXB2sHxqGlmzfQ29TjowC8qBG4sE3x.t2wmBkeVQetiL03Zf+a92EXdqKkystTtYhtTv0AVchJUXN7nGS.p4TdQnS2zplhrlf+yGwf23awGETd2JnEOJxBT5fTgOTYpmiU+wWsJg+alUsxOqqVW5+.WLnkL2vO9WocWgKi+yuwTHAmZcMIAYDZ6p9LvgJh2O000MfMmrryQbUvgY5hqCwXOgNY7Wj5wVFODyUKJK10XQ+N4i.P7tQ2EdnW3bZcKoXufxTqTbNWqNrKzZzKwKapufN0NgvmcqG1Tkh09Sy0sWgKP1vLzVwMXG5HajBtGUTOkC7.nFPGiTo7fJ05NZ9B.fpm2dOKHjoSmN..ST38+rGZSr.T8vEfNEvPWpGLSdvjVqLNMemqiYSHi.iXMmEzSr9pqK5VVNCNGsfnJLkYpceCphl+L909yyjYGgd2JALhpegBQ.WImytRZ.HIe1vwVkCqjnumluL7Kfj.lTnakkqZSw34M2tp9R+NSyrkyJzGEcdm8hBNNmAWCjjIROfDYqIqjgq0EJnNbNTMCW4hoC3.HytFpvNwWSB66rnLuR4n4Ry4S41tAgSfo6tW2tqcQCRhsxDkzz25AwIHVmgb93zm6D29.EiwiO+ekI9x2a42V+KYxDvpDws6dGXcv2iLX1bq56tG296s81ISTejQeUsGv8rVG7TvQi6Te2mUe6GjLwRbanN5XYQt0gd9vMgqPmNK2QTVzPjS.6WBHQfBgNbe2w0Q5TTOnNjqnAMQQv9sg9CR.C3wkXouDuVlISX+2.oNcPjGdCbcQ2Vx3Bp2RtcGfW1Yjl.Y0CWha8c1.QeX67RtT0GHfFQ1PRe.9kGr+13Bg7NrmSPrslnr.bp.rrvw5pxiPOz9BIAUeQRFtWz3.6y1Ey5NwehsD+1QhvE5kde0Qxc35Jozwg1GeAQWjaqMxvc7HCDR6yLkSbBJnmh+A2NHXpB8DehpbGQsGwgFLCYF.DXBiLTGfXs13U1DtQTPoGVwnjIV6YOtElOpy0dzfQjJ.GFnBDpDhZZnoxLP3D5pZGMotv0hJmNNbdQjTPm6LQR7IHAbmlzqgSdPnzRgueVzTQMvCPl.QTQvv4pdmzfhrJzF0dhXJHwZDbejayvLb5pbcDaKM.0++XQAiVRuVjhgPR3uAx3wv8dOb.x2AWs1Zml6u2yarSicOvr50grLlvsDqHdUMw2qqKw03bT2yN3EHmqOAREhb74qfqq53EAEyef5l.G393gpZFVz7IK+btWqB27Wpbh3i.Qq2fEUfIAT+fgfEATESVFAmwf6LbaLhkUjZi0b5CfDQsjp3a4D3IPMjr1rFpnNE1dGdSDqCx9CfpAndBMpPU9sYSKAemaDo+31nw5aWee7ZOz5JPmjrdr21LO4nuLTG26JsKxbaRiOAKkkFBqVTCEXakD5o8GaRYIE9JtB8NbujfHBchvKJfyoUoMeBmUkNjE5YCKRZfmT9IrRA4.uWS8rTGhuELPebDbWXjMu02g6i.7K3ImSxQIyUuJYF+87WkLW0+LSKgzv2EJgKibRyTIkhP1CSNwbvRh3qMLGsC6QykKlwYDQ3FkwZ.RNthKmJ+83yBm+5Eg6yE32Ki+sUZWNOZXId3cnONfIm714jGmSdW4rHNmEwevlST8vNu3JI4Y14Gm8p3rWE+g6rmmN+4sHPdaJfI.eYLE3KS9zMM3YHBuMU3sIClJEHBfB4Ie5lJ4JyPF3mYbdClPGsBlPkIxixEIedf0AdIZVlD3OIHKdF4gN6UmDOzOKRdWdELQrx9wqgl1KWhDrmykXKGIbNqJQICornS+H6ggodlNZfnSNP07Xe0bpMtNhXa03qdFbxzZcHhQ+t01t95O8k.5wVDOGULSkL0xfWBwDj+6pMFvSZrcyF66bx5wcEWR61xhBJq2WRtilnh2ncf40lG1CIvKUUa3g.Xh.ZwvYBul0jUgMMnMgyDZNaf8Jx0SDrx0oLi6AWE1J1xKD4NPBYa2PXvvsTHmRx59dFX4MYvtSZKkllmCfIHy.6XrtvC4LeGRqxRY.UnnxLg4JPZthxHBaRsMU09pQHX5hZX0oTXBYG1FVL6tj8O5whZnz2TU+E9xqdRUpKLYRyRm5DHL035WrD2EV6TRms3ncXzPNQeHHGI.5vkKfPyFeWv7H5koTrYVpnkl5.tAF5Ez3WbcXA6W+uD9bC7G3u1.9XS7G3e+X7G3uVG+A9qqsH6gxmetczgQHNdjJvcYYGycdJlyNjJWfiSOx1Wjqvb.UYkgYxQ6g07GaVGtv2WhCuxyblK8L2U8n6vsxv3N5NRPux1c6VLWw1kZmFGGpvcKAWpuFhBBxrERS5DfdEnPna0kW5g7qvI8Ed7t3xzZclamGbQl.7hAkIQHXVfCxc8TR+RTSG1j.NcttDMKXuYVA1ir.0Xa9loE6Vcw1jc7tO95T5dNbjO6GdpcXKzKIAzViqvtXitcIKsKIQT2bl9sI6YKS1eAiWiIxk1B19Bxc4NFMx0i3RFZ4RK4MGDyVFSySR2yEKsrYpAlIvW4610DgOIsocPBydVeUDXdfa8gWsWeHO7JJ8QmUQIN.NE+lvXzKSOiFb0UGVxl8b80lG8UG+dDMAkSuwNVB6WI6tVVaRc.8huClX4i9UrRsg9dJlo1mgIoQ97H6EAYIyAgFn1wZK0kwdrxzbOvJgLkR2tPwfKt6GPoYSB67AWeSIH2vslcFga4Pf5oPeApd12BD3w.xfKfLjxKCj8zVcwlY5CtKXtY44UbTqUz3VT37GgLhVN3svHmRnjsCb.8Yoh.+K0iszEf+k8w1Mdc6R8BbqC54n+EdJtqHK8MMXXFtyf6rdHE7IZPSHETK0.n3gkehF8kMEdgegW0RbovBp6iOO0Xg6Xl0yLi0pnT5c6RW7vgTLhyMqJJQNbDMSq8dpGHBdGw+hLDtIiaNkXWkAQfMUBbTbmN9BThF7k8i4VgMWVySPlDIB+tvBVP3iyIV73hl1UwMljchxifiY.HvNxVoTZqw97OreBfEr2w+jNxj.0v5Th0o3zgqocZT.3cGGbNf3JMvRyrHLmgEgH76ybwvvEUO086onBh28kBDOOrHUxOlbu1a8SxtFgv3Ir4nysD19xPOhKWPkmkW5gD4Zbs6kKKZPSTF897xkqXxAVszGdtemqODR3yo6CE6GtRPa+Z6gap9GPPrXxFAz3KP0J6K.pfudw5HncB4lXMBke.Q+hf4QhgEXEewuYgx09clg5fRGADflcTUTct+rMIg0MnM8Rr3yEykMeiu48rtVrgaZbxsGM0MEsqSRK1hww85l2T2sEI6mU+JU5IjwZBN834Aq3nfpSYfZ0LHysuiqs7xXFaGoB5cl86cqFllRyvdAqCoWoKy.NdIrtlHzIfxsggTnDMV1LChEuwxwR9cjKwVecHSFW7iSc6RJy4V3EsrjOFLdjZq6d.VADA9W1sVjfRBVukVFj6DWynLXPGXaTh527Yz.3d.sirvShJvEBDM3WegSkP8X3R0Z6sZtLbyMj1pLkzwkWcqUBztbMzjgBlPaXcD+1QBJFHQjN3TA7xPkhrzhVKmn7EfJ.r+FGZEHZTphTF0kzqSPHYGdMll4QE0PMjxdaCNgdvzHM35Jf2Pwfb2ZmeZt1bvBxMP3DX88vqFmIWfOabZC6EBy0Ezd8DSAKQltp4pUAiLAqjJjJAyMiok9I84KwWvkxslE9RbDMinzD+m5Qm2rOFQcyUrbDHAgQEBlf1iz3Pz.SqY+Me5c9YrG+K9lcvJLdbbFCItO8OnkTgOxHpM1mld+poZFOGeCuxX5kTeS3hYs0frhlJ1WacJi0jfR0RbmZwyMsO5eZeASZuH3zFXv9SORoiXCAMRSn2dJxWDAImi4YyDlvbW4aVYniGr.pw2myITp9F.PMsgkG4YBe3jwNoubVFZIBdS.drVJPMrTz0rAMgCiZ8M5YXZ9L5B69LyMvtDcpzu3gbAzZQWOegOyjE+bOHysKBqfXyFUuM2YVvQ3jVzGJ5Lqo.l2tI0sbrIaFwyaKnovaxfo8KWno0MlrgjWNZ23YsrnE+eIqopP6QynaxzWk0OtjuR1SZd6luDca2xDfd.RsJS.KQCrftyxYLmTi91Ow5hwgpG.iTU2QFglg2jJvYL3fJkyXpS3OXCmFbNBz9gc7+EnQPq0wxcNc4WISgjYb04yZzDIFyyNH2AijkW1cVujqpGZpuwFlG8aGrG0ByMacSCwKTJLdhAKWY2vgzgsDohqhgA5zEOEkSYnRf4koJY++Z9rCtXnH6CrziRQ4BGp2+byNfob7XSZFexnh0HGKK2s633YRJbwzjGh457LOwG1taWKNypEibc3nRpOtdHI0yH8km0bi5GzX9no3pqgk9xxKCm2RpxhYGpAcIVDjsO.ejyS6iN3jn+2v0BeL9bPKl2a5IU38MPXT89VTKK40Hk.l2QoDfjaG7jsZwg9edCgOKe2O.lEpkvgYUbFjkYvJxwBLspA973.Q3udu8e5V693LbsdxdOa6M3NX+5q+Tt0dgY2zs1fEiix3A3LHb0eSSOWZ562YidB95qqUiCN.UUZMS0RLuoeYB9ovOFARvFTB32.8HP+eujJjKWX+JRKOk6kKoitpwve8bhTK5Hx4PbZvtixJ5KdnU3ZbO6fz.dss+WCL9Obt.8rVCLhVseImdrGPHQWS7W73ScEBo6DwhIhT16zQrSKEwygiXC8Xwh8+ODagQrK
-
HISE doesn't support MIDI 2.0
I'm living under a rock here. How wide is the DAW industry adoption of this? All of the hosts I'm using don't care at all about MIDI 2.0.
-
Wow COOL!

I think the MIDI Player is whats needed also... it just wants an upgrade into the MIDI 2.0 future

DAW's do in fact purpose Sequencers and Piano Rolls effectively, but I think they're a little lacking in realm of fun easy fast inspirational music composition, so I want to fill the void.
Took a video but the files too large, next time


-
@Christoph-Hart Lol it's a fairly interesting yet comical story from what I know. Long story short - no one is using it. JUCE announced they will start supporting it soon and there is a handful of controllers on the market that use it.
I think the MMA (not the wrestlers, the Midi Manufacturing Association) has been trying to make it industry standard for quite a number of years now. MIDI 1.0 was only ever adopted because the major music companies of the 80s (Yamaha, Roland, etc.) came together and standardized it. Companies don't want to collaborate like that anymore, so we are stuck in a limbo of MIDI 2.0 always coming soon and never arriving.
So probably something to keep on your radar but not worth the time to investigate just yet. I'd be more interested to know if there are any plans for CLAP and ARA support in the distant future but that's another topic and is also not a huge deal immediately. All that being said is MIDI 2.0 sounds awesome and should be adopted....
-
@Christoph-Hart said in Optimal Midi Architecture:
I'm living under a rock here. How wide is the DAW industry adoption of this? All of the hosts I'm using don't care at all about MIDI 2.0.
It's only just being rolled out across operating systems and will indeed take some time for DAW's to catch up, although predicting Bitwig will be all over it soon enough.
I guess for me it's always been a fantasy to have more control and resolution, particularly regarding per note automation, next level music... MPE has always been a limited workaround.
Internal synths could could make use of the upgrade

Oh look Bitwig are already in the game.... yas

-
@Bart said in Optimal Midi Architecture:
Oh look Bitwig are already in the game.... yas
I don't trust AI "search" results. No DAW yet supports MIDI 2 from what I've seen.
-
