Rendering a "sequence" in the DAW not working
-
@Lindon I shall investigate
-
so:
function onNoteOn() { Message.ignoreEvent(true); local myP= Engine.getMilliSecondsForQuarterBeats(1); if(Message.getNoteNumber() == 60) { playMyNote(); Engine.showMessageBox("time", myP, 0); myTimer.startTimer(myP); } }
gives this output:
-
It's working here. I added a visual indicator so we can see that the timer is running.
HiseSnippet 1250.3oc2W80aaaCDmJNZnxcYXcnXXOpUrGjARMrx5xVPwPchicgwpS7hS61SqfQh1lKTjpTzoynH.6q2daeT52fsijRVxYNAYFqCqynnP73c79c+g+3kgRQDIKSHQNdmNOkfb9P2Qy4poclhobT+CQNa4dJMgHOkjoZsC5f4o3rLRLxwo1S0p33sIx76sO4.LCyiHkhPnWHnQjmQSnpRoCa+cTFqGNlnO3R4Opc+HAuifIlAvolaKTJN5b7DxQXsZa3hb9ftwTkPNRgUjLjylGHhmOZp30bq9uflQOiQzKBQifCxJtmfEqQrVJpyTJKdXQXmgPNtCKSB0rIg66NfFSWHuLY7wlM7KsnZ9vYikgWskfWXU30pB7VAjbp.oMsP5dtihjzTU4NZ7bW29bEQNFCo8pPwpKZieqlaGAnAW0LAeNomDVrvhfca0Zae3+Z7350kjI9IyORnH8Oz+a8e3d6ABg5QlBDa5..oc4SnbRyHIAhPiviO6mIQp.8IjqVyLhx7QGLicFTACFOiGonBdPi5uwqtWJCOefwSZy7Fh4DVXSIIERxlS5R8oQ4LvU9E15W0JywPG6GTBXChaT26M087pDFld4lZaMVtKDug6niWuKq6QXYDqEV03fJGOd7Ay6dAjv5Gu33056c0jCbBWVjgt.K8swAraQBeBQ0QjjJ3vhfGX29A5PKOhg7zPcHehXlBB0xzzDH.q6Mo4X3Zx9LVv.L.NIlGCUtfvV1ea6uW9WsZXyYKRUBtFoGax208XhHLCpgCIRpHtrHBva.3.5HBDCwY8DxueFVBsFG.E2rfPMR8F.sZvMvlzIbgjXxKAJ4LhYScEnPA3zzN8nYImQjAMzEjcakWOtRA2aQihB7m4yfB303wdd1Lq+UCmwiswysxq5SoheDoV2XbO7uk5c97hdmaSev0zHTAr5xuTvXZ2ow6UhkbfrhcxMLfahlsglJFjnKTDHBVlcw85YWpR9EY6Fqnnf2mSUGmR3WGkHJuEF9548ODqvZJobYfdoDohpgfygjK.9cKAkm6gjrygTsQ279dfxVY1cqB5KcuOhBjT2w0dO.8KkOAD2dd0EulFqltPvu9p1SIzISq7TxO0F8WYJANZQ7LFVsLws90p7Mf78RrkZFQdFUMu5qY+iwleag38bGRUQSWMF2XEXDpJuKvX9afa41c7XfauDfa516Ge27fWU2+QV2eW2Q.Kk4Bow4epYs+Ofuf3+TBmH0IuvaXdje+1NOR5sddjiiTf6OEnhyREYKcviHIzSgV9rpBedF7hK4UmnqlUk2Qfkqbq29jdPPtRaFgUyjl1h8SDy3pkZCpcSyEEtlyEs4+4lK58fK6KM5lWAFGQSRYjt7KHLf8zfwOAnKGimwTERWtWdffKRmJ3znpE5SHJIcxDhrJ1WY.suRAidUJ49sOgvH3pMseQ6mAMaXIjmHqYtH7u8Xrqrd8YtV35qu.5+9KIcs+eSRaGTcBLNpjBOZ6BicMB3FiHf24vS45gRb1PyuYW2Ru1RNxiMK9C3W9lg50N4aFVr4+J9HAGIEuLxNtktO8NFIPbyM+kldtCzq8CQlQv.6ba0rEJAX3dYTjNE+Pfvb01ryZXyWtF17n0vluZMrY20vludMr4atQazOtr+LkHwdkCDLrqYtTGmtbLz8Z5zQ+IXoWQx.
-
thanks and so now we get to the ACTUAL problem....
Load this into a track in reaper, and render the track....this is what you get:
So the timer DOES NOT WORK in off-line renders....and this is very very bad because some DAWs(I'm looking at you Logic) are really bad at real-time rendering... and some (I'm looking at you Reaper) do not offer out-of-the-box real-time rendering for tracks....
Can you please go confirm this is correct...(that this is what is happening for you too..)
-
@Lindon I get the same result with offline render. Realtime render works as expected though.
-
@d-healey thanks -- so yes, same as my results - so this is a BIG problem...
@Christoph-Hart !!!!!!
-
so this is a BIG problem...
Yes I think so too. I also tested using a fixed interval of 500ms and the result is the same, so it's not related specifically to the tempo functions but is a problem with the timer in an offline render.
-
@d-healey yeah this all started with a plugin I wrote that uses fixed time rendering -in truth there's more than one of them, and they are ALL failing in this way...
-
@d-healey -- I'd imagine this breaks your legato scripting badly....
-
@Lindon said in Rendering a "sequence" in the DAW not working:
@d-healey -- I'd imagine this breaks your legato scripting badly....
I am testing that right now :) Actually I think the legato will be ok because I'm using the built in fade functions, but the portamento/glide is controlled with timers. I'm also going to double check older versions of my plugins to see if it used to work. If so there is hope :D
-
@d-healey fingers crossed here!! -- I'm hopeful, as I seem to recall it working fine at one point...
-
@Lindon The mystery deepens. My glide script works.
I can think of two reasons why this might be.
- I'm using the synth
on timer
callback rather than a timer object. - The glide script is not part of the main interface script.
- I'm using the synth
-
@d-healey said in Rendering a "sequence" in the DAW not working:
@Lindon The mystery deepens. My glide script works.
I can think of two reasons why this might be.
- I'm using the synth
on timer
callback rather than a timer object. - The glide script is not part of the main interface script.
What Synth.onTimer!!!!
- I'm using the synth
-
Using the synth timer the offline render works. And now I think about it I seem to recall that timer object callbacks are always deferred (I'll see if I can find a reference for that).
HiseSnippet 1220.3oc2W01aaaCDlJNZnxcYXcnXXeTqXePFH0UJqMaAAC0IN1EFqNwKNsceZErRmsIhDoJEU5LJBv9IteJ8ev1QJYa4LmhLi0g0YDDXd7NdO2K7gmGHEgPVlPRrbNaZJPr9T6gS4pIsmPYbRuiHVaYeFKAjmAYJ+cHGNMklkAQDKqZOQqhkylDym283CowTdHrPDg7bAKDdJKgoVHcPqejEG2kFA5Cdg7G1pWnf2VDKxQ3Ty1mjRCOmNFNlpUaCah0mzIhoDxgJpBxHVadnHZ5vIh2vKz+4rL1qhA8h.xP7fJD2UDGoQrVJo8DVbzfYgcFgXYOXQRnVQR3t18YQr4xWjL9byFtKrnZ9vZikgWskfWPU34WAdq.RVUfzlEP5N1CCkrT0hcz341183JPNhho8pPoPWxFo0raKPM3plIzygtRbwbK7102eaW7eM1udcIL1MY5wBEz6H2ev896sGJjwiYbvcTNOTwDb2zX5z9Fk7ZT+sN0cXib8VXkwrF0cdacGmJmkogpo1Vik6hNMXGsSctrtCDmAEVTnFGU4jQiNbZmKPT2KZ9wq024pHDOgKqWGaaxTtWPktCnbHN.2cVTOFTsEIoBNtv6dEaeOc7V70lYfZ.VbUmJxUXn5MKT8FiAXcmwMGg8pGDG60mhfSR4QX5yKvu3y1t6U9M+F3gdYi8mmpDbMROg6YNmXQHMFyuC.ISDg3yu4i1+AOnCeL5TMH6itgMDvHIJqqP9S4TIVkNDnpLu.Mdc5iUc7xPS1XtPBlrimRlClM00gYJfml10Gmm7JP50PWV10urpTs.t+7bdlB8l4Vt2LH1XeGmhrq6UCoQiJhoajO0mxbuHRKbhw03eK0870y5dtIcBWSqPEnpa.jh3Xs6zn8JQRIPz6bkbRYigDR08EZQKaY4A6wMw51XaWLVDl4B795xj.1WOIPUNpvh90JJJ383L0Io.+5XtHkM432dVuinJpl4nTFpWJHULMDrNBt.ogK3QbrOBxNGKEFcKuYfLqJytaMikQmDHLjK4V1EIDxutfoNp0zpKdCKRMYtfe60sl.rwSpv3+KsH+UBMjJUDkGSUKyupeTobCLeuDoll3hmwTSq9ny+Xjt2THdG6ALU3jUiwMVAFwpxGBLV9T0V1cFMBBUK.3l1c+4OLuKU08eVg6us8PjAybg037uzr18EzK.2m.bPpSdAumwF98a5XCo23wFNITgt+LjrNKUjszAODRXmgs7YUE9rL7gQ30mpqlUk2VPkqbq283tXPtRaFRU4RSawAIhbtZo1fZuuwWBVywW17+biu7Qvk8klvxYFFGxRRigN7KfXj8zfwu.oKGQyiUyjtbubeAWjNQvYgUKzmBJIa7XPVE6qLfNPovYbWH4tsNEhAZ0l1uo0SwlMpDySvZlKB9aOs4JqWekcAbc0W.c+3kjt1+uIoKFkcLNvpjgOZaiCkMD4FCAz6b7ob8PIVan42JV6qWWPNxiLK9C7S4lA50VkaFLay+U7QBMTJdYXw3V59zaYjfwM27CBcr6qW6FPLifg1Y62zmjfLbuLLTmhuORXtZa1YMr4aWCad3ZXyiVCa1cMr46VCa992qM5GWNHWIRJtxgBFzwLWpkUGNE6dMc5j+DfqiwQK
-
@Casey-Kolb said in Text values for output bus, effects or gain reduction - use label, paintRoutine or animated strip?:
The Synth timer is different than the Engine timers you create with
Engine.createTimerObject()
. You'd use this call insteadSynth.startTimer(double seconds)
and put your logic in the onTimer callback of your MIDI processor. I believe other timers are on the message thread already? I'm not totally sure, but worth experimenting. -
@d-healey we need a way to "undefer " them then or we are back to a single (nearly un)usable timer - just like Kontakt....
-
@Lindon Do you need multiple timers running simultaneously at different rates on the audio thread?
-
@d-healey yes.
-
In that case it's time to pray to the Christoph gods.
-
@d-healey said in Rendering a "sequence" in the DAW not working:
In that case it's time to pray to the Christoph gods.
ha ha ha ha......well working back into Time Division Multiplexing is I guess an option....