Convolution no embedding



  • 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:

    Engine.loadAudioFilesIntoPool();

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


  • @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
 

14
Online

1.6k
Users

4.6k
Topics

42.7k
Posts