florian-grond / SC-HOA

HOA wrapper classes for SuperCollider based on https://github.com/sekisushai/ambitools
GNU General Public License v3.0
32 stars 7 forks source link

Missing sc-classes in sc3-plugins #44

Closed constantinpopp closed 3 years ago

constantinpopp commented 3 years ago

Hi,

I've tried using your fantastic HOA library but encountered some issues. Could you help me, please? SC-Lang can't find these classes:

(I only find HOADecBinaural1 + 2 on my system which is win 10, sc 3.11.2)

I am also missing kernels for HOADecLebedev26 and others. I have only hrir_christophe_lebedev50. How should the path be called so that the lebedev50 kernels are found? Right now they are at: ~\AppData\Local\HOA\FIR\hrir\hrir_christophe_lebedev50 Is this correct?

Many thanks for your help. Best wishes

thibaudk commented 3 years ago

Hello,

I think HOABinaural1 and 2 are legacy Ugens. For Higher orders, one should use HOABinaural.ar

(
x = { |az|
    HOABinaural.ar(
        order: 3,
        in: HOAEncoder.ar(3, WhiteNoise.ar, az.degrad.lag(0.2))
    ) * 0.1
}.play
)

You may need to update the quark. Let me know if that helps.

constantinpopp commented 3 years ago

Hi Thibaud,

Thanks for your answer. If I'm executing the code it throws the error message: "ERROR: Message 'at' not understood. RECEIVER: nil ARGS: Integer 2..."

I've downloaded the SC-HOA quark again. And it throws these errors. :( The integer 2 seems to refer to the order.

Here the full call stack: PROTECTED CALL STACK: Meta_MethodError:new 000001FE31692540 arg this = DoesNotUnderstandError arg what = nil arg receiver = nil Meta_DoesNotUnderstandError:new 000001FE31694500 arg this = DoesNotUnderstandError arg receiver = nil arg selector = at arg args = [ 2 ] Object:doesNotUnderstand 000001FE35D7FCC0 arg this = nil arg selector = at arg args = nil a FunctionDef 000001FE36035C00 sourceCode = "" arg i = 0 a FunctionDef 000001FE3204F280 sourceCode = "" arg i = 0 Integer:do 000001FE3204E680 arg this = 16 arg function = a Function var i = 0 Integer:collectAs 000001FE3204EEC0 arg this = 16 arg function = a Function arg class = Array var res = [ ] Meta_HOABinaural:ar 000001FE36034300 arg this = HOABinaural arg order = 3 arg in = [ an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy, an OutputProxy ] arg input_gains = 0 arg output_gains = 0 arg headphoneCorrection = nil var decoded = nil var maxChannels = 16 var mids = [ 0, 2, 3, 6, 7, 8, 12, 13, 14, 15 ] var mid = nil var sides = [ 1, 4, 5, 9, 10, 11 ] var side = nil var conv = nil var numChan = 16 a FunctionDef 000001FE307DBF38 sourceCode = "{ |az| HOABinaural.ar( order: 3, in: HOAEncoder.ar(3, WhiteNoise.ar, az.degrad.lag(0.2)) ) * 0.1 }" arg az = an OutputProxy SynthDef:buildUgenGraph 000001FE2FD37D80 arg this = a SynthDef arg func = a Function arg rates = nil arg prependArgs = [ ] var result = nil var saveControlNames = [ ControlName P 0 i_out scalar 0 ] a FunctionDef 000001FE31565400 sourceCode = "" arg i_out = an OutputProxy var result = nil var rate = nil var env = nil SynthDef:buildUgenGraph 000001FE2FD37D80 arg this = a SynthDef arg func = a Function arg rates = nil arg prependArgs = [ ] var result = nil var saveControlNames = nil a FunctionDef 000001FE2FD363C0 sourceCode = "" Function:prTry 000001FE35105300 arg this = a Function var result = nil var thread = a Thread var next = nil var wasInProtectedFunc = false

thibaudk commented 3 years ago

mmmh, yes I have it as well actually.

Will look into it

constantinpopp commented 3 years ago

just checked again. i have to load the binaural kernels first with HOABinaural.loadbinauralIRs(s); then it works.

will check the other problems again. seems like the install via the quark system works better than installing it manually.

👍

florian-grond commented 3 years ago

Thanks for chiming in Thibaud! HOABinaural is an implementation of the Binaural decoder of the IEM plugin suite, very efficient, much better than the legacy Ugens.

constantinpopp commented 3 years ago

hi florian, thanks for the headsup.

i've checked and i also could get HOAmbiPanner to work. It throws this error message: Execution warning: Class 'HOAmbiPanner3' not found

The code used was: x = {|az = 0| HOAmbiPanner.ar(3, Impulse.ar(10), az.degrad.lag(0.2))}.play

The problem I had originally with the HOADecLebedev26.ar from the tutorials may have been caused by my manual installation of the quark. Now it works fine.

Best wishes and many thanks for your help, Constantin