Name b64Xtended _v3.0
Created At 2018-12-27 4:22pm
Submitted By Menno0
Type blue.orchestra.BlueSynthBuilder

b64Xtended version 3.0

score example: i5 0 2 100 1
where P4 = frequency in Hertz. Pitch-class units can be used if pitch < 15.
and P5 = amplitude

This instrument is inspired by the SID chip of the Commodore 64 and the b64 instrument by Steven Yi.
The instrument has some significant changes compared to version 2.2.
Some presets are added.

A nice feature is that for every one of the 3 oscillators a "swell" is implemented. That means that, within a tone of one oscillator, an extra amount - positive or negative - of amplitude ( or swell ) can be given. Thus the 3 oscillators together can be fine modulated by different subtle peaks or falls in amplitude within the note, making it more lively and expressive.

Another feature is the stereo/mono switch: in stereo the 3 oscillators are divided over 2 channels. The Base Frequency (as set with p4) is in the middle of the stereo image. The other 2 timbres are placed left and right.
In mono mode you can treat the sounds of the 3 oscillators more as one sound with a certain timbre. You can use the Panning knob to set this mono sound in the stereo image.
It is possible to switch to and from stereo while the note is playing.

version 3.0, December 2018:
- the Arpeggio section has been extended to 3 separate subsections, allowing for complex Arpeggios.
- revamped GUI to modern layout and colours
- replaced Amplitude Envelope with a highly configurable envelope, with a switch for linear or exponential.

version 2.2:

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


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