Analog Monster's Synth Blog
Sunday, 6 October 2013
Yamaha RM1X OS V1.13
MY GOOGLE DRIVE - RM1X OS V1.13
I bought the above sequencer about 6 months ago for controlling my various external synths - I had seen some great videos of people using it for jamming, and the depth of the real time control and its ease of use really appealed to me. It felt like it could be the single, central master device that would allow me to banish the computer to recording only. Oh how wrong I was.
Ok, that isn't strictly true. It just didn't do what I expected it to do, and the cuplrit was a buggy operating system. It worked perfectly provided I was only using the internal sounds, but I wasn't interested in the internal sounds, I just wanted it for MIDI generation. The internal sounds are to my tastes dated and thin - I've never been much of a fan of Yamaha's AWM engines. The MIDI bug is that it sends a program change message at the beginning of the phrase each time it loops, even if you try to filter it out within the RM1X.
It's a well known bug that people have been complaining about since it launched. Yamaha offered an OS replacement, where you paid for a new chip and provided you sent the old one back you got a refund. Roll on nearly 15 years and Yamaha service centres around the world have different responses - many can't even supply them any more. I was quoted £65 plus shipping, with no refund. If you ask me, that's terrible service for supplying a feature that should be available straight out of the box.
I gave up hope of trying to fix it and lent it to a friend - I didn't want it's sounds, I have plenty of instruments that sound much better. Meanwhile I would hunt around for a copy of the OS. Long story short, there was no .bin file I could find to burn myself, and the only Ebay seller I could find wouldn't ship outside the US.
Through the RM1X yahoo group a great guy called Ivan Schwartz offered to send me his chip so I could copy it. And so we now have an image of the final version OS V1.13 available. If you want to burn your own copy, you will need an EPROM programmer capable of programming 27C160 EPROMs. These are 16 bit chips and many of the cheaper programmers are not capable.
I am able to program them, so contact me if you would like me to burn you one - email me at analogmonster at live dot com or leave a comment and I will get back to you. I cant give you an exact price as it depends how cheaply I got them myself, but I am certainly going to be cheaper than getting them from Yamaha - I would expect around £5 plus shipping.
If you want to burn them yourself I have made the file available at my google drive, along with a checksum.
Tuesday, 1 October 2013
Custom Kawai R50/100 Roms Are A No Go
Ok, it's official. I give up. No matter how hard I try I cannot get custom roms working for the Kawai R50/R100 drum machines, it is beyond my capabilities. I have many other projects on the go and I cannot commit the time needed to figure it out. I might come back to it in the future but don't count on it. Maybe someone else will figure it out.
I was using Awave Studio, which is a great file format converter with a huge file type support list. It lists .kawai12 as experimental support. It opens the kawai EPROM bin files directly, and you can use the built in player to confirm this. I set Sony Soundforge as the external audio editor and it opens in Soundforge.
Now as a test I didn't edit it at all, and used this original data to make a new .kawai12 file using Awave. This burns to an EPROM which sounds identical to my original ROM and when repitching doesn't suffer the digital distortion I have been suffering from with my custom files. I take this to mean Awave does the conversion correctly, provided the source sample data is correct.
So my attempts to do custom roms start with opening the original data in Soundforge and placing a marker at the zero crossings closest to the beginning of each hit. I also have each individual new hit open in their own window. These samples have been pitch shifted up 7 semitones, normalized, trimmed to the length of the hit it is replacing and converted into the same format as the original data - 16 bit mono 48k. I then select all of the new hit and copy it, open the original waveform and highlight the hit it will be replacing, and overwrite (not paste). Rinse, wash and repeat.
Close all the individual hit windows so that the only window open is your new sample data. Close Soundforge and this data will open up in Awave. Save as .kawai12 and burn your rom. You get something that kind of works, but is not right. If you figure it out, please let me know.
I was using Awave Studio, which is a great file format converter with a huge file type support list. It lists .kawai12 as experimental support. It opens the kawai EPROM bin files directly, and you can use the built in player to confirm this. I set Sony Soundforge as the external audio editor and it opens in Soundforge.
Now as a test I didn't edit it at all, and used this original data to make a new .kawai12 file using Awave. This burns to an EPROM which sounds identical to my original ROM and when repitching doesn't suffer the digital distortion I have been suffering from with my custom files. I take this to mean Awave does the conversion correctly, provided the source sample data is correct.
So my attempts to do custom roms start with opening the original data in Soundforge and placing a marker at the zero crossings closest to the beginning of each hit. I also have each individual new hit open in their own window. These samples have been pitch shifted up 7 semitones, normalized, trimmed to the length of the hit it is replacing and converted into the same format as the original data - 16 bit mono 48k. I then select all of the new hit and copy it, open the original waveform and highlight the hit it will be replacing, and overwrite (not paste). Rinse, wash and repeat.
Close all the individual hit windows so that the only window open is your new sample data. Close Soundforge and this data will open up in Awave. Save as .kawai12 and burn your rom. You get something that kind of works, but is not right. If you figure it out, please let me know.
Wednesday, 11 September 2013
Kawai ROM switch update
So this custom ROMs business is pretty slow progress I am afraid, but be patient I am working on it as fast as I can but this is a spare time project and I haven't much spare time right now. My first 808/909 kit worked but was had so much wrong with it that it was faster to start again from scratch. So I moved on to a sequential circuits pack and I am much happier with the results.
I am using soundforge to do all my editing. I take the original ROM sample, zoom in as far as you can go and place markers at the zero crossings closest to the beginning of each sound. Each new sound has to be the same length or less than the original sound. The samples need to be conditioned before you put them in - they need to be of a similar output level, monoized, sample rate/bit depth converted, pitched up, normalised then overwritten in place of the original sample before being converted back into a BIN file for burning.
Why pitched up? well the R-50 and R-100 both allow you to repitch the sample within the drum machine, but the sample is stored on the EPROM at its highest pitch/fastest rate. So 0/midpoint is actually the sample pitched down by half an octave. And so the Kawai specs of 12 bit/32K sample rate is actually a bit of a lie, it would only be 32K when all samples were at their highest pitch. But it is probably this sample rate reduction that gives the Kawai R5/100 so much punch! It is also this part that is currently knocking me down.
You see when I repitch things they sound wrong, there is a metallic sound which I am putting down to aliasing. Now when I am doing my sample rate conversion within soundforge I apply an anti-aliasing filter, but this is for 32K. What I THINK I need to do is to resample it at a (yet to be determined but presumably 16K if the tuning range is an octave) lower rate first, to filter out the offending frequencies that cause the aliasing when the samples are pitched down within the drum machine.
At the moment pitched stuff like kicks and toms sound pretty good while crashes and rides sound awful - I am putting this down to the frequency content. Barely anything can get aliased in the kick drum because the offending frequencies found in the crashes simply aren't there. If the 16K theory doesn't work then I think I can figure it out with FFT or spectrogram of the original samples.
Annoyingly though this is only guess work. I may not figure it out at all, this is all very new to me. It means I am not yet able to offer custom ROMs. If I do crack it then I will charge £25 per custom ROM or £15 if it is one I have already made. I will do some kind of discount if you buy the ROM switch and ROMs together, but I have not yet figured the price out for that yet. If you are interested in buying any of the factory ROMs now, email me at analogmonster at live dot com
I am using soundforge to do all my editing. I take the original ROM sample, zoom in as far as you can go and place markers at the zero crossings closest to the beginning of each sound. Each new sound has to be the same length or less than the original sound. The samples need to be conditioned before you put them in - they need to be of a similar output level, monoized, sample rate/bit depth converted, pitched up, normalised then overwritten in place of the original sample before being converted back into a BIN file for burning.
Why pitched up? well the R-50 and R-100 both allow you to repitch the sample within the drum machine, but the sample is stored on the EPROM at its highest pitch/fastest rate. So 0/midpoint is actually the sample pitched down by half an octave. And so the Kawai specs of 12 bit/32K sample rate is actually a bit of a lie, it would only be 32K when all samples were at their highest pitch. But it is probably this sample rate reduction that gives the Kawai R5/100 so much punch! It is also this part that is currently knocking me down.
You see when I repitch things they sound wrong, there is a metallic sound which I am putting down to aliasing. Now when I am doing my sample rate conversion within soundforge I apply an anti-aliasing filter, but this is for 32K. What I THINK I need to do is to resample it at a (yet to be determined but presumably 16K if the tuning range is an octave) lower rate first, to filter out the offending frequencies that cause the aliasing when the samples are pitched down within the drum machine.
At the moment pitched stuff like kicks and toms sound pretty good while crashes and rides sound awful - I am putting this down to the frequency content. Barely anything can get aliased in the kick drum because the offending frequencies found in the crashes simply aren't there. If the 16K theory doesn't work then I think I can figure it out with FFT or spectrogram of the original samples.
Annoyingly though this is only guess work. I may not figure it out at all, this is all very new to me. It means I am not yet able to offer custom ROMs. If I do crack it then I will charge £25 per custom ROM or £15 if it is one I have already made. I will do some kind of discount if you buy the ROM switch and ROMs together, but I have not yet figured the price out for that yet. If you are interested in buying any of the factory ROMs now, email me at analogmonster at live dot com
Polivoks LFO faulty - reply to Ott Suurtee
My reply to Ott Suurtee's questions about the faults with his Polivoks (see comments) has got so long it deserves it's own post, so here it is.
Right, just to be sure we are working from the same point (I am assuming like me you don't read Russian Cyrillic) the LFO board is Y7, which connects to the main board at X7. From what you are describing the LFO is not oscillating, so the modulation knobs for the VCOs, VCF and VCA will do either nothing or very little - at most it would add a constant voltage to the other CVs (envelopes and knobs). I expect the VCA pot being bumpy will be fixed with a hell of a lot of wiggling to remove the layers of dirt.
It is going to be difficult to exactly pinpoint the problem without me being there, so I am going to try my best to help you understand the circuit so you can figure it out for yourself. I am going to work backwards, telling you what I think isn't causing the problem so you can hopefully figure out what is.
looking at the schematics, the top section is noise generation and sample and hold - A1, A2 and A3 are just conditioning the noise generated by the transistor V1 to be at the correct voltages. When a pulse is sent to the transistor V3 the voltage from A3 is held for the length of the pulse, with A4 being used as a unity gain amplifier to buffer the signal.
The pulse for the V3 transistor comes from the V4 transistor, which is converting the positive portion of the square wave at A5 into 0.2ms pulses. The square wave at A5 is also driving the LED driver transistor V5. The square wave at A5 is passing through the V6 diode to remove the negative portion, with A7 being used as a unity gain amplifier to buffer the signal.
The rest is the section you need to pay attention to, which is much easier now we have reduced the number of parts to look at. What we have here is a comparator based square wave generator. This is an RC (resistor capacitor) circuit - it sounds like you might want to do a little reading on the basics of RC circuits, op amps and comparators.
If you take a look at this square wave generator example perhaps you can see the resemblance to our schematic - C is C7, R1 is R14, R2 is R13 and R is the combination of R15 and our frequency pot. The capacitor charges and discharges through R, creating a triangle wave. The variable value of R (thanks to the pot) dictates the rate of charge/discharge and hence the frequency of the triangle wave. A6 is being used as a unity gain amplifier to buffer the output of the capacitor. A5 looks at the triangle wave and outputs a positive voltage when it is above a certain threshold and a negative voltage when it is below a certain threshold.
My guess is it is probably NOT a component failure, its far more likely to be the connection between boards as this is a vulnerable point. Do all of this without power applied. I would remove the Y7 board and put your multimeter on continuity test. Check that at the X7 socket on the main board, pins 4 and 5 have continuity to the R107 pot. While the board is out, clean the contacts on both Y7 and the main board using isopropyl alcohol. Leave them apart for a few hours to be totally dry. Put board back in and check continuity between the R107 pot and pins 4 and 5 ON THE X7 SOCKET ON THE Y7 BOARD.
Beyond this you are looking at tracing tracks in case any have broken, or replacing components. The point is that without the RC relationship there is nothing to periodically trigger the rest of the circuit. Seeing as we have already checked the connections of the R part, the first one I would replace is C7 - easy enough, find an electrolytic capacitor of the same value. Folowing that I would replace A5, but that is where things might get awkward - how are you going to get a replacement russian part? It is just a single op amp being used as a comparator, so I think a TL071 would be fine but I can't be sure.
When I first got my Polivoks the LFO was working, but only some of the time. The rest of the time it was doing something similar to yours. My board was sorted with a damn good clean, but only after a day or two of head scratching, looking for something to fix that wasn't broken.
Please let me know how the exploring goes, I hope you figure it out. Good luck!
Right, just to be sure we are working from the same point (I am assuming like me you don't read Russian Cyrillic) the LFO board is Y7, which connects to the main board at X7. From what you are describing the LFO is not oscillating, so the modulation knobs for the VCOs, VCF and VCA will do either nothing or very little - at most it would add a constant voltage to the other CVs (envelopes and knobs). I expect the VCA pot being bumpy will be fixed with a hell of a lot of wiggling to remove the layers of dirt.
It is going to be difficult to exactly pinpoint the problem without me being there, so I am going to try my best to help you understand the circuit so you can figure it out for yourself. I am going to work backwards, telling you what I think isn't causing the problem so you can hopefully figure out what is.
looking at the schematics, the top section is noise generation and sample and hold - A1, A2 and A3 are just conditioning the noise generated by the transistor V1 to be at the correct voltages. When a pulse is sent to the transistor V3 the voltage from A3 is held for the length of the pulse, with A4 being used as a unity gain amplifier to buffer the signal.
The pulse for the V3 transistor comes from the V4 transistor, which is converting the positive portion of the square wave at A5 into 0.2ms pulses. The square wave at A5 is also driving the LED driver transistor V5. The square wave at A5 is passing through the V6 diode to remove the negative portion, with A7 being used as a unity gain amplifier to buffer the signal.
The rest is the section you need to pay attention to, which is much easier now we have reduced the number of parts to look at. What we have here is a comparator based square wave generator. This is an RC (resistor capacitor) circuit - it sounds like you might want to do a little reading on the basics of RC circuits, op amps and comparators.
If you take a look at this square wave generator example perhaps you can see the resemblance to our schematic - C is C7, R1 is R14, R2 is R13 and R is the combination of R15 and our frequency pot. The capacitor charges and discharges through R, creating a triangle wave. The variable value of R (thanks to the pot) dictates the rate of charge/discharge and hence the frequency of the triangle wave. A6 is being used as a unity gain amplifier to buffer the output of the capacitor. A5 looks at the triangle wave and outputs a positive voltage when it is above a certain threshold and a negative voltage when it is below a certain threshold.
My guess is it is probably NOT a component failure, its far more likely to be the connection between boards as this is a vulnerable point. Do all of this without power applied. I would remove the Y7 board and put your multimeter on continuity test. Check that at the X7 socket on the main board, pins 4 and 5 have continuity to the R107 pot. While the board is out, clean the contacts on both Y7 and the main board using isopropyl alcohol. Leave them apart for a few hours to be totally dry. Put board back in and check continuity between the R107 pot and pins 4 and 5 ON THE X7 SOCKET ON THE Y7 BOARD.
Beyond this you are looking at tracing tracks in case any have broken, or replacing components. The point is that without the RC relationship there is nothing to periodically trigger the rest of the circuit. Seeing as we have already checked the connections of the R part, the first one I would replace is C7 - easy enough, find an electrolytic capacitor of the same value. Folowing that I would replace A5, but that is where things might get awkward - how are you going to get a replacement russian part? It is just a single op amp being used as a comparator, so I think a TL071 would be fine but I can't be sure.
When I first got my Polivoks the LFO was working, but only some of the time. The rest of the time it was doing something similar to yours. My board was sorted with a damn good clean, but only after a day or two of head scratching, looking for something to fix that wasn't broken.
Please let me know how the exploring goes, I hope you figure it out. Good luck!
Sunday, 4 August 2013
Kawai R50/R100 ROM switch
I have a thing for drum machines (last count I had 11) but the one that started it all and is still a firm favourite is my circuit bent Kawai R-100. Even without the modifications it is dirty, punchy and agressive and its built like a tank. The majority of bends are usable and some are mind blowing. The r-50 has the same sound plus a few effects, but you lose most of the jacks and controls. There were 3 different sound chips available for both machines, and some 3rd party manufacturers made rom switch PCBs to allow you have more than one chip in a machine.
.bin files are available for each of these chips, so you can burn them onto a suitable eprom. The eprom required is a little unsual - 27c400, which required a 16 bit adapter for my burner. After months of pulling my hair out trying to get them to burn, which turned out to be due to a faulty adapter I now have a chip for each of the original roms. As you can see above I have also made my own rom switch PCB, which have just been sent to seeedstudio. I will evenutally have these boards for sale, including roms. I am working on making custom roms. I have been making an 808/909 kit. There are set sample lengths as each sample needs to start at the same point within the rom. I loaded a test rom with some of the sample slots filled and pitched samples sound great, but noise based samples like hats and crashes dont sound as I expected right now. I hope to make some progress in the next few days, certainly will have something to show for it by the time the rom switch PCBs arrive.
Saturday, 3 August 2013
Atari 2600 2/4k cartridge
There are a few options for custom roms for the Atari 2600 but I was struggling to find a cheap and easy option so I ended up designing my own. This is a 2 sided design which is a pain to do on my mill, so I decided to have them professionally made. I had heard good things about seeedstudio.com and I have to say I was very impressed. They supply eagle DRC and gerber generation files which means you can be sure your design conforms to their requirements and makes the process as painless as possible, and all boards are e-tested. It took all of 9 days from ordering to my door and they were very cheap - sometimes 3 or 4 times cheaper than others. I will definitely be ordering from them again, hopefully in the next day or two.
The boards are high quality 1.6mm thick with hasl plating, These are the right thickness for the 2600 cart slot. If you would like to buy one please email me analogmonster@live.com with quantity, country and paypal email address and I will send you a paypal invoice. Bargain price of £2 per board plus shipping. Each board weighs six grams and I will add some cardboard either side for a little protection. To give you a rough idea on shipping cost it would cost £1.50 to ship 1 board to the US with a delivery aim of 5 days.
You would need to add a 74ls04, eprom socket, eprom and capacitor yourself. I do have a few eproms lying around, so if you don't have an eprom programmer let me know and I will see if I can help you out.
atari4kcart gerbers and eagle files. If you submit these to seeedstudio yourself you will need to rename the gerbers zip as they need a unique filename.
Lell UDS MIDI to trigger interface
The Lell UDS is another 80's soviet analog drum machine - mine was made in 1989. All those knobs and only 2 channels - this is quite a deep drum module. Again mine was in a bad state when I got it, significant noise, loose crackly pots and no trigger pads. A lot of knob wiggling, deoxit and some resoldering fixed the pots. Other people trigger these from external audio but I found the trigger audio was bleeding through - I think the click part of the signal would originally have been the transient from the piezo pickups in the pads. So I wanted to give it a proper trigger signal.
I have built a 2 channel MIDI to trigger circuit using an Arduino. When it receives a MIDI note on command C1 or D1 (note numbers 36 or 38) and velocity is more than 0, outputs 1 and 2 (Arduino pins 9 and 12) go high for a predetermined time - note length is ignored. As before, the board is a barebones arduino board with an opto-isolated midi input. The code is essentially the same as the Elsita trigger interface, but there is more to the circuit. The 5v out of the Arduino wasn't consistently triggering so I connected the Lell UDS 12v positive supply to the trigger inputs using a transistor. The Arduino outputs are connected to the base of the transistor to gate the trigger signal. This buffering is good practice with Arduino outputs anyway.
This is an internal modification to a device that hooks up to mains electricity, so please be really careful and never work on it while plugged in. There are some pretty big capacitors that are likely to hold a charge for a while too. I took the arduino board's positive supply from pin 8 and ground from pin 3 on the PSU board. I replaced the DIN audio out with a 1/4" jack and mounted a new DIN jack for the MIDI in. I replaced the original 2 pin mains cable with a UK 3 pin cable and hooked up the metal chassis to ground via the power supply rather than via audio. Now the background noise is a lot lower than it was.
PLEASE BE CAREFUL. AS WITH ALL MY MODS I ACCEPT NO PERSONAL RESPONSIBILITY FOR DAMAGE TO YOURSELF OR YOUR GEAR. ELECTRICITY IS DANGEROUS, IF YOU DON'T KNOW WHAT YOU ARE DOING DON'T ATTEMPT ANY OF MY MODS
LellUDS-trig - eagle files and arduino .ino file
/*
2 channel midi to gate trigger for analog drum machines.
midi notes C1 and D1 (midi numbers 36 and 38) cause digital
pins 9 and 12 (15 and 18 on the atmega168/328 ic) to be high.
velocity is ignored, the digital outputs being high for all velocities except
zero (note off). Note length is ignored. You may need to change trigtime
to a value more suitable to your device. Add further channels if required.
code by analog monster analogmonster@live.com
http://analog-monster.blogspot.co.uk/
uses arduino midi library by Francois BEST
*/
#include <MIDI.h> // Add Midi Library
#define CH1 9 //define pins per channel
#define CH2 12
int trigtime=100;
void setup() {
pinMode (CH1, OUTPUT); // Set Arduino board pin 9 to output
pinMode (CH2, OUTPUT); // Set Arduino board pin 12 to output
digitalWrite(CH1,LOW);
digitalWrite(CH2,LOW);
MIDI.begin(MIDI_CHANNEL_OMNI); // Initialize the Midi Library, all channels
MIDI.setHandleNoteOn(trig); // call trig when note on recieved
}
void trig(byte channel, byte pitch, byte velocity) {
if (pitch == 36 && velocity > 0){
for(int i=0; i<trigtime; i++){
digitalWrite(CH1,HIGH);}
digitalWrite(CH1,LOW);}
if (pitch == 38 && velocity > 0){
for(int j=0; j<trigtime; j++){
digitalWrite(CH2,HIGH);}
digitalWrite(CH2,LOW);}
}
void loop() { // Main loop
MIDI.read(); // read Midi Commands
}
RMIF Elsita MIDI to trigger interface
The RMIF Elsita is a soviet analog drum machine, circa 1989. It has 4 identical channels, designed to be triggered from electronic drum pads but on mine these have worn to the point where they do not reliably trigger the channels. There is also a 180-degree, 5 pin DIN socket labelled sequencer (секвенсор in Russian Cyrillic). I cannot find any evidence that a sequencer was ever manufactured. Although it is the same port type as MIDI, it is not a MIDI input. I haven't found anywhere I can get the schematics for free, but by taking the casing off and analyzing the circuit I determined that the middle pin was ground, and the other pins were trigger inputs for each channel.
I have built a 4 channel MIDI to trigger circuit using an Arduino. When it receives a MIDI note on command C1, D1, E1 and F1 (note numbers 36, 38, 40 and 41) and velocity is more than 0, outputs 1-4 (arduino pins 9-12) go high for a predetermined time - note length is ignored. As RMIF provided the sequencer input jack I decided to put this in an external case rather than do any internal modifications.
It would be easy to modify this code to accommodate more channels, the Arduino UNO/duemilanove has up to 12 digital outputs we could use, ignoring the RX and TX pins. I chose the note numbers that are used by Audio Damage Tattoo, I turn the synth audio out off and use the sequencer to control the Elsita.
The board is a barebones arduino board with an opto-isolated MIDI input and 5 pins for the sequencer output. I simply cut a MIDI cable in half and soldered one end to the MIDI input, the other to the sequencer output. Looking at the MIDI cable as above with the pins along the top the pinout goes pin3-CH2, pin5-CH4, pin2-GND, pin4-CH3, pin1-CH1.
I have provided the code, schematic and board layout in Cadsoft EAGLE format and as images. I will be uploading a number of projects to this blog, and I aim to make it as easy as possible for you to replicate it at home. My designs will be single sided only, so you can etch it at home - either with a CNC mill or with chemical etching. I have designed my own DRC file specific to my mill which enlarges pads and changes them all to squares as I find it mills better this way - you may need to change the to make it suitable for your own mill. I provide the schematic so that you can make it on bread board or vero board if you cannot etch boards yourself, but I cant provide layouts as I have no need for breadboard any more. If you have any problems leave a comment and I will do my best to help. Good luck!
elsita trig files - eagle files and arduino .ino file
/*
4 channel midi to gate trigger for analog drum machines.
midi notes C1, D1, E1 and F1 (midi numbers 36, 38, 40 and 41) cause digital
pins 9, 10 11 and 12 (15, 16 ,17 and 18 on the atmega168/328 ic) to be high.
velocity is ignored, the digital outputs being high for all velocities except
zero (note off). Note length is ignored. You may need to change trigtime
to a value more suitable to your device. Add further channels if required.
code by analog monster analogmonster@live.com
http://analog-monster.blogspot.co.uk/
uses arduino midi library by Francois BEST
*/
#include <MIDI.h> // Add Midi Library
#define CH1 9 //define pins per channel
#define CH2 10
#define CH3 11
#define CH4 12
int trigtime=100;
void setup() {
pinMode (CH1, OUTPUT); // Set Arduino board pin 9 to output
pinMode (CH2, OUTPUT); // Set Arduino board pin 10 to output
pinMode (CH3, OUTPUT); // Set Arduino board pin 11 to output
pinMode (CH4, OUTPUT); // Set Arduino board pin 12 to output
digitalWrite(CH1,LOW);
digitalWrite(CH2,LOW);
digitalWrite(CH3,LOW);
digitalWrite(CH4,LOW);
MIDI.begin(MIDI_CHANNEL_OMNI); // Initialize the Midi Library, all channels
MIDI.setHandleNoteOn(trig); // call trig when note on received
}
void trig(byte channel, byte pitch, byte velocity) {
if (pitch == 36 && velocity > 0){
for(int i=0; i<trigtime; i++){
digitalWrite(CH1,HIGH);}
digitalWrite(CH1,LOW);}
if (pitch == 38 && velocity > 0){
for(int j=0; j<trigtime; j++){
digitalWrite(CH2,HIGH);}
digitalWrite(CH2,LOW);}
if (pitch == 40 && velocity > 0){
for(int k=0; k<trigtime; k++){
digitalWrite(CH3,HIGH);}
digitalWrite(CH3,LOW);}
if (pitch == 41 && velocity > 0){
for(int l=0; l<trigtime; l++){
digitalWrite(CH4,HIGH);}
digitalWrite(CH4,LOW);}
}
void loop() { // Main loop
MIDI.read(); // read Midi Commands
}
Friday, 10 May 2013
new post delays
So I have a huge amount of stuff I want to upload, but I cant get access to it right now. My mac SSD drive has died on me. I have backups of everything, thank god, but I am currently without a computer while I wait for my SSD manufacturer to repair/replace it. But as soon as I can restore my data there will be more things to see here.
Sunday, 7 April 2013
CNC Milling my first prototypes for my synth
Here's my milling machine etching my prototype boards for -+12v and +5v PSU bus, VCF, VCA, 2 types of envelope generators and my VCO. The PSU is fully built and has run 3 Doepfer LFOs happily. I will test it further when I have built my other modules, I'm just waiting for a parts shipment.
Polivoks Restoration and Modifications
So, a few weeks ago I made a fantastic purchase - the legendary Polivoks analog synthesizer. The one I got was in a very sorry state, but if it hadn't been I couldn't have afforded it. I bought it from a guy in Belarus via Ebay. It had been modified (badly) by a previous owner and he hadn't managed to get it back into working order. It's keyboard had been hacked off and MIDI added, but it wasn't functioning correctly - the pitch was tracking poorly and it wouldn't always respond to a gate signal. The LFO wasn't functioning and the amp envelopes sustain and release had no response.
The MIDI to CV board was a professionally made board, but there was very little information about it on the internet so I had to analyze it myself with my miniature digital scope while sending MIDI to it. The Hz/V tracking needed calibrating, and the tuning of the synth could then be calibrated reasonably well - I get 4 octaves within 3 cents of accuracy. There was a PWM out that responded to velocity which was connected to the VCA daughter board, but it didn't sound very nice. I removed this entirely and replaced the solder bridge that it had been replacing and voila - sustain and release functioning again. Although this synth should be switchable to duophonic - being able to play 2 notes at a time by assigning one note to each oscillator, this would only be possible with a duophonic keyboard or a 2 channel MIDI to CV converter. This is not a big deal for me, I probably wouldn't have used it anyway.
The gate signal issue was resolved by adding a diode as seen in the gate/CV mods already published at technopop. The LFO issue was resolved by cleaning the contacts on the LFO daughter board. Despite some unfavorable comments elsewhere I was surprised to find the construction of this synth is actually very well done. I don't understand Russian Cyrillic but I found it very easy to read the schematics. The controls are mounted on two main boards screwed to the case, with a number of daughter boards mounted at right angles to the main boards, all held in with a large brass strip and a number of screws. Each daughter board is dedicated to a single function - 1 for each oscillator, one for VCF etc. This made troubleshooting much easier.
The rest of the restoration was pretty standard stuff - clear up all the dust, clean some contacts, Tighten up some screws and replace some really dirty pots with modern equivalents. To fix the loose knobs I took a modern rubberized knob and peeled off the rubber, trimmed the plastic insert down and not glued them in place of the original plastic insert. I have 4 knobs missing and it will be impossible to find exact replacements, I will have to do some browsing to find some vintage looking modern alternatives. The power button cap is missing, I will probably replace the whole switch with a high quality rocker switch at some point.
And so having made the Polivoks fully functional again, I set to work looking for a few mods. This synth features analog FM - you can modulate oscillator 1 with oscillator 2. But the modulation doesn't go deep enough. This was easily rectified by replacing a resistor (R64) with a short piece of wire. With the knob turned fully counter clockwise, it sounds like an unmodified Polivoks. At about 12 o clock it sounds like an unmodified Polivoks would fully clockwise. And fully clockwise the FM sounds comparable to analog FM on my Eurorack modular VCOs.
The other mod was to extend the LFO rate. This was also a pretty simple mod, simply replacing the original rate knob (R107) with a with a 1MEG pot. With the knob fully clockwise the rate is the same as an unmodified Polivoks, with the knob fully counter clockwise the rate goes to about 0.5Hz.
I also replaced the main out, headphone out and expression pedal in jacks round the back - they originally used DIN jacks. 1/4 inch jacks can fit in the same holes with no case modifications. The expression pedal input controls filter cutoff frequency. with a 1/4 to 1/8 inch cable I can now modify the cutoff with my modular. I have tested it with both unipolar and bipolar signals and it functions well. The operating supply of the Polivoks is -+12.5V, so it is going to be safe with interfacing directly with most Euro racks as they are usually on -+12V, but be careful with a -+15V synth - module outputs shouldn't go rail to rail, but if they do they could damage the Polivoks.
In the future I will probably add pitch and gate CV inputs for interfacing with the modular, replace the plastic end panels with some polished wood end panels and replace the bottom plate with wood also - the leatherette bound metal case currently has a split right through it from when the keyboard was removed. I also might replace the figure of 8 power supply jack with a 3 pin IEC/kettle lead, hooking up the ground supply to the body and the transformer to try and lower the noise floor - something I have already done, along with other mods to some soviet drum machines. Details of these mods to follow in a later post.
PLEASE BE CAREFUL. AS WITH ALL MY MODS I ACCEPT NO PERSONAL RESPONSIBILITY FOR DAMAGE TO YOURSELF OR YOUR GEAR. ELECTRICITY IS DANGEROUS, IF YOU DON'T KNOW WHAT YOU ARE DOING DON'T ATTEMPT ANY OF MY MODS
Tuesday, 2 April 2013
First post. Yay! A little about me
Hi, I'm Analog Monster. I'm a 25 year old audio engineering and electronics student based in Cambridge, UK. Music is the most important thing in my life, whether its listening to it, making it or making electronic instruments.
My fascination with synths led me to the murky world of DIY electronics. I started out circuit bending kids toys - there is something amazing about coaxing something musical out of a supposedly non musical device. As I gained confidence (and stopped breaking things I was modifying) I moved on to modifying drum machines - adding ROM switches to allow custom samples and intentionally corrupting data lines to create glitchy, distorted samples.
I started to build kits for electronic instruments - Atari Punk Console, Casper Electronics Drone Lab V2, Meeblip, Mutable Instruments Shruthi1 and many others. Most of these projects are created by a bloke in a shed in his spare time for pennies, not massive companies with an equally massive budget and an R and D department. I was inspired - if those guys can do it, why cant I?
So in September 2011 I took the plunge and bought a chinese import 3 axis CNC milling machine, taught myself Cadsoft Eagle and started designing and etching my own PCBs. Now these PCBs are not professional quality, when I have a final design ready I will have them made at a proper fab house. But having a milling machine has allowed me to do rapid prototyping, and I have gained invaluable skills I use on a daily basis.
I dont have anything I'm willing to show yet, but I am working on a semi modular analog synthesizer for my final university project. It will be a fully analog signal path, using only thru-hole "still in production" components and single sided boards for easy home manufacture, and best of all I will make all the designs open source. Although I am a university student, I have learnt far more from studying other people's projects and I certainly wouldnt be at the point I am now without the openness of others. I think it is important to share knowledge and so I will follow their lead and make schematics and board layouts available for everybody for free. Of course, if you wish you will be able to purchase complete kits from me also.
Once I have finished university I will go into this full time. I have my first 2 products at 1st prototype stage and many other ideas that need some trials on breadboard before I decide if they are worth developing into products. I will put some sound and video demos up in the next few weeks - so watch this space!
My fascination with synths led me to the murky world of DIY electronics. I started out circuit bending kids toys - there is something amazing about coaxing something musical out of a supposedly non musical device. As I gained confidence (and stopped breaking things I was modifying) I moved on to modifying drum machines - adding ROM switches to allow custom samples and intentionally corrupting data lines to create glitchy, distorted samples.
I started to build kits for electronic instruments - Atari Punk Console, Casper Electronics Drone Lab V2, Meeblip, Mutable Instruments Shruthi1 and many others. Most of these projects are created by a bloke in a shed in his spare time for pennies, not massive companies with an equally massive budget and an R and D department. I was inspired - if those guys can do it, why cant I?
So in September 2011 I took the plunge and bought a chinese import 3 axis CNC milling machine, taught myself Cadsoft Eagle and started designing and etching my own PCBs. Now these PCBs are not professional quality, when I have a final design ready I will have them made at a proper fab house. But having a milling machine has allowed me to do rapid prototyping, and I have gained invaluable skills I use on a daily basis.
I dont have anything I'm willing to show yet, but I am working on a semi modular analog synthesizer for my final university project. It will be a fully analog signal path, using only thru-hole "still in production" components and single sided boards for easy home manufacture, and best of all I will make all the designs open source. Although I am a university student, I have learnt far more from studying other people's projects and I certainly wouldnt be at the point I am now without the openness of others. I think it is important to share knowledge and so I will follow their lead and make schematics and board layouts available for everybody for free. Of course, if you wish you will be able to purchase complete kits from me also.
Once I have finished university I will go into this full time. I have my first 2 products at 1st prototype stage and many other ideas that need some trials on breadboard before I decide if they are worth developing into products. I will put some sound and video demos up in the next few weeks - so watch this space!
Subscribe to:
Posts (Atom)