Saturday, 26 November 2016
Polyfusion - Sound A Round
Thursday, 17 November 2016
LED blink Program using interrupts
* This is a interrupt version of the classic blink LED sketch
*/
// pins
const int led_pin = PB5; // PB5 is the same as pin 13
void setup() {
// set LED pin to be a output
DDRB |=(1<< led_pin);// using port B
}
void loop() {
PORTB ^= (1<< led_pin);
delay(200); // turns LED on/off
}
Port registers allow for lower-level and faster manipulation of the i/o pins of the microcontroller on an Arduino board. The chips used on the Arduino board (the ATmega8 and ATmega168) have three ports:
- B (digital pin 8 to 13)
- C (analog input pins)
- D (digital pins 0 to 7)
Each port is controlled by three registers, which are also defined variables in the arduino language.
Tuesday, 15 November 2016
Arduino Binary Counters & MIDI - Super basic program
MIDI commands are further broken down by the following system:
The
first half of the MIDI command byte (the three bits following the MSB)
sets the type of command. More info about the meaning on each of these
commands is here.
10000000 = note off
10010000 = note on
10100000 = aftertouch
10110000 = continuous controller
11000000 = patch change
11010000 = channel pressure
11100000 = pitch bend
11110000 = non-musical commands
The last half of the command byte sets the MIDI channel. All the bytes listed above would be in channel 0, command bytes ending in 0001 would be for MIDI channel 1, and so on.
All MIDI messages start with a command byte, some messages contain one data byte, others contain two or more (see image above). For example, a note on command byte is followed by two data bytes: note and velocity.
int pin2=2;
int pin3=3;
int pin4=4;
int pin5=5;
void setup()
{
// commands
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
}
void loop()
{
// I want to step through each number from zero to 15
// then I want to repeat
digitalWrite(pin2, HIGH);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, HIGH);
}
int pin2=2;
int pin3=3;
int pin4=4;
int pin5=5;
int waitTime=100;
void setup()
{
// commands
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
}
void loop()
{
// I want to step through each number from zero to 15
// then I want to repeat
//0
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
digitalWrite(pin5, LOW);
delay(waitTime);
//1
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
digitalWrite(pin5, HIGH);
delay(waitTime);
//2
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
digitalWrite(pin5, LOW);
delay(waitTime);
//3
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, HIGH);
delay(waitTime);
//4
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
digitalWrite(pin5, LOW);
delay(waitTime);
//5
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
digitalWrite(pin5, HIGH);
delay(waitTime);
//6
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, LOW);
delay(waitTime);
//7
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, HIGH);
delay(waitTime);
//8
digitalWrite(pin2, HIGH);
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
digitalWrite(pin5, LOW);
delay(waitTime);
//9
digitalWrite(pin2, HIGH);
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
digitalWrite(pin5, HIGH);
delay(waitTime);
//10
digitalWrite(pin2, HIGH);
digitalWrite(pin3, LOW);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, LOW);
delay(waitTime);
//11
digitalWrite(pin2, HIGH);
digitalWrite(pin3, LOW);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, HIGH);
delay(waitTime);
//12
digitalWrite(pin2, HIGH);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
digitalWrite(pin5, LOW);
delay(waitTime);
//13
digitalWrite(pin2, HIGH);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
digitalWrite(pin5, HIGH);
delay(waitTime);
//14
digitalWrite(pin2, HIGH);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, LOW);
delay(waitTime);
//15
digitalWrite(pin2, HIGH);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, HIGH);
digitalWrite(pin5, HIGH);
delay(waitTime);
}
Monday, 14 November 2016
3trins to banana breakout box
The 3trins mini patchbay is wonderful but at times difficult to see (esp in low light).
And I'm a big fan of bananas. .. they are stackable and fast.
My initial attempts were to build a permanent panel.
Soon ditched this in favour of one that I can plug in and remove when I like.
I'm using mini bananas:
Links:
https://www.muffwiggler.com/forum/viewtopic.php?p=2387506#2387506
Sunday, 13 November 2016
Step Edit - Electribe 2 (blue/grey)
Friday, 4 November 2016
TM1637 4-digit 7-segment display
// Include the library #include <TM1637Display.h>
// include the grove.seeedstudio library #include <TM1637.h> // Define the connections pins
#define CLK 2
#define DIO 3 TM1637Display(). TM1637 tm(2, 3);
TM1637Display display = TM1637Display(CLK, DIO);OR TM1637 tm(2, 3);
The code depends on the type of display you have.Before you buy it, research what library it needs. The main functions include:
- setSegments() – Set the raw value of the segments of each digit
- showNumberDec() – Display a decimal number
- showNumberDecEx() – Display a decimal number with decimal points or colon
- setBrightness() – Set the brightness of the display
- clear() – Clear the display
Here is a simple display sketch.It's actually the basic example in the ARDUINO IDE. These TM1637 Driver examples work well.They all use the#include <TM1637.h>
//************************** code 1This refers to displays that use the #include <TM1637.h> libraryTo set the brightness, pass in a value between 0-7 into tm.setBrightness(); tm.display(); will display a character on the display. You are restricted to just 4 characters. Simply type in any alpha-numeric characters you wish.
//*******************#include <TM1637.h>
// Instantiation and pins configurations
// Pin 3 - > DIO
// Pin 2 - > CLK
TM1637 tm(2, 3);
void setup()
{
tm.begin();
tm.setBrightness(4);
}
void loop()
{
// Display Integers:
tm.display(1234);
delay(1000);
// Display float:
tm.display(29.65);
delay(1000);
// Display String:
tm.display("PLAY");
delay(1000);
tm.display("STOP");
delay(1000);
}
//******************************************************* Monday, 31 October 2016
3trinsRGB+1c to LZX
They plug in here:
Links:
Muffs - cortex with 3ins
LZX
Muffs - discrete RGB output signals
......to be continued.
Kaitlyn Aurelia Smith - coming to Australia
I believe Kaitlyn is bringing a Buchla 100.
Links
Kaityn A Smith's website
Sugarmountain festival
Mona Festival
Kaitlyn A Smith's Bandcamp
RedBull interview
Pitchfork interview
Madrona Interview
Thursday, 27 October 2016
NLC BaDum TISS - drum module
it mixes the sound from a VCO & noise circuit into a ring modulator.
Sneaky Nuts??? s this a reference to Angry Boys?
Anyway, where did the name Ba Dum Tiss originate ?
The Urban Dictionary defines badum tish as
"an onomatopeia for a drum technique normally accompanying the conclusion of a cheesy joke or a comedy pratfall (where someone is made to look like an idiot by their own devising - such as falling on a banana skin they earlier discarded). It consists of two fast rimshots and a splash cymbal - producing the sound "badum tish".
Firstly, get those pesky SMD ICs out of the way:
Rest of SMD next.
one BC847 NPN (marked by the "n") & one BC 857 PNP (identified on the PCB by the "p")
Now for the through hole stuff.
I had to drill an extra hole in the panel to accommodate the LED
Sounds Great!
Thanks Andrew.
Kinkakuji (Golden Pavilion) - Kyoto, Japan
The golden pavillion is so beautiful. It's part of a larger complex of buildings set in the most
Japanese of Japanese gardens.
The site dates from 1397. It started off a a villa but was converted to the Kinkaku-ji complex
by the Shogun Ashikaga Yoshimitsu.
The Pavillion is very important to the Japanese. It is on the world heritage list and is
designated as a National Special Historic Site.
During the Onin war (1467–1477), all of the buildings in the complex aside from the pavilion were burned down. This golden pavillion remained in tact for nearly 500 years until 1950 when it was burned down by a 22-year-old novice monk,
Hayashi Yoken, who then attempted suicide on the Daimon-ji hill behind the building.
He survived and was jailed. He died of tuberculosis in 1955.
The temple has been rebuilt but one can only feel sadness for this lost of a national treasure and what pain it must have caused the Japanese People.
Tuesday, 25 October 2016
NLC Doof Drum Module - Build notes
It's Eurorack format.
This is a very different circuit from the 808 & 909 clones doing the rounds today.
Can't believe I would ever tire of those sounds but its great to have something different.
This circuit uses a trimmed down NLC dual OTA VCO and the VCA from the NLC matrix mixer
(a future build).
I built the OTA VCO over a year ago.
http://djjondent.blogspot.com.au/2015/03/nonlinear-circuits-dual-ota-vco-build.html
That VCO used a OTA or Operational transconductance amplifier.
The topology is common enough in many drum synths: Trigger circuit, envelope follower, VCO, VCA.
Get started with some tanning. It's the Aussie way.
Firstly the virgin PCBs & faceplate:
First get those !Cs in.
Now the rest of the SMDs
I'm using a 10K on the RL ... LED resistor
Stuff in the through hole stuff:
pOTS & jacks next.
Now the LED. Get the orientation right. The anode is the long lead.
initial tests:
Initially, with a headphone, I found the volume very low and the LED didn't light up.
The LED resistor I used was a 10K. This is for super bright LEDs.
I swapped it for a 1K and noticed a sudden increase in volume & that the LED lit up.
I decided to do another swap. This time for a 510 R.
Much much better !!!
Very loud and the LED lights up nicely thanks.
:-)
-------------------------------
Andrew F suggested that in order to get a bigger output, I change the 220k next to the TL072
He has taken it to 4M7 ...which is way OTT, ....bounces off the power rails.
Maybe a more sensible range would be between 1M5 & 2M2.
For the moment I'm really happy with the standard Doof module.
Other mods include
1. CV control of decay instead of freq... see build & BOM pdf
http://www.sdiy.org/pinky/
2. replacing the 10nF capacitor on the input with a link to
Links:
1. NLC Build Notes
2. Muffs : adjusting output level of the Doof
3. NLC blog spot
Friday, 21 October 2016
Katzenklavier

Many credit Athanasius Kircher with the original design of this instrument. He was a German Jesuit scholar.
"The musician selected cats whose natural voices were at different pitches and arranged them in cages side by side, so that when a key on the piano was depressed, a mechanism drove a spike in the appropriate cat’s tail. The result was a melody of meows".
Synth lovers today respect all animals, especially cats.
This is what Spike has to say about all this:
Thursday, 20 October 2016
All about JFETS - matching for synthesizers
JFETs can be either N or P channel.
The channel conducts current moving from the source to the drain.
A voltage at the gate increases the channel resistance and reduces the drain source current.
Therefore, the FET can be used as an amplifier or a switch.
This is an excellent device.....Peak Atlas DCA Pro.
The bits about JFETS are around 7mins & the PC applications are at 14:20.
The problem with JFETs is that it is much harder to make consistent JFETs than to make consistent bipolar devices. Therefore matching them is important.
These are screen shots taken of the readouts from my Atlas Pro of one of the JFETS.
Try to match the curves for each JFET along with as many other specs as possible.

measuring VGSoff, Idss, VGSon in that order.
These were the results:
1. Vsg (off) = -2.97V
Idss = 0.51v
Vsg (on) = -2.04V
2. Vsg (off) = -3.14V
Idss = 0.50V
Vsg (on) = -2.04V
3. Vsg (off) = -2.98V
Idss = 0.51v
Vsg (on) = -2.05V
4. Vsg (off) = -2.71V
Idss = 0.54v
Vsg (on) = -1.80V
5. Vsg (off) = -2.99V
Idss = 0.51v
Vsg (on) = -2.06V
6. Vsg (off) = -2.68V
Idss = 0.55v
Vsg (on) = -1.77
7. Vsg (off) = -3.60
Idss = 0.46v
Vsg (on) = -2.63
8. Vsg (off) = -2.90
Idss = 0.53v
Vsg (on) = -1.98
9. Vsg (off) = -2.66
Idss = 0.55v
Vsg (on) = -1.76
10. Vsg (off) = -2.89
Idss = 0.53v
Vsg (on) = -1.97V
11. Vsg (off) = -3.17
Idss = 0.50v
Vsg (on) = -2.24
12. Vsg (off) = -3.15
Idss = 0.50v
Vsg (on) = -2.22V
A huge variation in results from just twelve J112s
I'll go with 1 & 3
1. Vsg (off) = -2.97V
Idss = 0.51v
Vsg (on) = -2.04V
3. Vsg (off) = -2.98V
Idss = 0.51v
Vsg (on) = -2.05V
Links:
1. Stompville
2. Learning about electronics
3. Geofex
4. Edn.com
















































