Table Based Midi Browser With Clicks & Keypresses + Other things?
-
Ok so im still on the journey to build the ultimate Midi Browser... ive been able to get it about where I want it but there's a few things that just aren't fully acting right...so far ive got:
-a table based browser in a viewport that shows tempo, time sig, bars and key etc
-it's clickable and loads midi files
-you can search and filter the data in the viewport
-it has a midi file viewer that follows the midi player transport shows the midi data and allows for drag and drop midiThe main issues im having now is that:
-I can scroll the viewport with up/down arrow keys but hitting "enter" does not load the file only clicking does....would love to have it just load by using the arrow keys + enter or to even just have a "Prev/Next" button that will cycle through that the end user can click...either would work..both would be great
-I can't seem to work out the color scheme for the table browser LAF works with a panel and regular viewport...but when you enter "table mode" you can't change the color of the rows. The problem being (as seen in the snippet) you can't tell what row you are on because there's no other color option besides gray
-while searching/filtering table data works...when you click on the results it actually doesn't load what you click...it's still loading it in the table row order....so if I search "Your Loop Midi file" it populates the table but when you click on it it loads "Your midi file 1" same results no matter what is clicked/searched...seems to always follow the default table rows
Here's the Snip:
HiseSnippet 4498.3oc66rsbibbcC3typkb0Jsx1kiqJ4gtP4nBTK8Pb+hTTLwURtKAIH.VdSkj7.fFXFxAy.NW.I10aUp7KQukeg7r+JzePxmPdMOjp7iop7vlyomYvbg.ffzqRY4xnj3ho6Set0ma8YZzPWqK0vPSmKxpsmLhxE4C4aMQ0TprjnrJ2tU3h72wOTtm7HEwITcSwNJTCpndWItRSFIZXP6wEIxC1FANxpOji84O8aKIpHp1k5MDG2QZxco6IOT1zazFa8RYEkZh8nskG5C5zasaWM0xZJZV.i8.93biD6dg3.59hHXqvyE4QU6Iapo2xTzjZvE4gkz5Mokj1Up1vejrgLvp3CI3ZAHxd3ZZJ8PNFGkqrjrRuFtJ.CNtH7M7TGOvVc7K3qCR+zw8TKOiMAwaE90GQVIH68f.rWB+rWber2LXoU7wRef6NDikXaHLVAFX2J65Lfe1nrktNU0rE8RKZvsisblpsNnX8uysml1npp31bO+CiHuC.ZqQzfSD4AKsjlXgRJGJT0jAyKTpce.fFkPXGuhnoH2Je1J7oSjPPsc1WlubsIBudmxBmbdsdoK2X6yZKbvjWdjU63m26vDm1oPVZ5ianLHdic2a6cN35QiyljVu9yKMP+hpunV11IN3hyRTWVu+KZdb0pCKjZ2iaYzYvkcZm5HszkGWQX+hiaIjamCqdVIs81tt5kWczXy8yd3fitXTt96LJqbAog01ax1WmpROwNaOfZbxwod43IpkOa74WZU84a+bCJM8Am28Eu9kup6NRWePoCKbnv1cRz9vRG167KG+7IMJuu30cxt+kGkZ6wFhIJUNUFsWL5jWj1Z+h8yczqGnqUczQMyD2nctwwsjN6nl6HZlRnhYZk7mT706UYrY8KT2+zRZmddbsSZUudmjaSMpMvp5vCOpdiI5BUacVRSkiF+Zo5VmlPnb8NWTx7TkiOp4du1rp3YW97lu3xF6z0nndiKZ+pWIsSorwimtdlwcOUZakcae5qRc1dBBourZ0wW1uYsK6aU8zwkKW83xG9p7mLnvNR8UutWJyyyKTZhtFUnUp7Id9UJiabPpKyVh9xyxVWqZBwCyezwWW+RqSOTp9ESFW7rLoMdwUMyjKtTiAzyK13Eu9jxIyztEED3VWu2khZ6P62vLkjlfUJkrpSt3hbMad1kWUTPXmhUxXzexd6KkQ5HgSrJ95FWMx5kWzVfCserCX7Ox+lFMO3EUK29aqcvdUp17s33Gz20JKo.DhCbXvnPsjGnJZZoCK6Q6aMrjHXbN0dmr09ZCkg4YALcF7YaUgpNqgQeIvuP2zebPaGr.9PsoCGo4Mv2rE2ey7+uY9+9y7OO+luxfpar44ZRpWAYbkEGZr4dxczE0mrYYwtRTiM2Y2VUIUncrFroIXO9WZdD9RC9P6zfeBeqt5xiL8lAcUdB+tplT89hP5N+oBsgkak+k+A9xZ.DplBCEufVSGdX5JhkOd7MH4hGe8uXs01bSRSZepNl4jXpQ7xwtFTbhgIYrntuAIeIgU3jv.poW94XQ8fH5rvpoDkLVld0HMcSe3cacMswzR5ZWYvPsKOCHurFnaTgGhEM.TNn2C6s0HMDUoJDe30df4gO1rykMUD6PUViPHdnSoihanJzTatHNDbHI.7v9+M2DmYDR4v7Y95KlSyWmwqdZXA.Apztls0XyGyApP.YPMaRGA0wYdfZCMCYSYnVSIQ0AzXl5VTDZYUEYUJoukZWbVhlpCpPtQWSIVWWVYCfcUfEs1aPogH2mDS1nBsOr7dwXSIz2QpWm7oeJY5BE5AQzE5oqMZDsG4K+RBi1LjXiJ7SPtFUegv4FrkY+WakJ6yzur4lq1pZaR6CZTpXSRihMKVuZ6pMa4C..wMD0AbANAFwbPxaW6sfZ3Vz8HO4nPJKpnf0GFKrlB0lvdryftRQEPrmtDvkK5mgwahtAIA.uOXaf6RM0rLA0YL2ciXhn1dUQTInTTQIV7qi67Ao1patoNc.QQFLk9x.pPPLpNFDg8foPAcUDtgN.FDt80LoMAKIvpPgxf+q.1D9OSIYCDfik6YJEacuA1gJOPBP6WiHdsUk6GyGFkMpNbj4jXqiazwWeMmsY.tU6qoGSEnFQV0lWX1.qt5at4lonsBGOUTL6+wP3JIYS+671ZEPkoBGzYpDvn.ncEh6Cz.39sNa6qtlsUADARrCysWUSenHvXfU5HmSAPF431v.F8WgAtgNz8LCt9Xfz+Yg0e1biKM6oKdEil5VJPXVa4AGbOb+GnwFD1ehKD+lJd+h2Zuc8u.+GLNl8oYHsY+cnVO5ZABah5T1b0gohYq0i1T6JazF8yIoRiXigpVTSF60USwZnJDPbBXZNGzUlAiQruxIxPzcq.HKZMYcCS3qaXO3dXLUbbVXQmAw7a3XsoWa5NFSeE8ySFO9ZucifnrEEB60aF3jkEcIPZhYfz1Rx5yBmPw.2SLVCrWMklAJwBJVBbVXFnTt+Lw3KoSVRD90N6rMzFYo.mfks8x5xA4JYSIhgFjUCiTG6XQCIhtrpAXcRGQEMIfmKANnKYnn5DBcLjmFaTBACMaP.KChj3XHhturZLCCv1BKlGbW9J6v.dFE.edJnkHrNKfwIIIfXhdaveNo.FrzcuA.O8loQHlpaIvX4itwTMC7Xwnuci4QnFxhpZ9HWxPjKQx6N8J0YADrht0PaRkJLoRj9tSpEPossjME8qJSGhf4u6hV4EPuRPol9nVlPTKWl6L0prHEIVzrOxkMr1L0cW5pr.xAdT9ktbgIWl6N4ptHwiUJsOBlOLAie20mUQ580f+9rCX63WFy+CNQGJpqKNgn0mkfi4fSFIZJYPTz5BAM5g4tm19JHtfROHX.LFbzjygTvDVaG0ghFGMAVnADlAic.0+vB2DNfgW7hgN3rAiXtALht3lYjvtTpkAzjKOnoVdPSu7flY4AM6xCZtkGz7LPYVEqYWISW6FiBF.6BkPcMn0+MI9h0bqPwtJhtNktN8.B109eiCMXWHvzRi6bd356wiK.CKfYovRCiVVQt6EQWeJ.uIP0ZPM0FZJTgQPdHnPbFvf0GPKvVFrvIOmfXS2g2CUq2MkL+.GDVPT2SSrmS0Nv5Lfp+6IqNvyEH.7ZpAbp.ZvXtXygcbp1zQuNmBn7NRQfmW2a2nlqpFNgphK654i1QzvV6vJoDxTKirAaw91jlMiOkomwNl6bj+YnXd7PcSG3eJnKqfBUcfoz71NC6hC6HAV9W4h2u9KVjYPQSrgMl3liqdvSGzWWaHKXks4ge76pHm0dtGB.RnMcHm9eDVH.yCKkPGhx87p9o3bNs5T8JCMqGX7fZrYH8sr5hs+oukhxDlvS8I9yTnCiPPte0ndtE+w5xgcwerS+fs0.h7GPobCTDp+FnvGKpIqjy.E84siJ3jwKD+71.OQULn2MsQMQfE5cS6fkRQrHoXtXN5bk.uuEPNVXHsp55Z5eNooqyJANfEp96fGn0PHLwVHGuXbE8lgiB11KCTVQiYhnZORKSndqNVll.+5KCMdh341jJbRjLdfafXYdfiS517s1R9xx.7AiNLyyPV3ynUUHrKSepbFXF8ZBwPL7rzyuIP1x1r6.jOFXNhCSOrjhCB6edhChgaQbr08yVb7w.rtY4q8mh8gcyppC.VVnqNbnP51JZcDUr61LTi9EEU6UiRUvNcrF.tfNcfLT.ntapqXQw9afFwUXsBTGrbm1nqAaPXEM3IjX9TQXxw9jzASaDFNamA1sFxeqUbWoDjnSObFsA95pDBjLjMw9wD9bQFv5CC1PIad.D1MHol1svojJL1Pmw.LjMhJpHOPk1COU9TvXBqCli1E1Vzo8P+Autuf26.3fV9a.ODAvY7Ez6YaHb8sZnS+MXmbNBMXLVa57AidvJIqsFI3Z83AhqExLLYmhxaytEO+fBw9BUzjk8iUluS9d+yxXVXN61+Zpsm1UT8xPANwVWvTWdXrv62AVFTYYz0wDc612AeDYCBV0vDrQZTULENnRPktLnSBZgbmNujm8vzn9dXBO1SL6JwBjWbdUH4TskaxxPxMXEXJJqZ3WVWm76+82HwliGZOMKfjs0ZABo5.FhcOR4Fj32A7gqz4rmu+YI2ivd2YImy5tLrzsUjU.SRgQVFRHusDo5WRil.3eIdmC9bhmcP5vtbn+JjP2mSI1R+CTiwd2AvTjvS0u+LmyAeJv42m0z3KHUeQKLlp0vNTceN9L.4h7vfWbF9k6hyz0V83CPM0cUkMOXDUcd2qINGcJG.fCWAeyj8VT+YNuEUZuibdKjb3K98i4Cr+wwXd+uzVtvH5ibPTIVMRLj7HdrRf66ZwztyXsuZW1UgfKRDGoBjTHsooLpDiTgNVtK09EDuJeEpwEHVh73olRbQdxcRvudJw+NwslL8genyVWgcQd5.j+vVRr2XfGH5aYYvd2Q16KtIlA.dz27MeyyPX7x0h2hqzIKDOWgrwyjv2DIQ3AP+eQ3M5hlhP1GH5S2KTgMXtHe.ehrYDhyTHSEx0rExm59NxwWoFS99.d6uCxEeDDkSb+hi7vGoxJbbSkkG4p2GIhMOvGIBqo7KK3x9uXKyuTyw8emDGyql.bze9O+e20pXJtezsYS4ssvU121x+y2sktXOYMfyrF4+BEHaTWaHfZQc.3HqrrzhYCNGZE+Ob2o0GDbag8BKXj5I7SCf4mdrsGW6ui1BUb3MOLXsIAzwvm2gPawNQaUwtRujdC13Iyy53w1VG48wCa867Iyb6Fxr+GtgYO2oa4wOLa5zExlKYgLAMP3ykMY1LoxDzR+C4SFOc17IimJSx.lIHhxUHepzYSmmCh5qckareCzRDJ9k3afU7Iqe37j0Ucj05ySgy8quUebXO4F9ES0g9UCISUHWlboRUHU.0vS3ymHYgTfeepfdE7IRkOQhTEBpdvD.2lv6ee9iMctCq1xdM3zVXahZi2rLTE7Ld+CkXQZBmfsschchGX4.3vDfunsF0SXeBetLoSmIUtbgk0bIRlLKDeKWnva7IyjOQlBIrujaQRxi0iDcZFrc6gcu267bIYs1MJqOJvLwW6s9vWJWit74yDOS54nUus8Ut1KXesFnJZI+ZVZIHx4+1e7O93s7q04mmS9mvGpeEyK6x2cniq9uhe1ulNtkhdOlm88D9Hy+oUPuYax72yyZ5IFRoht3.xmRvCixHX.J8g2h8zGGzdZAQQtKlSYSFOWlrEJjLTJlu+6+92ELIJKWYkJUXCaaLkl+MOcgVSQ23oArldJXNMMU3I9RExGo2Mxc8t28Nmax9MtdZOiutVO7cJG7Rii2TdmIfxDCbE0vqglpgr4j.2u52W2j7kkE+D9FxlcklMOtxL3Q75Z+i.O5b+6eJe098ocM8XvGxW6jebtr89I+GYS9mv2BNlF6sQxH9uj8L4XwwTx1TUpNp7RrfeKD+GK6uEhQK8uEhC5ZBjustnpwHMi.2p+VzgxsAmUC+T6UFzZ5zKah6l9Gurln9Lm5O8aqAB4LWSK7hfxLKJNTyRMv83L7OEfGtbmn4V9MY7ver9MY7vkyLYwr2OAb7iDowM9Q97LvLd3HEZU0wTE33SLd7mAmWpuHbfb2QCZWWWSUajjlpbW+a5Mol5xCFP08y6yTfJZZF32ZxuXqlTEpneC3e8V3E8RTGuJV2ScQhkWWrn8qeEuM6RPmQxeN6a++pY1BCd+fkJ386c989GH+NG.4V2xe7zeiaLy+scYkOxY.BNxbCm+69WWI6OTghm+zmB73.0RBG+YFA72E7nzManoHpGV8+952OUf.kK1FAEoe5XSigkv290OgXXlIwOcX3mgmr4u.XW6K58f5hPJEr+T6aMrET0SWJd67gSEfcIMxJXkK1OG2s0Usnp8XO.0i+NmISfOGwYxDtS9WMzXnXWcsusqciTQ2+GyFAzspreyOqxWGelj3lsPEuE.ea2tAQ0MVXx66BSceWX566BybeWX166ByceWX9aegXIrEsL0FZ6KxwUuQU6yxFY5OL2HOf6+C.VtZ7.
here's some midi files to test with:
MidiFiles.zip -
-
I found this post with @d-healey and @ulrik showing that this is possible...I messed around with the snippet here and I couldn't work it out:
https://forum.hise.audio/topic/7505/little-help-please-make-viewport-scroll-with-keypress/32?_=1717065535469 -
This post is deleted! -
This post is deleted! -
@johnmike
This will activate the tableCallback to act on the Return key:GrooveBrowser.setEventTypesForValueCallback(["ReturnKey"]);
In the TableCallback
if (obj.Type == "ReturnKey") onGrooveBrowserRowClick(obj.rowIndex);
Read more about it here:
https://docs.hise.audio/scripting/scripting-api/scriptedviewport/index.html#seteventtypesforvaluecallback -
I don't quite understand. I sent a compressed file on it. Can you please help me modify it
-
This post is deleted! -
@ulrik yup that did it! What about the colors/search function? Any thoughts there?
-
-With the colors I just need the selection to be more prominent…for whatever reason I can’t seem to get the table row highlight color to change…when you are watching it you can tell when it’s moving…but when you take your eyes off of it you don’t really know where you’re at…not too much of a big deal cause in the midi window you can see the name…but I’m thinking about the end user experience and little stuff like that would drive me crazy…lol
-the search filtering is dope but it’s falling apart because it’s not actually loading what you are clicking on…it’s loading whatever is in the default order of the table…so row one is always midi file 1no matter what the search results say…
-
@johnmike to fix with the colours you need to use laf, (lookAndFeel)
// laf const TBLLaf = Content.createLocalLookAndFeel(); TBLLaf.registerFunction("drawTableCell", function(g, obj) { Console.print(trace(obj)); // this will reveal all you can do with this function g.fillAll(obj.bgColour); g.setColour(obj.selected ? obj.itemColour : obj.itemColour2); g.fillRoundedRectangle(obj.area, 2); g.setColour(obj.textColour); g.setFont("oxygen", 14); g.drawAlignedText(obj.text, obj.area, "centred"); }); GrooveBrowser.setLocalLookAndFeel(TBLLaf);
Read about it in the documentation
https://docs.hise.audio/scripting/scripting-api/scriptedviewport/index.html#settablemode -
@GUJIAN @johnmike
I took GUJIAN's project and modified it a bit, based on your questions- A MidiPlayer callback that will reset the "Play" button when stopped
- "drawTableCell" laf, for the colouring
- read midi files from the MidiFiles folder and dynamically distribute the information to the "TableRowData"
(the FifthID Key signature, is not possible to extract from the midi files so you need to set them in an other way, I have them in an array here) - implemented this to be able to load the selected midi file with the Return key
GrooveBrowser.setEventTypesForValueCallback(["ReturnKey"]);
- Changed the "index" based way to load midi files to "name" based, it helped to make the search function to work better
All this information of how to do it was retrieved from the documentation, even in Hise autocomplete function, you can find the links to the documentation
.
thanks for that @Christoph-Hart
HiseSnippet 3970.3oc25j1baibkf1l1lbxgmolJUpJeX6k0tSnFoAlTj5vN0DKdpCSJQQRqKWNSARzf.Rfno.ZRIJGsUp7KK+D1eJy2yGRduFGDfGRxNG0NKKUTDu90u9c2uWitgMqK0wgYKEKQ6wCnRw9YwaM1hqWRWwvRZ2xRwdV7QC3cLkJNdfhiCUUJVrGuMNXrDOQR74GeSQESEqtzIfjjNhYzkVynuAeBzFa8VCSypJpz1F8Cgc9s1sKypDyjMDXjGGOiz.ktWnzituBh1ihKE6oUTM3L6VbEN0QJ1SJxTG2RmckkK9GY3XzwjhOjUpEPHWvUYlpHGiPkJoaXp1vWfcjjhEuwDw+wth+WGutgpQ.7IpgWHFfLYFg0GwdTT16wQXurgYuLgXu4vROJDK8LeKhfkLUFSsErB.X2x65AHLaTZnsM0h2hd4PZDywO9FugZaCJ1Ive9V0XrAUrT.lSMr0CIdG.0VCngG3GeSrG+fkzr2ojJgBUUCSJJ0w7e.vFkPvhWVgqH8nu8QwymMqrU60e6lkpNV9lcJIex4UUyWpw1m0V9fwu8ngsybt5gYOsyqVml+3Fl8xzX2ZauyAWOXz5qRqWe4h8runxdUWuc1Ct3rr0Mr01q4wUpz+U4183VNc5cYm14Nhkuznxx6WXTK4M14vJmUjUa65VWd0Qi36u9g8N5hAansyf0Mdkd+p0Fu804JqpzY6dTmSNN2aGM1pzYiN+xgUVd6kcnz7Gbd28t4suq6N5WePwCe0gxa2Ia6CKdn54WNZ4wMJsux0cVe+KOJ21ibTxVrTt0X6M3j8xOb+BZabzM8rYUFbTy0x3zdiQYFpe1QM2QgmStLOu4lmT3lZkGwqeg09mVjc54YXmzpd8NqtM0oZugU5e3Q0aL1VtRqyVkadznazqO7zrxkp24hh7SMO9nl0tgWQ4rKWt4dW1XmtNErabQ628N8cJtdlL4qu1ntmpus4tsO8c4Nqlrb9KqTYzkZMqdo1vJmNpToJGW5v2s4I8d0N5ZVWqlie9lxEGaynxsxsY1kuxbTiCxc45Eou8r0qypjU4vMO53qqe4vSOTu9EiGU3r0x6r2UMWaiL5M5QOuPi8t4jRqtV6VTPfaccsKUX6P0ZvyoyjGlybcqwWbwFMad1kWUPVdmBkWyQabs80WS+H4SFV3lFWMX3aunsrD5+3lvXk3erQyC1qRo1+P0CpUtRyaOExrPZXnXwHhvXDWxpx8Mv3FLYTKidVJ7g1vre59C6WTA7QCb6IasOquALtHOoGvWrUYp07.igTP3gMOb.kabVjPo1z9CXS.7G1RJTr+Sbi8+x3s5ZaLfOYDL73KhuqEmZqo.w3gi+cwU5Q+G+53kX.FVb49JWPqZCODLizalIyJjMxjYoeWxju7kjlTMpMltfvAkSPhkjPFYGdH.jumH1YPtGkOIgT5TSvHkKESbrBuqtgUOBWmFl.NXNijS.H6P49IZJoXZh+Os1PqtbClUZNXUfYzevJjA.RhDNKk7iISPv4fy8HEygzzSF724OVWcEqdT0z.jaWgvsGhiMqvhr2HC5UCX1bOwcaaFaDsnM6JGgD6qFAYtDCLWVvCoSEAKeo1TQyiHsKVqlhVnY20lB7WMVWESvO3hBVpUoTSj8bQU1l1yvArOU8E9Tp1JW0FSKWhZZlZERfZo2JDVmyEJhdxZv1oELMSCPj6zycCTTMfi4frLBPLpC0j1kSUIuAmtrAm12cTxqmBvpHAbIcS1PKX+ylvLAEpIUPIEPXVgr57WFN8Z9D1PLZUFpxToZJCM4fjjMu6PnDVvDB6npsgYELcg74sJo5BpOapJpiuE0yQz7H0mQo5pQAbmm01ToC0zyJY1wzeWGLqwBM1SgGxJDBAHOBcfhU.Aaf+dy5KjPdiK7WBED.S1BTvsYhwS6gEfTz.klzAPoH7CrZvbLPOgRBm7z9d2FVlFVz.+DByxiRHyXyLS20mSVgLBCbPWHPPHFZjzFNkoZvzUSKFBM9BgcIx27MjfIJqB6IC1M1fAfiz2+8tQVBh3RJ7STtF0ZSQS2.xfvR+4E7CHTpUk1j1GznXgljFEZVndk1UZ1JDBXdCEafVPHiSZOhbaxaA0v8n5ccWEJjfLNSqobim8f4KDkAoNXFP9yTeKt4A5NCnGB2FnQBha3f1bRtLEQ7pRP7Zlqy38AWrDu7kPB.hIjB.bdBqAAonxHPBpACgxYBDu9dHFEu8YbZPfp.+2CrI7GW2vAQ3XCUtd5kl.XGpQOcfrevMTF8CBQRCmJ8GvGmdIzPmw2JmHgFylj1BVLhgkKqHFKQhIt.ffNIqf6+bjuR2fG1d6oMlIECRZPqJCZlHtE25YjSjz0G.RUqzQDTawr6q.LB3SNva2Dx.ufDAxiTrQ.ynx726wOhBj0ucZ0kKC6ulXNKwZZOzD1hDgpHRjUCM2vZrBQ7UF4Lypm8jJWBdq2tut0dSDo5I8YpzYSwIFqNLTZWUbplrqboYpWSxkeAIFE9MXQDNUY1hcJCbeeeplTnTGq2RGm5Cd7QKJWHXcYlC6aAIJGC9vKfWJIvwI868xfjZ2x.mjppgsCG94Jt.qg4ZQ3hrld.QFBggY78gIzzod8pYx.6VGkjsnP1Q04PSQsSO.hlcNDsstg87nITB3mIEqBd3b84PRrLxG.Me0bHog1boHZydXDzyxlnIUQkzGK5Ey.6PzrY8IoB59JEQCaR1FCmQGfA1rygfQu8z56gVCEt9rAP9DwO8DlcR3g.dnX+avDd+GlydS9NRdnkVjcDXULhgbEjUfzgJXFPZIAUlSrolJXILvl4Tkt5BlCkoUHF7eqCjGfiQeh9OcIGf20bniWz0VgCRnFlpPvBBs.tDAZFfHPQRZxISXh0TPt.k22mp.jiOUwNhuwuJgeUV7bY7qJheVA+pJ901hm2F+pPmTePjZUjyTSjvLr9bojIvLpyYGSM+MI0TLcDE15wT7YMBQ5dIcHbgxnHeexDh0HQPz4qIZxNC63vsgJzSqIa.oeu9.szotM0RKmEVwIPD6vszRqHlePn3qIC.uZJzOQZtirHPzCE+.qnXDz5zRKm5koVN7PgZfxiDAQRSQC2NxbQBxVcA3W3D3WzUw52xQWFOqM3hHLuJgLtNLYYYOEgl2Jbgy6iXOBjbskH+2jrq9A.+aQ8YXmU4ACczwhUQMMTyQxjy3MOuzwQvH7CH13FTccOfF.5tHW.l4uK6bKqyMEbPwKd8Bf6di0MiIEvcrCkhOXua7ePMNNLSp7.v7iEFYSwlGItXCTmXAYqgjJjkEkg6V5lmuinAK2MBqwfjJt6W.rsCTmkJ1vG5YJz2tHxrhnGJYZ3xwymr9UQY6Vo6j55DkKDTqZDoTPxTSWC5TBo.IPHuWoaREl2u.5i6CVF8mvBEyaWneSnRUi7rWFd+tFwDil97c.mR5n33J7tYIAMvb7pliPfXJ7sVb5Kga2jLFhYP9OQWWbv6LylW4+2Nci4NnTfShnXoRZwYCHcFx4fE0uMKbrE1iUsBmlZAsCACcW8BkP7Kn+3PbMVOY5LKA8HGVT.dJcFOd+tXiEzrwD9v098c+i+IIwuoVw4NTwpGH7dG6v1lrNJltGMzTm9PRyEd1C3V6kEc5YO+SeHb3Hjy0XjWmf3mEdvDA0R6OScvoyd5v2oOTgImMQ1PwQtmf.13PnikHWjjFImG0hbDESHzm7QQHJZVwFpCA1ZZxYJ3A6NNMAWL7N1HBjA96vhuEkn6jLXbjqSmhKpsysVORaFI5bmr9DeGr433GPx66j.bKavQfaSpyPSQ0FXEbSOpfYgwbywwY0XWAYMf7LoWRFJrne5os0QlFj2N0RXR1c07nGAp6ihsahcMQsfJ8.omfJbCPmHx++IsiJNCJT4zTNVhDY.EvTYQlQ.FSv0myAz8ShOkfBlbNjA2IrvsD4O9GiPB7iW3nJaHrjsYsbK8BIreQUPGieBzCmoWsV+ymk7q.6Smk7Jr5gvRKEg.ebFxEwGzshKXEBE7OIFO5uB9wc6tDg9OfyOJTT67SpOcLl37lCEChmNyAVtM5.0LRldHMs4NlG0Lo1ycXrze66ZhosF1uC0N7tbHhRwdRz2hW7G1awqqqxIDhLqcsL3GLfZsnWxpjmFEe2ldbEfJW71M9Ju2tAU8HuigWBegL+x3QrdRBlO7KSQZZB8K7HTQQkBBh7z33Fs9yMdLw7d2thWqnTrXdbEvovNbbCTIDqLcjQWp6KdIQ7xTmKfc5kh8r.GAoXewmDie8Dl92u03fG1ht0UXe5A.9K+4szEGnS.j+zka4usI.6o555GhfmrSHB8ie7i+snPWEAuyN67WQvZfH1x3lPZN4sPTAQ8WEOaxUSlKY9jqkb8jajbyjuJYV7szNQRe58oYWfvI8+LkvI0dFg6vslyJ8y8VIwQcHVnuHdPX0BWs7gzS+r34WciMWay7alaSIbmS7s1GcmyHh3yhtvhByEK7yi6Vj9BW08uWCnzoa0gYqRsapnZLzIr2KFGDvCOeQ7PBOdndXlPRZb3Gd.LAzEMrNgWPeYaQrmzrb2W6wcUgtK3vFEsw2TOxjuHdXPY+GjWEwlwVMNtePpfbH6phGx0j5uWUbVWoDcICijI4sRKVHCKLOYQ9YeY7odGOgEixgr6S439rEQvmGW76rgnyewLp+iq64uItnUKz+rrsROx2PvZtEuh5oTXRpynv98yKJZglpeYTS0mhqsqcI68XWl0rLm2m8KhWmoNzDOwmvWsF79D4M.r+Uj2oM9dqsbL3iibKT9m08s4gxheY7FF7t5ymGezb3QLL+eA7n2sT5mGuhlFz4yDF7Iwqdx+ZtRRgW9eg6x+EwaAUOJtM.hE+WIdlbrxHJYapE0FUdYuiaL1+6C8FiM3AeiwNnKGV911JVNCXNQHbKZei1PXRjzbuygV0ldYSzZFFdIFdtiyYne7MUAgbtyoEdNjB2hB8YCshbwOl9BS8jGVoV2yMW6I+etat1OAB1iEqwLW2wW.tt8GXRqXMhZB0BJ3wuBJ9SbcE7gF0WtNyhMPmYYzMrgtIEZhpWOpcXdetBTANOxsv6q2pI0jpD1o8+ZK7MJpXiu1uOScQ1Gtt3trW+53trKAC.I+zMI8i++2IocuxA8pq.NgvV6w2eX+VPtwtT7Zh.kBgM4E6QX9M2my32STKpkp3g+F7wavr3yw7FLq+f+aYM5qz0l8Ccc6uC8Set.BH2Vhq1Wh30wmIYmsqP7vo+gtciRpYl3petSL2m6Dy+4Nw09bm35etSbiO2It48OQbSnBC4L2W.KdAfaTwsxxXAW.4XOV5uCQRLUJA
-
@ulrik yup this works perfect...I hate that it can't pull the Key/Time signature data from the files...because I literally have over 300 midi files lol...but I was able to copy this into my current project everything is working the way that I want it to...and im gonna just be entering in the table data manually! thanks so very much!
-
-
@johnmike said in Table Based Midi Browser With Clicks & Keypresses + Other things?:
yup this works perfect...I hate that it can't pull the Key/Time signature data from the files
Does this help?
https://docs.hise.dev/scripting/scripting-api/file/index.html#loadmidimetadata
-
@Christoph-Hart is this the same data as you get when you use
MIDIPlayer.getTimeSignature();
or does it contain more information?
-
@ulrik same
-
Currently, it is not possible to drag MIDI files into Cubase 13, right
If this function can be implemented, it would be convenient to use
-
@GUJIAN said in Table Based Midi Browser With Clicks & Keypresses + Other things?:
Currently, it is not possible to drag MIDI files into Cubase 13, right
Wrong, you can drag midi into cubase for sure, here I drag midi from a plugin into a track in Cubase 12
-
@GUJIAN Oh I guess misunderstood your question, you mean if you can drag midi from this snippet, no it's not implemented
-
This post is deleted! -
@GUJIAN does it work if you compile your project as a vst?