Convolution Reverb
-
Yes, by default, the audio file pool doesn't load all files into memory, so when you export it it will only embed the ones that are currently used. This line will make sure that every audio file is loaded before exporting and should be used whenever you have a collection of IRs that you want to switch.
-
FYI, I've just added a safe check that throws a script error whenever you want to load a embedded audio file using the scripting call
AudioSampleProcessor.setFile()
without callingEngine.loadAudioFilesIntoPool()
first. This should catch 99% of all use cases that would lead to a missing embedded resource. -
@Christoph-Hart said in Convolution Reverb:
Engine.loadAudioFilesIntoPool()
AudioSampleProcessor.setFile() without calling Engine.loadAudioFilesIntoPool()
Where to add this code? I use old hise 1.1.2(
The convolution reverb is not embedding the IR samples into the Exported FX
-
i have this errors(((
-
@jackburns you are going to have to be on a more recent version of HISE...
-
I'm still missing something in doing a basic IR loader.
I'm getting the list of audio files with
getFolder(FileSystem.AudioFiles)
as suggested in this thread, and loading the IRs withsetFile("{PROJECT_FOLDER}" + impulseName)
. However in the exported plugin they don't show up in the combobox, I'm guessing because I'm supposed to use{PROJECT_FOLDER}
instead as FileSystem.AudioFiles doesn't resolve.I think I should get a file object for
{PROJECT_FOLDER}
so I can list the files withfindFiles
, but I couldn't find a function to do that in the API.HiseSnippet 2059.3ocuXszaibbDdFIMFVz4wZi8GPCdvfxQQfCeSXDDI9RRYEkXDo0tNAFKZMSSx1ZltI5oGsKggO3a4TNleO4+PNj+F4dNjT87dFNd8tBNgGHl96qqpqtppq9wLA2h34wEZ5UVrcCQS+WXLeKStd3ZLkoc4HM8ekwTrmjHPgPC1tA64Qr0z02+bEf9gGnE76e86GfcvLKRJjl1cbpE4JpKUlhN6zWPcblfsIKntY5cqSuzhyFxc39f8ruQcsMXqGvqHWiUcaOCsKvdq0z+Bi5s6PHcatz1F2rocmNc52qeq9l3k0agu2rS+VMZ0sQutK0z+nw1TIWLWhkDOPoC31amul+FV3.bG0iduCQ0vTaNLxgvZCWScrmE6b7zzzOXVpqZ+PW0yMlRsoI3otrmEPfRkHqSSeu2kIY9AXR5YLoCBMoO0XtkftQlxnrmOw3RFDAWhgXSVSIruZ68C6aLjC8fIOwE+.Yh.ZjHQsN0qeLB96nurREH93IQPmej63Kob1sjGIh6Q+NTPVyIqHxy7so74X2MNjDqnV0LhfBkoJnuP0IBZOm3Pr.+BnqXiAaaOj6dOe.+s0plzKUmpdLxDrJy1JqJu7m3Qj0pRkDWupGWUMJUFyVQYjSb3X6.qaB0g3ASP9LN2oFziCirDp6FeGOxDtiMQYHpNNeKj86plYgv0x.lpsjISjJ7xK8RJyNne0xMDGip9EUQGiVhAHPEKAWEUfnrD0bz2U4vByOvqbInSnimH4ykBJak5ak5YvBkiNQP13nBbUO4M3GC7Afp+9JUnLGvMfV5yrBhCbVdMqb6BvgXwc2vYP.3XziXGexQU.ivgagchMKXxEaf+4ftf9sHyuIi4TBYh8At6cRfTAMUGpU86lc6M+gwCW75I2b0nw298UQ+l3wRMKfn4tg6HCeH1w4dnhQsejI1QeYlo90bI4FVsf4F3bPEoVtrTtHU4.4AkQqJnIdWBVi46duJvm5YUcDV.mupvG89UUvJbkRlNxYWxnxa1PhZGjnYG98t0PzhVpoplDYgPWkA0RdVTsj3kfZTPM+ZibqC0BlFIkvO8Ocp1Wc4HrDGqPP2v3sgHjT0zReD4QXCgvhUGZLh38fjuInuQ4bvT+CX3eqltgdEXj2p93uAeDrvWau+YEiJlnKfLBOTcSzUXwJRPyTzFnoDapuaA3ln4tvWEPaEohOGcMAKRwaGqjhDchTSQ7tIJZDV7PJduTbBYSJd+zAHGgYcUYRKvwl2RMMQmCg7BfMPywLaHjW.uInTlWAOiYKzPGvnKf1FMP.acT.sC5LW0wCrwEbjlcQCHBUEmhJpGZ.2SBqJTsQmkRzOGwfDhFvbcM0BuhmWSMLQ2QILFt.bCzK4BHGWVbnazDsXMAclvZ8H+GHo3sPKD7sno9dTqBhzFbcTlD1fy4Q3iThNPjwZMlQsJ3SZzMRjyIv5I6JMQ2x4tA4gykpcLf4bBViXrAfSm6QRYZlxLAxfRvaEiOLEqcL1nTrNwXiSw5FjDADvZsTzdQSbUyTz9nKH3G2lGER6BySeImaSXEHMiR5KkrQjjKf571E3ZFmkWFYqHsVFWazHQvhC3zWpBqoLcPi9VLaE2qfDciz1c72VfoG5bGUBddz9nYDgkumWvQWxRAokSwBnpLZBealgtgYxZ478uQRMg73Mi5+sEmdPd4tXv5P0lp4A6Dqhbnwy07n8PAmvq.ZezPh5Le4gaVGM.1Rs.XRh7KRwfEcXprf2qYSnJknfeqYKzM3GfqJTXl0Dxhmn71KCwaEGTyTBONLmkKoPdYjwkyKiqU9ZwYoZmDp1gpShTCDzUqk4H6lHWIj8PufB9xxLk9n4Lrnz4Grj6tfCeUFmI5rOeZoLMPCGUJQSzMv9CkwzJr5PYTsgx72G2FpekkqSNtA43.+gOrAiLQoAJBJZCkmSipwP4YShqkSGGYKmsPrMGWlMs2krS9HeNttEC84X6kp1xn6WL0HKKDjC78kNYfn7Ub1peDxFQ6VWNaynp3ky1BVcCU7d0qtJOd6rE8NiJp.dE3x3gwrq4B4ZHf5CailgnAZLVc4vh3Pbh6Wl.sPujTl.sQCgSM3hCqBjhCeYwU2u.p9fWQxv.G0.CivEbeurv8PCA+xLUXLErOr8ObQjTDv0CEYeCrkE5NH9P1lgxDs.1CwgnXy.2.clE1l3tE80XQVBvaSgi.PsyXFpiSggCsxx.0NbKXzezGKDYGvNnw9v4kyZdcQmC2IvNrslKN3Lu7fGRYm6++LiobaeGrL+yQndnlHBHfl6M.T2ym4Qkay9PNe.uQQ824aT79ZhepwLpzZc413dkXiv8K9egMF8xN+RiwKWBWcL0.OvXxqdmOiyAueCe50w9IeRmOK1Vxba4.a44F69ZJ4rsQhs4eZtu9u+RhLOjl1Ufgyrx4SuL7h1WQXqjqylPDYVWx13Kyh+UdD0wCVI39L6EqEDrcV8MSPrIN3biwEzgYzwe4eb5Hr6FXQc19LYxhnqHFA87SUuNP36.drQw2Hn70qpW+PyUMmMzU5HZky+9utulCmuABbBYLmBXLyNlWe+eldiNsagRevjaJVJnpg+ZeWnZHb4DH0hwHNdpgbO0EwCaWO1hlSX1AM9OvuHRSUa8HRyXx+uLFtXKA+0VgOQfJS8iCPf4MKHnbnwTUajYgWDP42o1zWaYkWU6HXimpfMepB15oJX6mpfcdpB18oJXueZAUOU8Y9RtaXcWMsoyFG7BN55iYXHKOnjh1+EQKgIp.
-
@Simon Are these IRs going to be provided with the plugin, or are they external and the user can add their own?
-
@Simon read this thread, you need to call
loadAudioFilesIntoPool()
. -
@d-healey They'll be shipped with the plugin, with no option to let the user add more.
@Christoph-Hart I did!
const ConvolutionReverb = Synth.getAudioSampleProcessor("Convolution Reverb"); const reverbSelector = Content.addComboBox("reverbSelctor", 10, 150); reverbSelector.set("items",""); Engine.loadAudioFilesIntoPool(); const impulseFolder = FileSystem.getFolder(FileSystem.AudioFiles); const impulses = FileSystem.findFiles(impulseFolder, "*" , false); for(ir in impulses){ reverbSelector.addItem(ir.toString(ir.Filename).replace(".wav","")); } inline function onreverbSelectorControl(component, value) { local impulse = impulses[value - 1].toString(impulses[value - 1].Filename); ConvolutionReverb.setFile("{PROJECT_FOLDER}" + impulse); }; reverbSelector.setControlCallback(onreverbSelectorControl);
-
@Simon loadAudioFilesIntoPool returns a list of references. Do not use findFiles, the files do not exist on the user system.
-
@Christoph-Hart Ahaaaahhh that's the step I was missing, thanks very much!