Displaying sync delay time properly
-
I had posted about this months ago, but it didn't get resolved, and David mentioned that it is something Christoph needs to fix in Hise.
-
@pcs800 Actually I think you were touching on the solution in the video already. Typically what you would do is map the value to a new set of values. In this case though it looks like the function is already built into the Engine API as Engine.getTempoName();
Here's an example:
HiseSnippet 1039.3ocsV08aaaCDmxIJnwaoXEn+AH3mTFLBjcRlWPvvbi+XyXMoFydAa6k.ZRZahPQJPQ0XuhBz+j6a6wsiRxVJ0YooFX5AAce+i2w6NMTqHr3XkF4Tc7xHFx4qcGsTZl2YNlKQC5hbdt6k3XCS6kw5hkQ33XFE43ryOYY3r+tnzmO9iWfEXIgUvBgtVwIrWyC4lBtCa+KbgnOlxFyCKo8IsGPTxNJgJAvyNtAnHL4V7L1UXqZUbQ+LNdNx4acCXSlPmN43yXMazn4YmFbZqIMAVGyH3lSacRifVm1p4Y.H2qGkaT5QFrgECN8BEc4n4p6jYA3ZdLehfYIZfFAQNiMpybtfNbUxIFgb1cXQpZmrT0KcujS4q4Wjx9lTAdEVTNo4T4wfTiu.H4TBR6lAoW3Nhn4QlBIV77UtCjPEbJFpMkgRltnJ+cE2NJPCo4nP7sr9ZfXsE9GGDT2Cdc34UqB0mXi2awZuakStYLKLR48CdqLdFyzQArj.ges0ZTCrrvvHo3lt73HAd4+ookzwZb0pZ1LORhVCRSc4.Iks.LO.DxkBtj4MMQRLbkzSIWGYq20JgOYkqqCPPjvNr56p5AOOjKSU37TwkfwQZVDTdM9.bde0pqivQwVfmFkNXgXBbg0eS.XOCkcFXzPq29UUhAvt+Jr6OaExrYJLfFybdrM47ZEAKtPkHow91JwJcL1nX6O.c6ImANyp83Ub823Dlaa5qYYn21u4Grne9StFoB6qrkiov6Z08ZFrVDUiu6UB9LIiNlsv3uFF08v08pQfPpYTas68GddoJyUJC6MRe6obeHO58ohlN8AkkmFEL8CJ1NFQ+XF5KSBmvzkp9oJBsM2uWbumVuHI6RaIEUxARt4MQrb59JA01iY+dyNWT9sdaObNBAUMocvOOuCdjfSYZDmZaeWeeBkd.JFY9x1neaPWrAuxUfWgHEwzFt8.4zk8VX.b1vg8c6xhu0nhfYoqa1PNO6IE3EEAcb6kED+Q6PNkJXCUwbaRuPRs1vZinQ7+hUdGQHtjmZ1NTQY1.kFDXyCwlbVCs8xf1AqlpgkLQJxNvsT6TIr8gqKgsOLs8cbpA1X35r.nmy3ylarT+Y5ZnMldBysUzDA1b+g410b4BrGvxSPsSIkvAeY4i3WvD9fGcB+SEhuvcH2Pl+vXrxCfQ31x+GXLeu3At8lNkQLE.bW29+91tD7yD9rQnytDazb3df6UIgif4YDFDcIbcI1VuqX64xnCrz1LvHljlR7OvStvFVZmbgMVIDEhIZ0MjrNU6l2mkxAvjL8OS1G9EIf1qwm1dhPPyA+FB49tZCCatsFd71Z3IaqgmtsF9caqgs1VC+9Oug1+S6UIFUXVaCBc4vdoiScb5IwvMvzaqn+E2LpIuB
Content.makeFrontInterface(300, 300); const var knb_Tempo = Content.getComponent("knb_Tempo"); const var pnl_Display = Content.getComponent("pnl_Display"); reg currentTempoIndex = 0; inline function onknb_TempoControl(component, value) { currentTempoIndex = value; pnl_Display.repaint(); } knb_Tempo.setControlCallback(onknb_TempoControl); pnl_Display.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); var tempoName = Engine.getTempoName(currentTempoIndex); g.setColour(0xFFFFFFFF); g.setFont("font", 20); g.drawAlignedText(tempoName, a, "centred"); });
-
@HISEnberg Thanks for the code.
I am trying it in my project but am getting an error saying Unknown Function "setPaintRoutine"HiseSnippet 2950.3oc2Z07aabbEeosWGKZmX6fDjbo.aE5Ap.YYt7CI4ZDnUjhThwRVrhJ10HHHY3tCIm5k6tY2YsjZpQzkBza4OgFfdom5+BUWJ5o.XfdnGquFzKFEnmaeyLKImghzhRVQQ1DBhbey7l4M+du48wrS8PeabTjenVpzauW.VK00zarmGsS4NHhmVsUzR8V5qfcQ6oUZu.TTD1QKUpKtJqwTScIM9mWrTIjKxyFOfjl1C7I130IcIzATqacOhqaUjCdaRWodWvplsuWYeW+XPPtndVs.j8iQsw2Gw51Ez0VCE0QK0GoWLWd6BNK3jKWw6LuMZd7cZgZ0xLuSgByu3cLyeGTgEmGmsnVpKWwgP8CaPQTbjVpKUx2YuFc72wSLAOfDQZ5hYOXp0.lYA4p9tNrkHipV4NDWm58PnHMsT50GfWWTfWum9FDGRe5CvsavavX.Gx.XpKnJdWTQ7LkEurRh2HDoTRhzkDhzM0aXGRBnCZgIOWUulGEG1BA5IYQQzWsK7elRurOzCO5bcQOFWMDdnOGYJrvhyZ.f9L2McZhmKwCazJ1ylR78LB8i8bLyr6Lo+5zFvmPLMNzyXCDsyb71xrqwGYXlcFiaC++toeZZ3ysusQcjG1MJMn5inFOAEZ3PhB.SMNcSCiO1nm.0FSK62Mv2CdHyzh1mFDkQyZtif0bim0BGAqEFOqEOBVKpx5877aZNVN3sxXHcHtsgcbXHPdaLzdMOG7t.eYGghv2iyGaHC8cyX2a7lElQ2XbO8ynFNdGtKuYA7NWHN.LkoYlgqv3C7bQLgjO3kQttMgMoYTmSlDmvOz25rAXK+XJHkY5IkYZ2SNXv.BlaZGRDa8utuMxsDyfIJS1Yta+9PYBJyU.z2JdsgAi06s6QMygVOI7x+WagPybsjI6tUS9jzCdiU8YHdK3+SCl3Y62jSHZmkcIs8vNai2klouXLqAZViosgoLD6vTROksrAC5acqaYvcVZZjg+8LLRRJ8jFYVJburr0QkVsv1f.HZS0HoAoafKl4scLLI5fAuGbyEksPuLcfw.c.n6gwNYWrPLXywxTZHoYLECJCY7JALEeEMm8dHuCCmOJ1XUePwZa7o0LZf6RZBdVA70r3biGgAAYViOK6rFve8LJdHwg1IyLCHrFlztCXV94GVGbnEOKLSXeS09qdXwKFtA13FifeJJTLBYJlcXrM2oE1l60PrM2qH1l6kisEOsv14mgG2Al.CX24xQQwcIdsM5R10fDYjctr2xbtrutA9EeEA+hubvuvIA7k7SopAx+Zn0cgWQ.tvv.rT7466SwaBCCDAbJHrpwvM0p0HaKI5pKLfipYwT8RXLiWb2l3Po7.3cDxXTMMT8wmFpbVx1hbVj5nuWMOBcy.r23xcVKIQGHk02JQpftR4Ir9NIIr1vk3fC0HNrpN3oUnwE39UJr+NVZSLy4FhYsO7XvbdEl2+iS+OWZxYtnByO+OE78SDySwYd85UGRv+C+CqIm80ND6P4Uik8RwTpuWB6hGFFyYe9zZqfnHV0FIZQPyFfCoDlQSpUvOAp0ST6wTP0hQOl5Gnk586mOKfKho8sSl1Zcgh63y5Uz4+1TaW4IbO4G1gsOtOgm+TqN78w8ojMvpEwMoVwet9WWeqM+jJk29Kpt45qTYqm5vBLXTZUH0t4B7ZyLD6KVWilTCmPrp55i.Wds2FFNtzcccYREjERSqAB49qZkfKBP355KG6P7W1C4tWDncZ1tWssSomOewhEJjWi.oS1i50zMytvBEMKXledoFxw5egBKj+N4JnQA2bxUHyUHoVWm4Qd59azp4L8uzX5dSr4zyxZkmSLPOG+InDWW+cdne3iifprw.8VH2Hb5mpMDtdvWZoB8Z+NKYv6lG4lWI3ZII35feESg0MBBRDHrDR8yNjZqLDbvL2hbUVD3ng4luj+thEO3NqAi6nASvvBqUigsSzZXE3FCkOTGEB1JPksBSlapuNtEUjatA+fIHQ0U6nvoVWzfEj02Z0k333hq6GQXNaGzx2XEQwAMH+Vr7QjDLPEwr5EoqnEzaFpws13TYh.Shz5pdHKGGrOmL1Gb9E6eW8sX86XB9ZOZjP7XTHLDPF7APSppIUU.3DL4nrT.+GcfL3+NGYrCI6jlmeA+qKL7qhwNrrbFGxOAVtuiduAIwvczJhmuzwAFKJaCuy4WXTWeCxtuBfmf+ICythZbz0QMwtIwQ4+VwmaEILSqoEKBhVpKqucsMpnwNtCg3eE8s7a5S84jZP2ikt2kgDAccFJxq1FVGGQQ1EzysGsnTckR26LPTj2P9rfQIJ550W99mARhrM8yhGsjrxVO5TPRt5wJ0FYDZ+O4.I4JyAJo1bC8xwQT+tMvTFuQR41bM8B4VXQy6jM6hYURugsiSIql94ubgeSJQBLqDRdBNrWtH77TDYUpPZyXZPLUgTo3VsvgrHAJjafXd32BppQg7pt9MQtkpugZmgJAQrSFXCemgFFajKtJxFJQBnSCiEj4uaik6B09R2H1kRBbICI7kcwnP14+Wt7HjK1Acx1kOz5sY7gkfOMByppZ00GmbsNIhgHeFuvXy4xNaxOxUr2uJBe+4P5cplKG3Lr+s8WSw.5xplx7RaSLkEGPlrqlpxlx0FxU59exgbkN+wZpTxlw4G0oRNG+mK6pX+S8oR1WvA67JspduInlRobRZKMYeW6yffo6W5PKfRmhIiCEHOtjw+1iNYbccF7nDRFhLEh+J0b.WwJZvtN43yL.4ArRlq6GDGvXlmDjCtEBbN7fQTJ+Dq2VSQuojH+aB5s0+9wo2d9ueRzaqMI5sBSpd6sD0hLZEm3PTl337JtQjKA3K6zONOyp6jDmu7wRRlWRRpGNZIYsyDIYAII461az497vJaeJj6ykmfC4RR+njGFwZBRY+p57W1Xi87rYn5vu.9anCwwicQT06C.qdyjFX15xuDd1KZ2C1Crmr09o1kDXREwapWmPs6LZY7BiPF0z9QQFStZEust30bNP.ujd0e8OR2iB4q1wUEyeua9Bal6aGHO6pGWizgT2ugsTcdBIJIWmrzgK2i9gXXc+cpCSH2ulf7A+2+bEq0HCQk6hhUHozgNOvHUVicwIFxLe4ZLwKHp8FHHJBLu52GBn.I3aiAElG6pc.zRcAleBwyYYOyKjF64ve3+AeRZzj8bpjFM60nrUwU5eAk5+1l3plgNOmweOkfX3b8oDgGp5FABuM7MY5Csp4AklPq66hBG13+zBJScoIdGJaIYbt1Kx6J1pbdWH4p9y2B4MXEJ7SjHdFu4VW.Co06+RSD2Ys9uJCk09fp9Gr3OvpdH9ID7NIuHpDx2v50VGdo68J0JGG9DbkuhCIh7FkACPJpRbgLSh5MhkP7oiCAe4e71+s+JifobQHLB4RHXkO++dIFg7pWoSOmBJQtptcEOD.Th.uugApqc7.0u4u+uVRETgnuxfpweY0e3HA0WrzaHf5GH.0qp+PzSv7KoFGVee9ys7C6ZrJ1CGx7t8xBP+rI8hDGLwWj3MsofHrcHxKJvOBaJOxrKWx1PICQJTGhibijibpYUPi8TGZAIkdwfhp.TH0uqX0iXNYhfSekACdVYjFjkGuNVgATCLrxc1LxF.FjRktuXo5wtQXd7NSYFGPNmL40PgNGURiWZxrLOhqS8kO2ccpeMnXNka78T8jQQJvUfTUc8AJ8xCieRF8npt0aCeO+fN9dDEE8VXviQ61XE6mQtfVlRYuzv9TdOqsvtXTjz1weg05DO1Ag66fOgXg4w91uOR80GpKDW9QSY75aQ3W7M5hvm7cefKvy2ZwOPGbEmyfqJM9oQWdVjCvYwbzEYG5+E1havFaS+U3Tf0sG+TBmReC1yFi3hq0EBY7E11pC0gXL2Ikw7mTFKbRYr3Ikw4OoLtvIkwEOZFYQzWNl52Ur2.xrodEw8ZKkTVwZ+ejQpviA
-
@pcs800 You're referencing the panel like this:
const var displayPanel1 = Content.getComponent("Panel1");
But you are assigning it incorrectly:
Panel1.setPaintRoutine(function(g)
And then later you have a second paint routine which would just overwrite it anyways
displayPanel1.setPaintRoutine(function(g) {
Also you have a bunch of timers set to the panels to repaint them which isn't really the most efficient. It would be better to use the knob's control callback to repaint them like I do in my example.
Probably worth looking into the examples here a bit:
https://docs.hise.dev/scripting/scripting-in-hise/scriptpanel.html#the-paint-routine