i'm trying to experiment and learn how [fiddle~] works, using it to
control the pitch and the envelope of a sawtooth oscillator through an
electric guitar directly plugged into my soundcard (an edirol fa-101
with preamplifiers).
I read the help i made experiments, but i still have doubts on some issues.
For example how the low and high thresholds work? The explanation was a
bit obscure to me. I guess that:
- the low threshold is the one at which raw pitch/amplitude output
becomes different than zero, showing the value of both.
- the high threshold is the one at which cooked output is changed, and a
bang is sent out from the bang outlet.
But i noticed that if the high threshold is less than the low one, i get
a never stopping sequence of bangs. Why? Is it an issue of fiddle~ ?
I would also like to understand better the use of vibrato and reattack,
the help was not clear to me.
Then, i tried to find a way to send a "release note" signal (so i can
make synth note emulate the duration of guitar note) to the envelope
generator: i'm using vline~ with two possible "in" messages, a ramp up
banged by the bang outlet of fiddle, and a ramp down banged when the raw
amplitude output becomes zero.
I think this will create problems when i will try to recognize polyponic
notes. But also for monophonic purposes, i still have some troubles:
if i take the pitch information from the cooked output, as soon as i
get the bang the envelope attacks, but there is a recognizable delay
time for cooked pitch output to change from old value to new, leading to
a disturbing pitch switching attack. Instead, if i use the raw pitch
output, no problem with attack, but if i set a too long release time, i
can hear the pitch going to zero before the sound has disappeared.
Is there a more elegant solution for this?
In the end, i would like the velocity of the synth note be proportional
to the level of incoming guitar note. My first idea is to snapshot the
value of raw amplitude output few milliseconds after the note-on bang.
Is it a good idea or, again is there a more elegant solution?
thanks,
athos