ReaCoMa / ReaCoMa-2.0

ReaCoMa 2.0
GNU General Public License v3.0
36 stars 2 forks source link

HPSS — wav file "failed to be made by the command line" #21

Closed LFSaw closed 1 year ago

LFSaw commented 1 year ago

Hello there,

thanks so much for these wrappers! They used to work on my other machine but now I get strange behaviour:

Any help would be much appreciated!

I am on

EDIT: using e.g. the fluid-hpss in the terminal just works...

Screenshot 2023-05-31 at 17 51 38

jamesb93 commented 1 year ago

Hi @LFSaw. Can you send me the same sound file to check against? Also which version of ReaCoMa are you using?

jamesb93 commented 1 year ago

As it were, can you try using the new 2.9.0 version? It adds some more reporting features that will help bugs be tracked down.

LFSaw commented 1 year ago

with the newest version of reacoma and its build-in flucoma-cli, I get this error:

...ication Support/REAPER/Scripts/ReaCoMa-2.0/lib/utils.lua:124: Fatal ReaCoMa error! An assertion has failed. Refer to the console for more information. If you provide a bug report it is useful to include the output of this window and the console.
[PATH_TO_REAPER_PROJECT]/_audio/amen-glued-02_hpss-p_168621140959471.wav failed to be made by the command line.
stack traceback:
    ...ication Support/REAPER/Scripts/ReaCoMa-2.0/lib/utils.lua:122: in function 'utils.assert'
    ...cation Support/REAPER/Scripts/ReaCoMa-2.0/lib/layers.lua:13: in function 'layers.exist'
    ...cation Support/REAPER/Scripts/ReaCoMa-2.0/lib/layers.lua:43: in function 'layers.process_all_items'
    ...pport/REAPER/Scripts/ReaCoMa-2.0/lib/algorithms/hpss.lua:39: in function 'algorithms/hpss.perform_update'
    ...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_helpers.lua:94: in function 'imgui_helpers.process'
    ...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_wrapper.lua:31: in function 'imgui_wrapper.loop'
    ...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_wrapper.lua:110: in function <...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_wrapper.lua:109>

sndfile-info on the wav file gives this:

$ sndfile-info amen-glued-02.wav
========================================
File : amen-glued-02.wav
Length : 90090
RIFF : 90082
WAVE
fmt  : 16
  Format        : 0x1 => WAVE_FORMAT_PCM
  Channels      : 1
  Sample Rate   : 48000
  Block Align   : 2
  Bit Width     : 16
  Bytes/sec     : 96000
bext : 602
*** junk : 74 (unknown marker)
data : 89354
End

----------------------------------------
Sample Rate : 48000
Frames      : 44677
Channels    : 1
Format      : 0x00010002
Sections    : 1
Seekable    : TRUE
Duration    : 00:00:00.931
Signal Max  : 30517 (-0.62 dB)

I'm on

$ sw_vers
ProductName:    macOS
ProductVersion: 12.6.6
BuildVersion:   21G646

Reaper v6.79

LFSaw commented 1 year ago

I also tried a custom-build flucoma-cli (which works in the command-line) to no avail...

jamesb93 commented 1 year ago

I'm positive the issue here is one of two things:

  1. The path you of your reaper project is somehow completely breaking things in a really obscure way. I think this is unlikely, but it's the kind of thing where you only discoer the edge case in a scenario like this.
  2. The CLI string that is being used to invoke the right command is somehow broken. What I find peculiar is that the error should have printed the CLI string if indeed it asserted that something went wrong with the CLI.

Though a bit tedious, can you add some code to one of the lua files?

in lib/algorithms/hpss.lua can you add on line 36:

reaper.ShowConsoleMsg(tostring(data.cmd))


It should look like this in the code neighbourhood:

    local processed_items = {}
    for i=1, num_selected_items do
        local data = reacoma.container.get_item_info(i)

        data.outputs = {
            harmonic = data.path .. "_hpss-h_" .. reacoma.utils.uuid(i) .. ".wav",
            percussive = data.path .. "_hpss-p_" .. reacoma.utils.uuid(i) .. ".wav"
        }

        data.cmd = exe .. 
        " -source " .. reacoma.utils.wrap_quotes(data.full_path) .. 
        " -harmonic " .. reacoma.utils.wrap_quotes(data.outputs.harmonic) .. 
        " -percussive " .. reacoma.utils.wrap_quotes(data.outputs.percussive) ..  
        " -harmfiltersize " .. hfs .. " " .. hfs ..
        " -percfiltersize " .. pfs .. " " .. pfs ..
        " -maskingmode " .. maskingmode ..
        " -fftsettings " .. fftsettings .. 
        " -numframes " .. data.item_len_samples .. 
        " -startframe " .. data.take_ofs_samples

        reaper.ShowConsoleMsg(tostring(data.cmd))

        table.insert(processed_items, data)
    end
    reacoma.layers.process_all_items(processed_items)

Once you've done this run the HPSS script and let me know what the output is in the reaper console.

LFSaw commented 1 year ago

this is the output:

"/Users/tboverma/Library/Application Support/REAPER/Scripts/ReaCoMa-2.0/bin/fluid-hpss" -source "/Users/tboverma/vol/sound/recordings/reacoma-trials/_audio/amen-glued-02.wav" -harmonic "/Users/tboverma/vol/sound/recordings/reacoma-trials/_audio/amen-glued-02_hpss-h_168630972111381.wav" -percussive "/Users/tboverma/vol/sound/recordings/reacoma-trials/_audio/amen-glued-02_hpss-p_168630972111381.wav" -harmfiltersize 17 17 -percfiltersize 31 31 -maskingmode 0 -fftsettings 1024 512 1024 -1 -numframes 44677 -startframe 0/Users/tboverma/vol/sound/recordings/reacoma-trials/_audio/amen-glued-02_hpss-h_168630972111381.wav failed to be made by the command line.
stack traceback:
    ...ication Support/REAPER/Scripts/ReaCoMa-2.0/lib/utils.lua:122: in function 'utils.assert'
    ...cation Support/REAPER/Scripts/ReaCoMa-2.0/lib/layers.lua:13: in function 'layers.exist'
    ...cation Support/REAPER/Scripts/ReaCoMa-2.0/lib/layers.lua:43: in function 'layers.process_all_items'
    ...pport/REAPER/Scripts/ReaCoMa-2.0/lib/algorithms/hpss.lua:41: in function 'algorithms/hpss.perform_update'
    ...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_helpers.lua:94: in function 'imgui_helpers.process'
    ...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_wrapper.lua:31: in function 'imgui_wrapper.loop'
    ...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_wrapper.lua:110: in function <...Support/REAPER/Scripts/ReaCoMa-2.0/lib/imgui_wrapper.lua:109>
LFSaw commented 1 year ago

when I try to run the output in the terminal

$ "/Users/tboverma/Library/Application Support/REAPER/Scripts/ReaCoMa-2.0/bin/fluid-hpss" -source "/Users/tboverma/vol/sound/recordings/reacoma-trials/_audio/amen-glued-02.wav" -harmonic "/Users/tboverma/vol/sound/recordings/reacoma-trials/_audio/amen-glued-02_hpss-h_168630972111381.wav" -percussive "/Users/tboverma/vol/sound/recordings/reacoma-trials/_audio/amen-glued-02_hpss-p_168630972111381.wav" -harmfiltersize 17 17 -percfiltersize 31 31 -maskingmode 0 -fftsettings 1024 512 1024 -1 -numframes 44677 -startframe 0

it complaints about

Expected option, but found 17
jamesb93 commented 1 year ago

Interesting... the -harmfiltersize 17 17 looks fine to me. The reason there is the same number twice is because the second number defines the maximum filter size, which in a non-realtime context is superfluous but nonetheless needs to be defined.

jamesb93 commented 1 year ago

For example, here is a working command of mine, with the latest ReaCoMa:

"/Users/jby/Library/Application Support/REAPER/Scripts/ReaCoMa-2.0/bin/fluid-hpss" -source "/System/Volumes/Data/Users/jby/dev/flucoma/core/Resources/AudioFiles/Tremblay-AaS-AcousticStrums-M.wav" -harmonic "/System/Volumes/Data/Users/jby/dev/flucoma/core/Resources/AudioFiles/Tremblay-AaS-AcousticStrums-M_hpss-h_168652250683291.wav" -percussive "/System/Volumes/Data/Users/jby/dev/flucoma/core/Resources/AudioFiles/Tremblay-AaS-AcousticStrums-M_hpss-p_168652250683291.wav" -harmfiltersize 17 17 -percfiltersize 31 31 -maskingmode 0 -fftsettings 1024 512 1024 -1 -numframes 1000975 -startframe

jamesb93 commented 1 year ago

Can you try one of the audio files which belong to the FluCoMa package? Nicol-LoopE-M.wav etc.?

LFSaw commented 1 year ago

Hello,

it was user error. I had two reacoma version installed, updated one, ran the other one. gna.

jamesb93 commented 1 year ago

Oh thank god, haha! Glad you got to the solution anyway.

LFSaw commented 1 year ago

I'm really sorry to have bothered you with this... I am normally much more careful with these kind of things... but somehow I had a knot in my brain (and the paths were super long... :) )

jamesb93 commented 1 year ago

It's no trouble at all. In the process of looking at various things it spurred me on to correct a few bugs and make the error reporting stronger. All part of the process :)