musikinformatik / Steno

Concatenative little metalanguage for live coding
GNU General Public License v2.0
65 stars 7 forks source link

parallel synth graph problem #39

Closed telephon closed 6 years ago

telephon commented 6 years ago

It seems we have to really carefully test this new implementation.

There is a subtle error here:

t = Steno.push(2);
t.quelle(\i, { Impulse.ar(3) });
t.filter(\f, { |in, controls| RLPF.ar(in, Rand(4000, 8000), 0.01) });
t.filter(\d, { |in, controls| DelayL.ar(in, 0.2, SinOsc.kr(0.3, Rand(0, 2pi)).range(0, 0.2)) });

// all these are ok
-- i
-- if
-- if if
-- i[f f]
-- i[f f]d
-- i[f df]
-- i[f fd]

// but these are wrong (both signals go through the same delay)
-- i[fd fd]
-- i[(fd)(fd)]

The structure is this (correct):

------------  i  ------------
0
0
------------  [  ------------
nil
nil
------------  (  ------------
0
      2
------------  f  ------------
      2
      2
------------  d  ------------
      2
      2
------------  )  ------------
      2
   1
------------  (  ------------
0
      2
------------  f  ------------
      2
      2
------------  d  ------------
      2
      2
------------  )  ------------
      2
   1
------------  ]  ------------
   1
0

but somehow the signal flow doesn't follow it correctly.

The dumped node tree is:

NODE TREE Group 0
   1025 localhostInputLevels
   1 group
      1027 group
         1029 i_1272844888
           in: 21 dryIn: 21 tailBus: 2 out: 21 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 0 index: 0 nestingDepth: 0 feedback: 0
         1030 [_1272844888
           gate: 1
         1031 (_1272844888
           in: 21 dryIn: 21 tailBus: 2 out: 25 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 0 index: 0 nestingDepth: 0 feedback: 0
         1032 f_1272844888
           in: 25 dryIn: 21 tailBus: 2 out: 25 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 1 index: 0 nestingDepth: 2 feedback: 0 hangTime: 30
         1033 d_1272844888
           in: 25 dryIn: 21 tailBus: 2 out: 25 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 2 index: 0 nestingDepth: 2 feedback: 0 hangTime: 30
         1034 )_1272844888
           in: 25 dryIn: 21 tailBus: 2 out: 23 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 1 synthIndex: 0 index: 0 nestingDepth: 0 feedback: 0
         1035 (_1272844888
           in: 21 dryIn: 21 tailBus: 2 out: 25 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 0 index: 0 nestingDepth: 0 feedback: 0
         1036 f_1272844888
           in: 25 dryIn: 21 tailBus: 2 out: 25 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 3 index: 1 nestingDepth: 2 feedback: 0 hangTime: 30
         1037 d_1272844888
           in: 25 dryIn: 21 tailBus: 2 out: 25 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 4 index: 1 nestingDepth: 2 feedback: 0 hangTime: 30
         1038 )_1272844888
           in: 25 dryIn: 21 tailBus: 2 out: 23 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 1 synthIndex: 0 index: 0 nestingDepth: 0 feedback: 0
         1039 ]_1272844888
           in: 23 dryIn: 21 tailBus: 2 out: 21 gate: 1 fadeTime: 0.019999999552965 attack: 0.019999999552965 mix: 1 through: 0 synthIndex: 0 index: 0 nestingDepth: 0 feedback: 0
      1028 monitor_1272844888
        out: 0 in: 21 amp: 0.10000000149012 level: 0.89999997615814
   1026 localhostOutputLevels
telephon commented 6 years ago

The issue still is there, now we have silence for the problematic case …