From the original SynthMaker forum (2004–2014), with its members’ names and dates.
fvwelsh ·
I'm having some confusion over how SM streams signals. I'm attempting to create a crossfade between two keyboard zones for which I've written the following code to take care of the upper half as well as its part of the crossfade.
I'm placing the code in the audio stream after the oscillators and before the filter. The problem is that when a key is pressed it effects the amplitude of the entire signal and not just the note that was pressed. Quiet notes from the crossfade zone will jump in amplitude as soon as any key from the upper zone is pressed and vice versa. For example, if I play key 63 I get a fairly low signal as expected. If I continue to hold that note and press key 76, for example, I not only get the full signal of key 76 but the amplitude of key 63 jumps up to full amplitude. Likewise, pressing and holding key 76 first followed by key 63 will cause the amplitude of key 76 to drop to the same level as key 63.
So all notes played share the same audio stream and my code affects the whole stream and not just the individual notes. Fine. What I don't understand is how this same signal can then pass onto the filter where the filter envelope acts on each key individually and not on the signal as a whole. Why is it that each of the keys can follow different envelopes but the code above acts on the stream as a whole? Do the envelopes 'unpack' the individual notes from the stream?
I'm just trying to split the keyboard in half and have a crossfade zone in the middle. I'd appreciate any advice.
oddson ·
If you are still in the poly realm (white connectors instead of Blue) the streams should stay separate and the amplitude can be based on the value of the note... but if you've already dropped into the mono realm (blue connectors) then there is no way to separate the signals from each note.
The fact that you've used both 'streamin' which is generic to both stream types and 'polyin' which is specific to poly inputs has me thinking you may be mixing blue and white in the same code.
fvwelsh ·
Thanks for the reply. I changed everything over to poly, but still get the same problem. Also, my connectors remain white no matter if they are poly or stream. No blue connections when using stream.
I don't think the problem is in the code afterall. Rather it has to do with the fact the note number is being taken as an integer from the Midi Spliter module which is then patched into the code as the poly variable I've named 'note'. Each key press is going to result in 'note' taking on a new value that is then applied to both zones. It is an integer masquerading as a poly. Has anyone else done crossfaded key zones?
fvwelsh ·
Solved it. Simply had to patch the pitch output from the Midi to Poly module into the polyin 'note' variable in my code. When I finish it I'll see about posting it on here.
oddson ·
I would have spotted that right away... that's the downside of not posting the OSM. 😉
Wrote something here? To have a post removed or your name hidden, write to [email protected].