How do i get current project time?
-
Content.makeFrontInterface(383, 326); const var t = Content.getComponent("Table1"); function updateTableValue() { const var currentTime = //get current time const var BPM = Engine.getHostBpm(); const var secondsPerBar = 60 / BPM * 4; const var currentBars = currentTime / secondsPerBar; const var fractionalPart = currentBars - Math.floor(currentBars); t.setTableValue(0, Math.round(fractionalPart * 10) / 10); print("Current Bar Fraction: " + (Math.round(fractionalPart * 10) / 10)); } function onTimer() { updateTableValue(); } Engine.addTimerCallback(onTimer);
I need to get project time to determine the 1bar
-
@dev2222 said in How do i get current project time?:
I need to get project time to determine the 1bar
Use inline functions, not functions. Use local variables within inline functions.
You can use
Engine.getUptime()
but you might be better off using the transport handler (depending on your use case).Engine.addTimerCallback
isn't a thing. Neither isprint
- where are you getting this? -
@dev2222 the things i wrote doesnt exist, they are made up so iil finish them later, and thanks for answer :)
-
That‘s your friend:
https://docs.hise.dev/scripting/scripting-api/transporthandler/index.html
-
@Christoph-Hart hey i think there is little missunderstanding
i need it get the current postion in one bar
-
@dev2222 use the grid callback. If you want a continous signal that scans through the table you will need to go scriptnode with a clock_ramp node.
-
@Christoph-Hart can you please help me with these 2? now main thing for me is to get the table1 show the 1bar position.
thanks -
@dev2222 the thing is i cant find anyhing related to grid callback
-
-
Content.makeFrontInterface(383, 326); const var t = Content.getComponent("Table1"); const var transportHandler = Engine.createTransportHandler(); inline function updateTableValue(gridIndex, timestamp, firstGridInPlayback) { local BPM = Engine.getHostBpm(); local secondsPerBar = 60 / BPM * 4; local currentBars = (gridIndex * secondsPerBar) / 8; // Assuming 8 divisions in the grid local fractionalPart = currentBars - Math.floor(currentBars); t.setTableValue(0, Math.round(fractionalPart * 10) / 10); Console.print("Current Bar Fraction: " + (Math.round(fractionalPart * 10) / 10)); } inline function onGridChange(gridIndex, timestamp, firstGridInPlayback) { updateTableValue(gridIndex, timestamp, firstGridInPlayback); } transportHandler.setOnGridChange(function(gridIndex, timestamp, firstGridInPlayback) { onGridChange(gridIndex, timestamp, firstGridInPlayback); }); transportHandler.setEnableGrid(true, 8); // 8 divisions per bar
i dont understand this, sometime it says 3 argumentss expected and now argument amount mismatch: 1, Expected: 2? i have no idea how to do this
-
@dev2222 I've not used the transport handler before so I can't help much with it. The argument amount mismatch will vary depending on the function.
-
@d-healey is there any other way how to do the thing i need?
-
@dev2222 As Christoph said, the transport handler is the way to do this. But as a beginner you're going into something that isn't necessarily beginner level, so you might want to start with a simpler project.
-
@d-healey i really need this to be fixed, i could pay
-
@Lindon might be available to work with you.
-
Okay thanks, iil wait for his answer here
-
@dev2222 Not sure what you want to do with the table, but this snippet will show the position in the bar in the table scan position:
HiseSnippet 1226.3ocuWE0SibCD1aBFNRgphz8CHOxIgPIWudsR8gCBPZiZCDcatnqOgLdcRrhW6U65EHspu2G6uo9K59GzN1dS1cIQARDEPBV6Y7Ledl4alc6EqnrjDULxa29SiXHu8v9Sk5wmMlvknNmi79ZbWRhlEW2sUqoQjjDV.xyq5OY1va2sP1e9xGZQDDIkkuEBMPworekGx04616jegKDsIAr97vBZ+tS5PUxyTBUJfmp3FnHBcBYD6RhQsJXj21WDv0pXeMQyR.cZoBl5OVcmzo+.dB+FAyrnIxGLjaazYi4hfdytqIHj2V8xu4Uc27Wi6xC3y2OOB7MVA0yOQwXfWkUAolqAj7J.osbP5.rOMlGoykXvyWg6HgDxPBDpKBEmtHu+AelBTPpONjLg0NFVL+.G99FMNpN7m27i0pMLUR0bkrtRdoRytRd3ap8G01s1eVq9CEMb3RkYbTrRHXwKUrI+FupCdnLM7FV7Q0ukHRYyUDB.kipa+zhpT28tfhJYGIWeUDKacakHvDsLOuXN.kE3LYiLDBPQayE6mkK5SLNlC13UX6yMQVvWrpOfnI1BVzm5bt44L6AlFbWDKVyM2JuyY2BzCWtdW74rjIZUjU2vHkz.DucdTueetm+sSlVbwc7.8XjG16u8PnwL9nwZypifUQyt0cBrbdqwq29yPTYwxPf.nBREDcYVgg9mI.RpkJEM0axDtdZw1CqAUowJoJOUHd.tGWSGubLVYIXDxS+efwrFL6iuX3PFUmCvsvs+7l1MowSuaB14+ZYoYvmFmWJqWDDWlFZKsRLEKPsBZVik+BmSgihYQjXVeUOAY5gIjvHA6i.nOp9MBEchO+2YKx6yp5ZYz3P5XhTxDIaR6gselZ5h9nJUyki5RzwbfHgg6tOL9gxNKCclXPESmA25Fl0lBEelLvt3egexD1bd.CD1blv7lJnKY56TwSr4mrmAFtKYjXCxWO79lnSEB0cld.7rxVHoX2qmRLMZrRxolsbZLComFpRk5Yv8mII8IbgoN2OMAZ+EbkzGT1Nd1q5.Vbh0v6fabL7KT2eoJ.DgaSnPfcZOhoywAXSGUnZkEeLcdUaIrVpvALwrw2tnD.wPaaLyv6pE584JPMq.5WEmU6jLvHkRDnAtNpvUwXSW7xgOip0vgp.GdJA2WW.ty03kBfUK.v8vTSI90w.s.sPDMlcbAwqA91pH9P4s05ShGwzt4WFd38yl4bNOIBnmsRg9NttBk1wbwjAr6mUodAP1Bfwi1iOq5sGAfIS6NOd9JfC1kKG7vIecI2+f8d6I9ZVjoePwYA9SX24BLE20D61A2mAS+PKXZzp88W9vh9twZ568vcSEZdjfCNYA6iV+KO3r0B.6iOMHnuxmORlWj8hhf8veJBd8EVWS07yA.PqYNnF71sf.9srkTBTfisCVaeWnRzq8vgv+O1IYSY9OjEkMLb1SEYMFC8nrlxnlJXj3khZmj0.0UJg5RDUummJEXT1JHpNCrBh5CgEpkRMIjXm.tQuZ7Kx75PBMVcM08JHlf4qr6.UIR6GhtK7Ewv55K4E+CgOT7ZJsroV3fucSO32toG7ca5A+tM8fueSO32uoG7Gd7CZ9N9SS0pP2qUArfdW3nsdWHMbaKqC8eT5tLdM
-
@Christoph-Hart oh god thanks so much! exectly what i need!!!
-
@Christoph-Hart do you know how i can implement the shape of the tables constrols gain in scriptnode without code?
-
@dev2222 sure, just put a peak node behind it and use it to modulate a multiplication node. If you want to reduce the zipper effect, put a smoothed_parameter node between them:
HiseSnippet 1782.3oc2X8zTabCEWKFAAGnsoSl1dnG7gdfzjgACjPxzCw72TlFCdXMzzSLhc0h0vtRa2UFvsSmoG6sdN25WidqS+DzOJ4aP6SR6ZqEaLwNIzlZF.qmdRue5o26mdRMRDdzzTQBxobyNwTjyrX2NbYqMZQXbzNahb9.bcRpjlTwHZ8NwjzTpOxwozyTBblYRj9yqd55jPB2i1SDBcnf4QeNKhI6IsQsugEFtMwm1jEYo8J01wSv2PDJZC3oDdQTLw6TxIzcIJ0l.i9ZRZKjyWhWbkpAAOYUxpdzkVwe0GszpT+ioKErbf2iW02e4fpA9K8jG+PjyTa4yjhDWIQRSQNSttvuiaKw4biANjkxNNjpZTE4BV1HdaQnuZIpjh1nEKzuQtiJEgbvM541JYba2EWm4y5Jum66izcTo2HrcfNSTDdkJ.up1vaQK3M.H4XAoIMP5NXWuDVrrWOJ7ba7NbX2Lf.6S1PwnKx4OwaH.E3xEhHmR2NAZzc.y+nEW7AUf+buupb4f1bOISvqH36Jjz83yeux+X4YJ+Skqb4tBBFXeJCkHBCoICraUvQxvF3771QGSSdPkyHgsocUDb.E8p3q1qZuo6YV2VJJ36vYx8ho7qJT.k4rT6.YnBLuT6+mKy+2jnLFC7x2Bq+dUjFv1oI9DIA4rEdkGuPwOmsW5KdXxSVtM89qtgt8AGbvV2uQvBqsrp8x6A+I39JUexF5QfPGrylpoKCR.5.DGSSjLkyvYS5YPJoIDYF7lzzSkhXstQwBtZs3L80t.tnG3+tZcrabNyW1pmfN0ZQYmzpW1+ejTKN2AtiuluQajJa+BvA2eTLj+H7aGRjESpTTOYc.wDEhjUgq7TlriM0zasLsWWHdGbClzq0fw3DC.iv906BLlwOMGdqf.pmrG.mDu8KtAHivF6WNaaFrox3E10sAwtsizgXpzVGGXojyK8K3dL.wIzXRBsonQHoy7ojn3P59.nePkiCEdm5x9AZ+zFYQcqqzXduVDNmFlNNrKS8Z6lpN7co8EskL9I0IxDFjPgg0tKbzmGciLzo7ASnHYLsWT0VEn3R495F+M7IqypccXPmUy6rG+DZWp7bQxo58mruCY5lMiTsS9nfKphVKLTbthKfkE1BaJZYMDgchaI3LOkHiF4HcsHQaEwgAtvozMIrPUbta6Tf8zeOtKnrtz.mRGRSR0S7z3EW.9Ah62U3CcM01DOvw1oAQwfbGrhPFhVoIK30Mps.VKD3.SQdoCFuD.wHMcFT3foBhBC1ojEsnIlU0BxHmvXncROT0qGIDcnguFVcJyXbgFHqTcNb.6hkW5HcvGpvh3SsVD1JU.4ZrUbRF9p4MC5SXA8x3Hguw6V.220B2c0XTc2VS9aFhmzBwyh8TdniRfrdTeALIzEr5dziOrFryj1PF0iHuII4Dpzb3uh44h7Sa2jkFCDRq2FXZM7fEjnVqbe5E44laAzK9PYl5gmmu1f.FmJoY0Yl2BV70Y7CubYC0IWbIYKUyURiULf1m94dJ8biuxVpxcNMtIEN2G02TiFtse0S621KNh1dVb81gRVbHCLReyOZzW7fwFI.LGdMe+lBW1I7dwc2nHXV7AwPsez5p.72F..Mh6AkgqC.cvNiNfP.qztowRcUfEx3lEGA+eASOiZxV9LVjZ3x4TYECj+M6bH0zds4P1qgovwTxkHnusgzP2Q+jxYi3ZXiuVhBcg3bpm47TM+qpz26hSiDBYKp+Qwc2n6BdkFSiMaJuqYZr8RCDUE7Yet9vAnDoEFfl86DG3D9Fc.2TX67k4vOGNmhjTYeEs8H3+w3n1gWgCu.ObIq7voGeh.n1rgvCalf9l50ZKEPVl4ZCCiP32d4K+89Ikq8qWlPPq2UCjOD6p2sfBS0uNi0z8yvuqW6FfUbF7VbU1t+vnDuTXqYyrPbZYC8jRd+QkF8ulvvIJjYWHlv4esXhW8zqHl3xXDstPbZDQWy+X8n.12i7CLcdarKjroehPc83ehtckukbFsxynP4hpaAWcHuR3e859Jgwu1uR3ddRv7MSH7zXQZQmKMh0TvUqwdBOHktcB862WQRXKeCAIYfc8pmtMrHG3XbIx1IZ1l76.Yce9RC6wGuxaJV7oMrze.2zdx+y8RjuG7DNEdehYxwnKScD6V7yngPhgFieLjIDPfZTykVLvttfKxuQbuc88ov04O4DZwz4AsfVSJIvc85J4t01mFRI1QveQMyYa5y6FOeQ0Q9giG390mgMvshJarx6uO8Vo+W+za2HuozMgMhHdIhixpyTEmdKsDXcy0GeOCttpckA7V5Q.K2QddEmp9F3Ri6.WdbG3Ji6.e33NvGMtCb0wcfO95Gn5PnrBXTolPgRM1xbwDm7p9fLBz+fJJ6Y4