Convolution no embedding

  • The Convolution reverb is not embedding the AudioFiles impulses response into the plugin

  • @Jay Activate the "Embed Audio Files" in the Preferences menu. Then compile the plugin, it will work. Also be sure that your IR and audio files in the "Audio" folder of your HISE project location.

  • it is activate it and the IR are in the audio folder.

    Screen Shot 2019-01-12 at 5.49.38 PM.png

  • @Jay I think this was discussed recently. Check the search real quick.

  • @Jay said in Convolution no embedding:

    it is activate it and the IR are in the audio folder.

    I had same error with graphic files I changed on work in progress and @Christoph-Hart replied me to click on the command "Export Pooled Files to Binary Resources" in the Export voice menu and it works.

  • OK I'm now having this problem with IR's.....

    I've set "Embed Audio Files" to ON in the preferences,

    and I've pressed: "Export Pooled Files to Binary Resources"

    I note HISE telling me this in the console when I do this step;

    Retrovolt09: Writing {PROJECT_FOLDER}Bottle Hall.wav ... 0 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Conic Long Echo Hall.wav ... 45 kB
    Retrovolt09: Writing {PROJECT_FOLDER}CUSTOM spatial plate.WAV ... 333 kB
    Retrovolt09: Writing {PROJECT_FOLDER}CUSTOM_dream hall.WAV ... 428 kB
    Retrovolt09: Writing {PROJECT_FOLDER}CUSTOM_gen rhall.WAV ... 677 kB
    Retrovolt09: Writing {PROJECT_FOLDER}CUSTOM_museum hall.WAV ... 864 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Deep Space.wav ... 972 kB
    Retrovolt09: Writing {PROJECT_FOLDER}DRUMSbig drums.WAV ... 987 kB
    Retrovolt09: Writing {PROJECT_FOLDER}DRUMSshort plate.WAV ... 1101 kB
    Retrovolt09: Writing {PROJECT_FOLDER}French 18th Century Salon.wav ... 1172 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Greek 7 Echo Hall.wav ... 1254 kB
    Retrovolt09: Writing {PROJECT_FOLDER}INSTR gold plate.WAV ... 1344 kB
    Retrovolt09: Writing {PROJECT_FOLDER}INSTR plate4brass.WAV ... 1515 kB
    Retrovolt09: Writing {PROJECT_FOLDER}INSTR rock plate.WAV ... 1734 kB
    Retrovolt09: Writing {PROJECT_FOLDER}INSTR_guitar cave.WAV ... 1945 kB
    Retrovolt09: Writing {PROJECT_FOLDER}INSTR_horns hall.WAV ... 2112 kB
    Retrovolt09: Writing {PROJECT_FOLDER}INSTR_short reverse.WAV ... 2210 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Large Long Echo Hall.wav ... 2278 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Large Wide Echo Hall.wav ... 2564 kB
    Retrovolt09: Writing {PROJECT_FOLDER}LIVE great plate.WAV ... 2839 kB
    Retrovolt09: Writing {PROJECT_FOLDER}LIVE hot plate.WAV ... 3069 kB
    Retrovolt09: Writing {PROJECT_FOLDER}ORCH_concert hall.WAV ... 3346 kB
    Retrovolt09: Writing {PROJECT_FOLDER}ORCH_deep blue.WAV ... 3468 kB
    Retrovolt09: Writing {PROJECT_FOLDER}ORCH_m hall+stage.WAV ... 3698 kB
    Retrovolt09: Writing {PROJECT_FOLDER}ORCH_small church.WAV ... 3775 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Scala Milan Opera Hall.wav ... 3967 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Small Drum Room.wav ... 4077 kB
    Retrovolt09: Writing {PROJECT_FOLDER}Small Prehistoric Cave.wav ... 4140 kB
    Retrovolt09: Writing {PROJECT_FOLDER}St Nicolaes Church.wav ... 4185 kB
    Retrovolt09: Writing {PROJECT_FOLDER}VOC vocal plate2.WAV ... 4522 kB
    Retrovolt09: Writing {PROJECT_FOLDER}VOC_good ol' verb.WAV ... 4678 kB
    Retrovolt09: Writing {PROJECT_FOLDER}VOC_vocal hall2.WAV ... 4837 kB
    Retrovolt09: Writing {PROJECT_FOLDER}VOC_vocal magic.WAV ... 4990 kB

    So they all appear to be done correctly yet:

    I've reinstalled the program too (tho I cant see how that would help things..) so I', So now I'm a bit stuck, and this is getting urgent...

    All help appreciated.

  • You need to have Engine.loadAudioFilesIntoPool(); in on init.

  • @d-healey -- oh LOONG since had that:


    -- in dfact I think theres a compile check these days that issues a warning if you dont have this..

  • @Lindon Right well Now the problem is:

    The stand alone starts OK - and runs fine - except:

    The reverb isnt working at all,

    Still... when I select a new IR then SOME of them DONT report an error - tho they are not having any effect in the instrument, and SOME of them report "not embeded properly"

    Heres my combo box code:

    inline function onReverbMenuControl(component, value)
    	//Change the IRs..
             case 1:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Bottle Hall.wav");
             case 2:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Conic Long Echo Hall.wav");
             case 3:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}CUSTOM spatial plate.wav");
             case 4:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}CUSTOM_dream hall.wav");
             case 5:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}CUSTOM_gen rhall.wav");
             case 6:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}CUSTOM_museum hall.wav");
             case 7:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Deep Space.wav");
             case 8:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}DRUMSbig drums.wav");
             case 9:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}DRUMSshort plate.wav");
             case 10:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}French 18th Century Salon.wav");
             case 11:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Greek 7 Echo Hall.wav");
             case 12:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}INSTR gold plate.wav");
             case 13:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}INSTR plate4brass.wav");
             case 14:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}INSTR rock plate.wav");
             case 15:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}INSTR_guitar cave.wav");
             case 16:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}INSTR_horns hall.wav");
             case 17:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}INSTR_short reverse.wav");
             case 18:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Large Long Echo Hall.wav");
             case 19:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Large Wide Echo Hall.wav");
             case 20:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}LIVE great plate.wav");
             case 21:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}LIVE hot plate.wav");
             case 22:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}ORCH_concert hall.wav");
             case 23:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}ORCH_deep blue.wav");
             case 24:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}ORCH_m hall+stage.wav");
             case 25:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}ORCH_small church.wav");
             case 26:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Scala Milan Opera Hall.wav");
             case 27:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Small Drum Room.wav");
             case 28:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}Small Prehistoric Cave.wav");
             case 29:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}St Nicolaes Church.wav");
             case 30:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}VOC vocal plate2.wav");
             case 31:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}VOC_good ol' verb.wav");
             case 32:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}VOC_vocal hall2.wav");
             case 33:
                        ConvolutionReverb1.setFile("{PROJECT_FOLDER}VOC_vocal magic.wav");

  • @Lindon ....and NOW.....

    it seems some are loading and working correctly and some are reporting "not embeded "

  • @Lindon perhaps its something IN the Audio file that is stopping it embeding properly - whats the format requirements for IRs?

  • @Lindon swell they are all 16 bit 44.1 Khz sample rate so thats not it... any help?

  • Right, found it:

    So for those in a similar situation:

    Here's the name of one of my IR files:

    LIVE hot plate.WAV

    Here's the piece of code that loads it:

    ConvolutionReverb1.setFile("{PROJECT_FOLDER}LIVE hot plate.wav");
    • this loads and plays nicely in HISE, but will not load in a compiled app...

    Perhaps you can quickly spot where I've made a mistake...It took me all morning...

    • yes this

    LIVE hot plate.WAV

    is NOT this:

    LIVE hot plate.wav

    --- as far as the HISE application is concerned the case of the file extension is unimportant, but as far as a compiled app is concerned - it IS important.

    So leaving my file named:

    LIVE hot plate.WAV

    and changing my code to read:

    ConvolutionReverb1.setFile("{PROJECT_FOLDER}LIVE hot plate.WAV");

    Means it all works correctly.

    So my request:

    @Christoph-Hart - can we please have case sensitivity parity between HISE and the things made in HISE.....

  • Hmm, the problem is that I am just passing the file path to the OS methods and Windows doesn't care about uppercase, but macOS does (in a compiled plugin it is case sensitive on both OS because it uses the path as normal string key to a hash map). I have no idea how to validate the case sensitivity for file paths on Windows without bad hacks, so this is a classic case of "watch out during development".

  • @Christoph-Hart OK, understood, but perhaps we could have a warning?

  • but how should I do that? You pass a string to a OS call and get a file handle back. I would have to then query the filename from the handle and match it with the input, which is really hacky and adds performance overhead for 0.00001% of all cases where somebody makes a case mistake.

Log in to reply