File_Player inconsistencies on different DAWs
-
I'm using the File_Player to loop some background noise on an FX plugin and finding some inconsistencies with it's functionality on different DAWs. Results are the same on both MAC and PC. The test is done with a 30 second audio file.
Cubase:
When you load the plug, it plays file for 5 seconds, and then stops. When signal is fed to the input, file_player starts up again and stops after 10 seconds.Protools:
File_player does NOT play for aprox 5 seconds, and then it "kicks in". After that, file will loop continuously.Reaper:
No problems at all. File begins at launch and loops uninterrupted.Everything performs well within HISE. Just problems on compiled FX plugs.
-
Also noticing something that may or may not be related.
I have Embed Audio Files UNCHECKED in my HISE preferences.
When I load the plug, I see an error about AudioResources missing (because I haven't placed the resources into the plugin settings folder yet)
Plugin still plays audio from the file player.
How can it play the audio if it's not embedded and can't find the AudioResources.dat file? -
Does the File_Player not perform SRC? Samples are playing back at different speeds depending on DAW sample rate.
-
@dustbro said in File_Player inconsistencies on different DAWs:
Plugin still plays audio from the file player.
How can it play the audio if it's not embedded and can't find the AudioResources.dat file?My educated guess is that it fails to load the embedded resource with the given path, hence spits out the error message, then tries to load the actual file and since you have the only computer on this planet where this operation doesn't fail it loads the audio data because the original file is still there :)
Samples are playing back at different speeds depending on DAW sample rate.
That would be a pretty naive implementation of the looper code and I think we would have stumbled over that bug a few years ago, but it might be possible that it doesn't update the sample rate if you change it while the project is running. But I'll double check it again.
-
Just checked, and the samplerate is being detected once at voice start, so if you have active voices playing while changing the samplerate, it will not update the resample factor. I never thought that this might actually happen at one day.
This is a rather exotic use case for the looper, therefore I'd suggest we dive into hack-zone in order to make it work:
HiseSnippet 1607.3oc4Xs0aaTDEd23rHhAiZghDHwCCQHpSI0ItzRQpBQt2ZQSpUbZg2pFu6X6gLdlkYm0oVnJw+U9Cvy7BbNytq2wttUNVjBR3m14147Mmaemws0pPVRhR64u1YiiYd9uePmwRyf8GP4RuVG34+NAOhFdt2diioIIrHOe+JODWyesU8r+9iueOpfJCYkS448LEOj8X9Ptob1167Cbg3HZD6L9Pmce2cZEpj6qDpT.GUB11KFzHsO6DJtsUB.PbXD2nzcLTCKwye08TQi6LPcgLa+Oimv6JX3fldc.AkM8QJQDhXbVu8GvEQsKtuIdd9AsKu8Uxt82H3XdDex7kVgqYWfTdBW6g+JuI30zEdauvvyyAcqlgN.DpnTA0LMxP2Q9BbkbJj0RZXxDtYrq65eU3d8f1bS3f4i2UlCdAG0UMdyc90BNrWOVnoDrqFbzO810S+QEPY2zHt5wJULSagxmFrGjTzWqRkQjST7DFosfNloesYle0i98EMyLdgyLghCgfui4FOYcnmoA3wk8cUEB+CkTvfD4N8oJk4Dkg4VYnCcXrfAlUsADe4Je4NmxFwzISKgi3hxhCCwqbfON+P5Kre9muzS.51Jth0DVvDULzuxB6IuDkTV8ppjRkECdyAR9uZh40C5Dp4wlxUP7TK.cJVa1LQUY61akOtRfl0mviHeG41MePsp0pxkBtjQ5kJCwjYhRtWpwnjM2WIMZkndnZXrRxjlMIinhT1F0p9q0pRfeasE4GY2THHQrdLMwLfQRPkST8rCj.ZHFk8aJlM.eoYznalPLPTpdhTf8bNiESv.kwlAPPHQBw3DJjoX3QiqUcMKmVCq3wHbc8sar881.tAuzdKPvBPrQelY+B7Ve87ax5azHAm2de1mJDcgH85ydQQg4XEPS4Sj02v4x1puToYtnzLfZHfAhkP3Rx.ll0nQipqcL3S.1uFb6ANbDBFiFLcOn5KqRlUI85gZ4Rbpb.K.qf8fyrbl8wE3XsAqWPPSLYtEdOB2PRvhQI.lAKLuWcHt3yw.iMxNI9KytKyv4disnpUDrS.U35SzAVKiPIR1EYJnd2wvGWjEH.SlXqOnontSHwZULsOLHJWW1PxLkECRBML0u21aRZdm6iNloT0tPXQD3hs3tDjIFUb9c+0XwpKSG1koKBjKrcPZ0z4pUWrb0vrfNmMpjsjbyShY4s0TDFULSSuI9b2MU5Pcm0dWly1JmZNLQ4IBXYi7sCa0XKZ7A4EMxB683XA4f7b.OqEwkSv6osNfZnEBBjInGfKyvQKj+ArQPFZV0n0BNfkbNX8s6MO6CLpKfZeQoJu1NN8Lr4Nu85dZ4qLuR6Wo66qEzgiA5GJGwDf8xhwODLP8noBSwrMmBkGqjp3AJnj2TjrLil2uOS6h84dg10XvF7Kl42dHP4JXzDG+4Wryigp7T8rL+WorTy0e8IAYvkfg2j+S00aPFr+r7.VDfOip4ToYx8vdEtQPmxhYgCXgmOCc6bgeAG76UIXqacKxqJBjGCqlkwoR6lBcHRsLkP8JKLHIVYPFV.GKCItOtAqoxhoZ1YJrTblnByI6PFVnpLu23LZ.aWofJToFPEItPgJAJH2BtOU1SoMoRXYAVguGTLeHyLPEkPzreIkqYQDXKfjgB6FZx4D.En5HzQTt.6dDXGyDFpcG6pyMY21s1D3iHWfzEfDADSih.8cbqCZQxLdHsQlypPZ.8ajBXeQ4NfQGMlH38L.0rka3VaUqJTjF37.CHwo4nIbMP+BS0bW80c105a7fRRjort0yLYmB1jMyMeIsY58DpvycIdexLmaSxOmBnA5Fwh3nzgCASpARz6ll0qD6ErP6mvxS7d48S00Vzz1ggCJwda1sPD0QJyYn+xMZVvUuaJ7BI87Zanrgm4uTQaJWtlQtZXdmlmso2TF4R9Q2a9qmTd6KCo7khCdo3P+G4c3U9+46vOEJnAI+GSgzA7gjmjNrC7x2PFfDojIRvGOtB5hxFucwiI6vjQ1A+E7Kewl3X+7EaVr3aEcLjFpUOOLKVCYWeW6Lv8VZez7ZAGiiIS5aKH.dOD7P5H9yCCQy8sa54M+ybmk3Le8Rbl6tDm4dKwY9lk3L2eINy29FOCxhrapQMLKUDln8g1bee+I+AJ9U79a.PJQrL
In this case we use the
prepareToPlay
callback of a audio-processing script processor (in this case TimeVariant) in order to retrigger the voice whenever the samplerate has changed.Not sure about the other problems mentioned in this thread, but I can imagine that this will also fix them, because it defers the voice start until everything is setup correctly - and calling Synth.noteOn in the
onInit
callback might in fact result in a varying order of execution depending on the host. -
Oh, hang on: you'll talking about the
core.file_player
node in scriptnode? Damn, then forget everything in the post above - also you can't use sound generators on compiled FX plugins, but I even missed that hint...Yeah, the
file_player
node is pretty raw in its current state - I've actually just used it to get a test signal from an audio file :) -
@Christoph-Hart
Well, be glad to know that it's (mostly) working fine.
For the time being, can I just script the core.file_player to load different files depending on host sample rate?
I've poked around, but can't seem to find a way to access the individual nodes via script. -
I‘ve fixed the samplerate yesterday - in fact it was using the wrong formula so it converted t with the wrong factor.
-