Name b64Xtended _v2.2
Created At 2015-10-24 11:20am
Submitted By Menno0
Type blue.orchestra.BlueSynthBuilder

This instrument is inspired by the SID chip of the Commodore 64 and b64 by Steven Yi.

A nice feature is that for every one of the 3 oscillators a "swell" is implemented. That means tht within a tone of one oscillator an extra amount - positive or negative - of amplitude ( or swell ) can be given. Thus the 3 oscillators can be fine modulated by different subtle peaks or falls of amplitude within one note, making it more lively.
Another nice one is the stereo/mono switch. In stereo the 3 oscillators are divided over 2 channels. In mono mode you can treat the sounds of the 3 oscillators more as one sound with a certain timbre. It is possible to switch to and from stereo while the note is playing

RE UDO k_MultiOscil
- MultiOscilx has 2 extra parameters, 1 for switch and 1 for sinefreq
- added schwitch for PWM and a sine LFO for PWM to work with pulse
- changed PW to 0.05 and 0.95 (according to manual the right specs)
- kcount is a tric to divide a too large amp when waves are added together
- atemp is used to be able to add waves together
- added UDO k_Zwel, so 3 extra parameters

RE UDO k_MultiFilter
- low and high pass have a Q, bandpass has Bandwith and no Q
- added band reject
- uses svfilter for lowpass and highpass with Q, uses butter filter for band pass and band reject
- Band pass/reject value up to 1500 Hz

Q: in udo, why all the K instead of k? Because K works at i-time and k-rate, so it works all the time?
Q: what is the advantage of having kpch instead of ipch in my instrument? Is there one?
Q: why does the setting of PW an influence on the PW sine?
Q: i see no other way to put k_Zwel UDO but inside k_MultiOscil. Can you think of a way?
Q: is ringmod functional in this sterosetting?


RE UDO k_Zwel
- one per voice
- udo Zwel (= for each note give an extra accent (positive or negative) to achieve fine modulation in the composite sound)
using adapted code from The Csound Book page 179

RE UDO Tremolo
- one per voice
- setksmps 1 to be able to set a shorter port time to filter sharp edges of square and saw

RE UDO Vibrato
- has standard LFO types, but also can add some jitter. Vibrato is global for all voices.


RE Envelope
- i have choosen for transeg, because i think it approaches better the feeling of the Commodore 64 envelope
- curve of decay and release can be varied between convex and concave

RE Ringmodulator
- = responsable for mixing the 3 oscilators to the output
- added info on which RM is influencing which
- added extra variable aringx, for later use in stereo/mono setting

RE stereo/mono
- conditions to check if ringmodulated or not, and if stereo or not.
- added coarse tuning that effects tuning of all oscillators