Friday 28 June 2019

Waveshapers

This is a bit of basic Synthesis... I'm writing this for a friend who is starting his journey.
All about wavefolders, wave multipliers, transfer functions etc etc.
You will see wave shapers in a lot of "west Coast" synths. Serge & Don Buchla used them extensively.

'''
The Serge TWS and WM are classic waveshaping modules.

Wave shaping is one of the fundamental parts of oscillator designs as well as being one way to achieve distortion and design new waveforms from existing waveforms. When building a oscillator core, often waveshapers are used to derive additional waveforms from a single saw or triangle core.
+ Oscillator cores & Exponential Converters

The timbre circuit from the Buchla 259 is another example of the early use of waveshapers.

I understand that Don's Harmonic Oscillator from the Buchla 100 series used waveshapers to add harmonics to the core oscillator. 
 There are lots of modern manufacturers of waveshaping modules in many formats.

Basically waveshapers map the input and the output of the waveform. They then apply a mathematical equation to that waveform (commonly known as the “shaping or transfer function”) that alters it's final shape.

If the original input signal is called x and the new output signal  is called y.
This function is called the transfer function.
y = f(x)

This is a really simple function but the basic idea is the same no matter how complicated things get.
 
The transfer function can be done either the old fashioned analog way with op-amps, diodes, etc or digitally where "look up tables" are implemented.

Don Buchla used both digital & analog waveshapers.
His Touche from 1978 had digital waveshaping. It had 16 digital oscillators that could be combined into eight voices.

Grant Richter used waveshapers in his Anti-osc & the Mega wave
The Malekko/Wiard Anti-osc is a triangle-core oscillator with voltage-controllable waveshaping.


The Megawave can be used as an audio wave shaper

To be continued ............

Canberra - NGA - Monet exhibition

If you have a chance to visit Canberra over the next few weeks, don't miss the Monet exhibition
https://nga.gov.au/impressionsunrise/

In addition to seeing this master of impressionism, there are also lots of Turners and the odd Whistler.
Well worth it.

Monet's "Sunrise" is there.
This is the painting that is credited with inspiring the name of the Impressionist movement

I've only ever seen this in text books. I don't think it leaves France very often.

There are lots of his water lilies paintings


and the Japanese bridge from his garden in Giverney



For me, the highlight were the Turners.
I love that guy !






Tuesday 18 June 2019

Build a Better Music Synthesizer - Thomas Henry

A plug for great book.
If you can find this book, it's well worth it.
I'm lucky to find a first edition is mint condition.





Links
+ Wiki

Oscillator Cores & Exponential Converters

A bit about Oscillator Cores.... they are one of the building blocks of VCOs

VCOs have 3 main parts :
1.The core/cores
2.The waveshapers
3.The exponential converter

This page is mostly about the core (though I'll touch briefly on the other two).
When I first started out, I though that the waveforms in most analog modular VCOs were produced independently. This however is very far from the truth.


Most VCOs derive their multiple waveforms from just 1 main waveform known as the oscillator core.
The other waveforms such as sine and square are usually produced using waveshapers.
Whenever you buy a VCO, most manufacturers will describe their oscillator as having one core or another.

There are 2 main waveforms used: triangle and sawtooth.
They are produced differently and both have their strengths and weaknesses.

They  both use what are called integrating capacitors.

The simpliest waveform core is the sawtooth.... and thus seems to be more common.
It works on the principle that capacitors store charge. They fill up with charge until a reset voltage is reached. The rate at which the capacitor charges up is determined by the input voltage. (ie it's voltage controlled) ... this rate of charge/discharge is the frequency of the oscillator.

The triangle waveform is a bit more difficult to make as a core.
Instead of the charging/discharging of the capacitor, we have a change in direction of the current.

Both cores have a timing mechanism that resets the waveform back to its starting point by discharging the capacitor. (Then the cycle starts again).

The timing mechanism is usually a comparator. When the waveform exceeds a reference voltage the comparator triggers and the waveform resets.
The retrigger mechanism can be something like a transistor. If it is a digital timer then the oscillator is what is referred to as a digitally controlled oscillator... DCO,  instead of a VCO (Voltage controlled oscillator)

VCOs that have two cores are very rare. The most obvious is that of the ARP 2500

The 1004 has both triangle and sawtooth cores.
Both cores use a single reset mechanism.

The later ARP 2600 used 4027 & 4027-1 VCO submodules. These had a 10 Vpp sawtooth output.

The Buchla 158 Dual Sine-Sawtooth Generator  and the 144 Dual Square Wave Generator both use a sawtooth core. 
The later Buchla 258 was a triangle core dual oscillator. The 259 is also a triangle as far as I know.
The modern Buchla 261e breaks the mold ...it has a digital sine wave core. ( but the timbre section is analog).
The Roland SH-101, Oberheim Ob-Xa and Moog Memorymoog all use a Curtis CEM3340 chip.
This is a triangular core.
The Yamaha CS series VCOs use a sawtooth core oscillator.
The very early descrete component (no ICs) RA Minimoog VCOs (of which I understand only 300 exist)
used a sawtooth core.


-----------------
The exponential converter converts a linear control voltage into a exponential current.
Why is this needed at all ??? 
It's needed because most human senses (including hearing) are logarithmic

The exponential converter helps the oscillator core create a waveform that has a frequency logarithmically proportional to the input current. These converters are very very temperature sensitive.
This is a picture of the exponential converters of the 1004 VCO. It's part of an ARP 2500.
The 4001was an encapsulated NPN based current generator. 
The 4002 was PNP based.
The circuit boards were enclosed inside a plastic case which was filled with an epoxy potting compound.
This case helped stablise the VCO tracking of the 2500 but also made any future repairs very difficult.

The most basic type of exponential converter uses a bipolar junction transistor. (BJT).
and maybe some voltage dividers and a tempco.
The NPN type seems most popular. (though you can use a PNP).
For a single transistor, there is a  exponential relationship between the Vbe and Ic
(voltage between the base/emitter & collector current).
Here is the equation:
 
 This all looks pretty straightforward except for the problem of temperature.
The collector leakage current is influenced by temperature so in order to maintain accuracy we must keep the transistor at a constant temperature.

If your VCO uses a 1V/oct tuning, then any 1V increase, must double the VCO's frequency.

Of course not all synths use logarithmic voltage control.
Korg and Yamaha use linear voltage control (often called Hz/volt).
Here, the frequency is directly proportional to the input voltage and there is less of a need for exponential converters.

Links
+ A bit about Transistors
+ Waveshapers

Saturday 15 June 2019

Wiard Joystick - Model GR-1209B

Some pics of the Frac format Wiard Joystick GR 1209B

 iT'S A very simple module.
The joystick features a two-axis CV output as well as a pushbutton that triggers a gate output. The joystick does not employ return springs, meaning it stays where you place it until you move it again.


Should be easy to build.
The green wire in the photo connects to GND. The red wire connects to +12V

The joysticks are easy to find on ebay,

For the record, Grant produced a few variations of this joystick over the years.
The old 300 series had the 311 with the analog voltmeter.


Then came the beautiful 311C
The two JAGs joined the 2 joysticks

In Frac this came out: The GR 1211




And there was also the joyrider which combined a borg filter with the joystick


The JAGs found their way into the eurorack format, but sadly not the joysticks
Still, there are plenty of other eurorack joystick makers
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Wiard Index
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

250e - my notes

I'm revisiting the Buchla 200e and slowly going through all the old manuals notes etc.
So this is a running thread which I'll update as I discover new things about the module.

To start, the 250e is what's known as a DARF ... dual arbitary function generator.
What's a Function Generator?
In the early days a FG (function generator) was a piece of test equipment used to generate different types of waveforms.
It had nothing to do with modular synthesizers in those days

Kenwood FG273 from the 1990s

Don chose to add the word "Arbitary" ... meaning based on random choice or personal whim.
I think Don's choice of words gives an insight into the character of the module.

The 250e is related to the earlier Buchla 248 MARF ... see my notes on this.

The 250e DAFG a 16 stage FG (function generator).
It's divided into these sections:
1. stage array
2. Stage loop & editing
3. Mode
4. Time
5. Voltage
6. Pulse output
7. Stage addressing
8. External inputs

1 Stage Array

There are two circular rows . Each row has 16 pots.
Each pot pair represents a stage.
Each stage has 2 control voltages.
Time values are often adjusted with the parallel array of smaller potentiometers. These can serve as a third control voltage.
 Both control voltages and times can be interpolated, quantized, or replaced with externally applied voltages for selected stages.

Just turn the knob associated with each stage to the desired value to adjust voltages & times.
To change ranges for either, you must enter the Edit mode, (depress the Edit button in the stage loop & editing section). Turn the center knob to the desired stage, chose the desired time range (one of three) and the voltage range (one of six). Also select the voltage you’d like to operate on (one or two).

2. Stage loop & editing

There are 2 LED displays, 3 buttons and one knob.
To adjust and set voltages & voltage ranges you must enter the Edit mode by depressing the Edit button.
Turn the center knob to the desired stage, chose the desired time range (one of three) and the voltage range (one of six). Also select the voltage you’d like to operate on (one or two).

Each of the two voltages, as well as the time can be quantized
Voltages are adjusted in .1 volt increments.
Time is adjusted in binary rhythmic increments of .01, .02, .04, .08, .16, .32, .64, 1.28, 2.56, 5.12.

There is a quick way to program identical settings ... eg to clear everything or to set each stage to the same voltage or time.
While in the edit mode, select the value desired for a particular switch, and while still depressing the switch, rotate the edit select through all the stages you’d like programmed to this switch value.

Notice, there is also a Jump & Loop facility.
Here we can set subsequent stages.
While in the edit mode, use the center knob to select a loop’s last stage; then hit “set” and then
use the center knob to select the loop’s first stage. You will now see that the "Jump to" LED will be lit.
Hit “set” again to activate the loop. 
Now using the centre knob dial in the desired loop count.
A value of A = Always.
You will now see that the "loop count" LED will be lit.
Hit “set” to return to the normal edit mode. 
Loop counters  associated with each stage can be nested to any level

Remote Enable
When active, this LED puts the 250e into contact with the preset manager, allowing access to stored preset values.

3. Mode

This is where you set up your mode for stage selection.
There are 5 modes: Pulse, Advance, Sustain, Enable, Stop.

Pulse Mode – This is the default mode for a stage and is indicated when none of the mode LED’s are on. A pulse applied to the Start / Adv input or a press of the switch will advance to the next stage.

Advance Mode – This mode is indicated when the “adv” LED is on. The stage will only advance when the time value runs out. You can consider this to be your "conventional sequencer mode" if you set your time base knobs (the small knobs in your array section) to zero. adjusting the small knobs set the time spent on each stage.

Sustain Mode – This mode is indicated when the “sust” LED is on. The stage will advance when the time value runs out. However, if a gate is applied to the Start / Adv input the stage will pause (sustain). When the gate goes low the stage will continue to run based on its time value.

Enable Mode – This is the opposite of Sustain Mode. This mode is indicated when the “enbl” LED is on. The stage will pause until a gate is applied to the Start / Adv input. At this point the stage will run based on its time value until the gate goes low again.

Stop Mode – This mode is indicated when the “stop” LED is on. This will cause the sequence to stop on the selected stage. A pulse to the Start / Adv input or a press of the button will continue the sequence. Pressing the “stop” button or applying a pulse to the “stop” input will also cause a stage to enter this mode


4. Time

To change the time range of a stage.
1. press the edit button
2. turn the centre knob to select the stage you wish to edit.
3. Press the time range button to the desired value.
Note that when cycling through your time ranges there is a blank option when no LEDs are lit. This is
the option you would use to sync to a midi clock.

The blue time CV out banana gives us access to the voltages from the small time knobs of the Stage Array Section.

As discussed above, the clock of the 250e can be synchronized to MIDI clock via a 225e (using the internal bus). This can be selected by setting the time range to the fourth (blank) value.
The MIDI sync can be set on a stage by stage basis.
To set an individual stage to slave to the MIDI clock remember to assign the time range of the stage to a blank value.

When using MIDI clock, the time mult knob (in the Time section) or external voltage wont affect clock divisions but will effect the interpolation time.

The clock division can now be set via the small time knob (in the 1.stage array section ) to one of seven values:
1) thirty-second note 5) eighth note 2) sixteenth note triplet 6) quarter note triplet 3) sixteenth note 7) quarter note 4) eighth note triplet

5. Voltage

There are 2 CV voltage outputs.
The grey button to the right of the two voltage LEDs selects which CV voltage the large outer knobs
(in the CV array section) set.
You don't have to press the edit button to jump between voltages 1 and 2.

You need to hit the edit button to change voltage ranges.

6. Pulse output

There are two programmable pulse outputs for each stage.
All stages produce pulses at the “all” output, while pulses 1 and 2 are selected by pressing the associated grey buttons for each stage while in the edit mode.
Use the central knob to select the stage as usual.
When you press RUN, the illuminated LED’s indicate the active pulses.

7. Stage addressing

Here we have another way to select the stage (see 3.Mode)
These third schemes for stage selection are presented in the lower right section.
We have 3 modes: Blank, Strobed & Continuous.
Press the grey button to choose between the three.

When in Blank Mode: No lit LEDS.

When in Continuous Mode, the stage number is determined by an applied control voltage in the black
banana jack marked CV in. A full scale excursion of 16 stages corresponds to 10 volts applied control voltage.

When in Strobed Mode, the control is sampled, resulting in changes only when a pulse is applied at the orange banana.

The offset control knob establishes the stage number for an input control voltage of zero.
Sensitivity to applied control voltages is 0.625v per stage with zero volts being stage 1 and 10V being stage 16.

8. External inputs

The controls for this rest in the lower left section. 
Voltages and times may be derived from external control voltage inputs on a stage by stage basis.
There are 4 inputs: A, B, C, D.
Make sure you are in edit mode. Now select the desired stage number and switch on the time and/or voltage LED’s with the associated switches. 
You can use a external CV for each of the large CV knobs or the smaller time knobs (in the CV array section). Also the external voltage option can be assigned to CV 1 &/or CV2 independently with different values for each. Be sure to select the desired voltage (1 or 2).
The stage pots now change function, choosing which of four inputs to select.





Notice the letters (ABCD) around both the large CV knob and small time knob.
Use these when assigning which external input will effect the stage chosen.
Only the 12"oclock knobs have these letters marked.... doesn't mean that you can't do the same for the other stages. For the rest of the stages just pretend the letters are there.


A global control (“fix”) disables external inputs, storing current values as if they were knob settings.

244r

Some pics of the 244r,
These aren't official build notes... more my personal pics to help trouble shoot my build.

There ARE two microcontrollers.
It doesn't look like there are any programming headers on the PCB so I may have to program these using
a breadboard.
 sOME PICS  of the naked PCBs.






VCAs
The V2164 is a quad VCA. You can also get these from thonk
http://coolaudio.com/docs/COOLAUDIO_V2164MD_DATASHEET.pdf






The 700-MAX5250BCPP is a
Digital to Analog Converters - DAC 10-Bit 4Ch Precision DAC


The 556-ATTINY84A-PU is a
Amtel 8-bit Microcontroller - MCU 20MHz Ind. Grade 
There are 14 pins.


The 556-ATTINY88-PU is a 
8-bit Microcontrollers - MCU 8KB In-system Flash 12MHz 1.8V-5.5V 
It is 28 pin DIP that can be plugged into a breadboard
 

Each have their own firmware
DOWNLOADS:
ATTINY88 FIRMWARE REV1.0
ATTINY84 FIRMWARE REV1.1 





How should i program these chips?
Could use a AVR programmer or arduino ??
I have an Olimex so might try that first
https://www.olimex.com/Products/AVR/Programmers/AVR-ISP-MK2/open-source-hardware 
The Olimex has a 6 pin & 10 pin ribbon cable

The 10-pin cable fits only the ICSP10 connector.
(In Circuit Serial Programmer)


 The Olimex AVR-ISP-MK2 doesn't provide 6-pin ICSP connector.
The 6-pin cable is for PDI and TPI connectors.
I'll be flashing the chip via the ICSP 10 connector. 
Pin 1 can be identified with an arrow and the red stripe 


So, Depending on the connectors available on your target board you might need an adapter called AVR-ICSP (these connectors are pretty common on mutable instrument boards, but this Buchla format module doesnt have any header ... So I'll need to program using a breadboard.

 This is the ATtiny84 being flashed.
Look for the green LED (instead of red). Green = OK.


And the ATtiny88

Recommended operating systems:- Windows 7 or Windows 8 or Windows 10- any frequently updated Linux distribution- any Mac OS/OSX 
Recommended software tools:- Atmel Studio 6 or Atmel Studio 7- AVRDUDE 6.0.1 or newer- Arduino IDE 

I decided to use Atmel studio 7.

Long installation... about 20 mins.
But programming seems very smooth.

 Tools ----> Device Programming ----->

Choose the tool (AVRISP MkII), then device (eg ATtiny88) .
Hit "apply".


Then go to "Memories"
 You pick the hex file to upload from the Flash (8Kb) section ... dropdown box.


 Hit the "program" button to upload the hex file.

 



Links
+ About Microcontrollers and synths
+ Modularsynthesis.com
+ TheElectricMusicStore
+ BOM

===============================================
Buchla index
==============================