< Back to IRCAM Forum

Defaut source room parameters different by default for two sources

Hi there!

A few questions:

  1. When I tell spat5.oper that I have two sources, it sends my spat5.spat~ some new room, early, and cluster params that differ from the default ones for source 2, but not for source 1. Does anybody knows why? What worries me is mostly the gain change, as one of my sources seems more reverberant than the other and more importantly, one is much louder than the other.
    image
    image
  2. The delays are also different, but I would not expect it to have a big effect, contrarily to the others. Is that correct?
  3. it also changes the early gains for both sources from 1 1 1 1 1 1 1 1 to -1 1 1 -1 -1 -1 1 1. Is that just changing the phase of some of the delayed versions? Should I keep these phase inversions or should I set them back to 1?
  4. I assume the role of the early/params and cluster/params is the same as for the axis and omni, is that correct?
  5. Is it also correct that I cannot change the early/params and cluster/params through the spat5.oper but just through the spat5.spat? The axis/params and omni/params, I can change with the spat5.oper, that’s not a problem, but the other 2, if I try, it tells me that it’s a low level message and that spat5.oper does not support them.
  6. how come every time I start a patch like that, the sources sound very reverberant, but as soon as I touch any room parameter at all, it becomes much dryer? When I do that, at the output of the spat5.oper, I get a FullPacket message, which I’m not sure what it means.

Thank you!

Laurent

Hi Laurent,

  1. Can you send a patcher that demonstrates your issue. What is your use case ? (i.e. why do you need to change the number of sources ?) Upon initialization, make sure to bang the spat5.oper, so that it delivers all necessary messages to the associated spat5.spat~

  2. Yes, delays will affect the “sound quality” of the reverb, which might be less noticeable than a major difference in levels.

  3. Indeed, that’s just a phase inversion. It’s not absolutely necessary.

  4. “axis” applies to direct sound only. “omni” applies to all the reverberated part i.e. early+cluster+late reverb. “early” applies only to the early section.

  5. Indeed, early and cluster parameters are “low-level”, and cannot be changed directly in spat5.oper.
    They are deduced by the high-level attributes (perceptual factors, aperture/orientation, etc.)

  6. Sounds like an initialization issue, like a missing loadbang. See also spat5.tuto-osc-3

FullPacket is an OSC bundle i.e. a collection of OSC messages packed together. Have a look at spat5.tuto-osc-6 or spat5.osc.view.maxhelp

Hope this helps,
T.

Hi Thibaut,

  1. Actually, I do not need to change the number of sources after initialization, I was just initializing it like that because that way, I have a patcher with all my initialization parameters (an old habit). Indeed, when using @initwith, it works fine. Thank you! I still enclose my patch at the end, in case you’d want to have a look.

  2. ok

  3. ok

  4. No I meant that in my spat5.spat~ I have some /source/X/early/params and /source/X/cluster/params. The different values of those also correspond to GO, Gl, Gm, Gh, fl and fh?

  5. ok

  6. putting a deferloadbang directly in the spat5.oper solved the problem.

Thank you very much, and have a nice week end.

Laurent

demo code

{
“boxes” : [ {
“box” : {
“maxclass” : “newobj”,
“text” : “p source_parameters”,
“patching_rect” : [ 369.0, 568.0, 122.0, 22.0 ],
“numinlets” : 0,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-86”,
“patcher” : {
“fileversion” : 1,
“appversion” : {
“major” : 8,
“minor” : 1,
“revision” : 11,
“architecture” : “x64”,
“modernui” : 1
}
,
“classnamespace” : “box”,
“rect” : [ 2213.0, 248.0, 895.0, 912.0 ],
“bglocked” : 0,
“openinpresentation” : 0,
“default_fontsize” : 12.0,
“default_fontface” : 0,
“default_fontname” : “Arial”,
“gridonopen” : 1,
“gridsize” : [ 15.0, 15.0 ],
“gridsnaponopen” : 1,
“objectsnaponopen” : 1,
“statusbarvisible” : 2,
“toolbarvisible” : 1,
“lefttoolbarpinned” : 0,
“toptoolbarpinned” : 0,
“righttoolbarpinned” : 0,
“bottomtoolbarpinned” : 0,
“toolbars_unpinned_last_save” : 0,
“tallnewobj” : 0,
“boxanimatetime” : 200,
“enablehscroll” : 1,
“enablevscroll” : 1,
“devicewidth” : 0.0,
“description” : “”,
“digest” : “”,
“tags” : “”,
“style” : “”,
“subpatcher_template” : “”,
“assistshowspatchername” : 0,
“boxes” : [ {
“box” : {
“maxclass” : “button”,
“patching_rect” : [ 218.0, -20.0, 24.0, 24.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 1,
“outlettype” : [ “bang” ],
“id” : “obj-12”
}

					}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “loadmess”,
“patching_rect” : [ 260.0, 8.0, 60.0, 22.0 ],
“numinlets” : 1,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-30”
}

					}

, {
“box” : {
“maxclass” : “outlet”,
“patching_rect” : [ 55.0, 185.0, 30.0, 30.0 ],
“numinlets” : 1,
“numoutlets” : 0,
“id” : “obj-1”,
“comment” : “”,
“index” : 1
}

					}

, {
“box” : {
“maxclass” : “message”,
“text” : “/source/2/aed 0 0 1”,
“patching_rect” : [ 76.0, 108.0, 111.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-21”
}

					}

, {
“box” : {
“maxclass” : “message”,
“text” : “/source/1/aed 0 0 1”,
“patching_rect” : [ 37.0, 84.0, 111.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-3”
}

					}

, {
“box” : {
“maxclass” : “message”,
“text” : “/source/number 2”,
“patching_rect” : [ 291.0, 48.0, 102.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-39”
}

					}

],
“lines” : [ {
“patchline” : {
“source” : [ “obj-39”, 0 ],
“destination” : [ “obj-1”, 0 ]
}

					}

, {
“patchline” : {
“source” : [ “obj-30”, 0 ],
“destination” : [ “obj-39”, 0 ],
“order” : 0
}

					}

, {
“patchline” : {
“source” : [ “obj-30”, 0 ],
“destination” : [ “obj-3”, 0 ],
“order” : 2
}

					}

, {
“patchline” : {
“source” : [ “obj-30”, 0 ],
“destination” : [ “obj-21”, 0 ],
“order” : 1
}

					}

, {
“patchline” : {
“source” : [ “obj-3”, 0 ],
“destination” : [ “obj-1”, 0 ]
}

					}

, {
“patchline” : {
“source” : [ “obj-21”, 0 ],
“destination” : [ “obj-1”, 0 ]
}

					}

, {
“patchline” : {
“source” : [ “obj-12”, 0 ],
“destination” : [ “obj-30”, 0 ]
}

					}

]
}
,
“saved_object_attributes” : {
“description” : “”,
“digest” : “”,
“globalpatchername” : “”,
“tags” : “”
}

		}

	}

, {
“box” : {
“maxclass” : “comment”,
“text” : “gain for the speech sources”,
“linecount” : 3,
“patching_rect” : [ 137.633720998680076, 763.0, 101.0, 52.0 ],
“numinlets” : 1,
“bubble” : 1,
“numoutlets” : 0,
“bubbleside” : 3,
“id” : “obj-75”
}

	}

, {
“box” : {
“maxclass” : “comment”,
“text” : “defines part of the reproduction technique”,
“linecount” : 2,
“patching_rect” : [ 658.0, 748.0, 150.0, 38.0 ],
“numinlets” : 1,
“bubble” : 1,
“numoutlets” : 0,
“id” : “obj-73”
}

	}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “loadbang”,
“patching_rect” : [ 526.481491267681122, 721.0, 58.0, 22.0 ],
“numinlets” : 1,
“numoutlets” : 1,
“outlettype” : [ “bang” ],
“id” : “obj-68”
}

	}

, {
“box” : {
“maxclass” : “comment”,
“text” : “3) choose an interferer speech sound file”,
“linecount” : 2,
“patching_rect” : [ 652.0, 414.0, 243.0, 71.0 ],
“fontsize” : 20.0,
“numinlets” : 1,
“bubble” : 1,
“numoutlets” : 0,
“bubbleside” : 2,
“id” : “obj-67”
}

	}

, {
“box” : {
“maxclass” : “comment”,
“text” : “6) click here to start all sounds”,
“linecount” : 2,
“patching_rect” : [ 857.0, 34.0, 163.0, 56.0 ],
“fontsize” : 20.0,
“numinlets” : 1,
“bubble” : 1,
“numoutlets” : 0,
“id” : “obj-57”
}

	}

, {
“box” : {
“maxclass” : “toggle”,
“patching_rect” : [ 818.0, 41.0, 24.0, 24.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 1,
“outlettype” : [ “int” ],
“id” : “obj-51”
}

	}

, {
“box” : {
“maxclass” : “comment”,
“text” : “on = sounds will loop\noff = sounds will not loop”,
“linecount” : 2,
“patching_rect” : [ 735.0, 279.481473000000051, 150.0, 34.0 ],
“numinlets” : 1,
“numoutlets” : 0,
“id” : “obj-49”
}

	}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “loadmess 1”,
“patching_rect” : [ 702.0, 242.0, 70.0, 22.0 ],
“numinlets” : 1,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-44”
}

	}

, {
“box” : {
“maxclass” : “message”,
“text” : “loop $1”,
“patching_rect” : [ 612.299245514869654, 374.0, 48.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-70”
}

	}

, {
“box” : {
“maxclass” : “toggle”,
“patching_rect” : [ 798.0, 483.0, 24.0, 24.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 1,
“outlettype” : [ “int” ],
“id” : “obj-26”
}

	}

, {
“box” : {
“maxclass” : “message”,
“text” : “open”,
“patching_rect” : [ 756.0, 491.0, 35.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-27”
}

	}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “sfplay~ 1”,
“patching_rect” : [ 755.0, 517.0, 57.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 2,
“outlettype” : [ “signal”, “bang” ],
“id” : “obj-29”,
“saved_object_attributes” : {
“basictuning” : 440,
“followglobaltempo” : 0,
“formantcorrection” : 0,
“mode” : “basic”,
“originallength” : [ 31712.080000000001746, “ticks” ],
“originaltempo” : 120.000000000000014,
“pitchcorrection” : 0,
“quality” : “basic”,
“timestretch” : [ 0 ]
}

		}

	}

, {
“box” : {
“maxclass” : “toggle”,
“patching_rect” : [ 702.0, 284.481472999999994, 24.0, 24.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 1,
“outlettype” : [ “int” ],
“id” : “obj-22”
}

	}

, {
“box” : {
“maxclass” : “toggle”,
“patching_rect” : [ 553.0, 483.0, 24.0, 24.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 1,
“outlettype” : [ “int” ],
“id” : “obj-17”
}

	}

, {
“box” : {
“maxclass” : “message”,
“text” : “open”,
“patching_rect” : [ 511.0, 491.0, 35.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-15”
}

	}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “sfplay~ 1”,
“patching_rect” : [ 510.0, 517.0, 57.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 2,
“outlettype” : [ “signal”, “bang” ],
“id” : “obj-8”,
“saved_object_attributes” : {
“basictuning” : 440,
“followglobaltempo” : 0,
“formantcorrection” : 0,
“mode” : “basic”,
“originallength” : [ 19570.600000000005821, “ticks” ],
“originaltempo” : 120.000000000000028,
“pitchcorrection” : 0,
“quality” : “basic”,
“timestretch” : [ 0 ]
}

		}

	}

, {
“box” : {
“maxclass” : “gain~”,
“patching_rect” : [ 249.935189499999979, 710.0, 22.0, 140.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 2,
“multichannelvariant” : 0,
“outlettype” : [ “signal”, “” ],
“id” : “obj-25”
}

	}

, {
“box” : {
“maxclass” : “gain~”,
“patching_rect” : [ 557.5, 843.0, 10.0, 17.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 2,
“multichannelvariant” : 0,
“outlettype” : [ “signal”, “” ],
“id” : “obj-24”
}

	}

, {
“box” : {
“maxclass” : “gain~”,
“patching_rect” : [ 515.5, 843.0, 10.0, 17.0 ],
“numinlets” : 1,
“parameter_enable” : 0,
“numoutlets” : 2,
“multichannelvariant” : 0,
“outlettype” : [ “signal”, “” ],
“id” : “obj-23”
}

	}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “dac~ 1 2”,
“patching_rect” : [ 515.0, 869.0, 55.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 0,
“id” : “obj-21”
}

	}

, {
“box” : {
“maxclass” : “message”,
“text” : “/panning/type binaural”,
“patching_rect” : [ 526.481491267681122, 754.0, 127.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 1,
“outlettype” : [ “” ],
“id” : “obj-14”
}

	}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “spat5.oper”,
“patching_rect” : [ 369.0, 635.0, 65.0, 22.0 ],
“numinlets” : 1,
“numoutlets” : 4,
“outlettype” : [ “”, “”, “”, “” ],
“id” : “obj-10”,
“saved_object_attributes” : {
“parameter_enable” : 0
}

		}

	}

, {
“box” : {
“maxclass” : “newobj”,
“text” : “spat5.spat~ @inputs 2 @outputs 2 @internals 8”,
“patching_rect” : [ 510.0, 788.0, 264.0, 22.0 ],
“numinlets” : 2,
“numoutlets” : 3,
“outlettype” : [ “signal”, “signal”, “” ],
“id” : “obj-9”,
“saved_object_attributes” : {
“parameter_enable” : 0
}

		}

	}

],
“lines” : [ {
“patchline” : {
“source” : [ “obj-9”, 1 ],
“destination” : [ “obj-24”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-9”, 0 ],
“destination” : [ “obj-23”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-86”, 0 ],
“destination” : [ “obj-10”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-8”, 0 ],
“destination” : [ “obj-9”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-70”, 0 ],
“destination” : [ “obj-8”, 0 ],
“order” : 1
}

	}

, {
“patchline” : {
“source” : [ “obj-70”, 0 ],
“destination” : [ “obj-29”, 0 ],
“order” : 0
}

	}

, {
“patchline” : {
“source” : [ “obj-68”, 0 ],
“destination” : [ “obj-14”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-51”, 0 ],
“destination” : [ “obj-26”, 0 ],
“order” : 0
}

	}

, {
“patchline” : {
“source” : [ “obj-51”, 0 ],
“destination” : [ “obj-17”, 0 ],
“order” : 1
}

	}

, {
“patchline” : {
“source” : [ “obj-44”, 0 ],
“destination” : [ “obj-22”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-29”, 0 ],
“destination” : [ “obj-9”, 1 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-27”, 0 ],
“destination” : [ “obj-29”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-26”, 0 ],
“destination” : [ “obj-29”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-25”, 1 ],
“destination” : [ “obj-24”, 0 ],
“order” : 0
}

	}

, {
“patchline” : {
“source” : [ “obj-25”, 1 ],
“destination” : [ “obj-23”, 0 ],
“order” : 1
}

	}

, {
“patchline” : {
“source” : [ “obj-24”, 0 ],
“destination” : [ “obj-21”, 1 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-23”, 0 ],
“destination” : [ “obj-21”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-22”, 0 ],
“destination” : [ “obj-70”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-17”, 0 ],
“destination” : [ “obj-8”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-15”, 0 ],
“destination” : [ “obj-8”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-14”, 0 ],
“destination” : [ “obj-9”, 0 ]
}

	}

, {
“patchline” : {
“source” : [ “obj-10”, 0 ],
“destination” : [ “obj-9”, 0 ]
}

	}

],
“appversion” : {
“major” : 8,
“minor” : 1,
“revision” : 11,
“architecture” : “x64”,
“modernui” : 1
}
,
“classnamespace” : “box”
}

  1. Yes, that is the same syntax : /params G0 Gl Gm Gh fl fh
    You can also have a look at spat5.hlshelf (and its Reference Page) for additional information.

Glad your other problems are solved.
Have a nice weekend,
T.