Thursday, April 28, 2016


Wow! Eight months since my last post...
Well, this is what i have been working on since then. It is a new take on an old favorite, the Yamaha PS-3. This was a commission for Cico Beck Notwist, Aloa Input, and Joasihno. The project was only supposed to take a month or two, or so i thought. It ended up going waaay over though. 

I can't remember exactly what took things so far off track, but i think that it might have something to do with having to wait for two months to receive a replacement laser tube for my laser cutter. After 3 good years of solid use, my laser cutter lost the power to cut through wood or plastic. This is to be expected. I fact, the estimated life of a laser tube is actually only supposed to be around one year, so i felt like i got my moneys' worth. The company who i bought my laser cutter from(who i no longer recommend) had a longstanding promotional deal that encouraged their customers to submit photos of their works for the chance at a new, free laser tube, no strings attached. I contacted the company to see if the contest was still going on after all these(3) years. I was told that they were no longer holding the contest, but that if i agreed to do some promo work for them, i would receive a free laser tube replacement. Not having the money to spend on a new laser tube, i jumped at it. I ended up waiting and writing them for two months to see where the hell my tube was... They finally got back to me to tell me the guy who set up my deal was no longer with the company, and that they would like to come up with a new arrangement... Fuck that shit! Bye. So i ended up buying a new tube from ebay, and it works fine. Needless to say, i have deleted all links to their site from this page. Sorry guys. 
Anyway... Sorry to sound like a bad yelp review.

The Yamaha PS-3 is hands down my favorite keyboard to modify. It might have something to do with the service manual i have, but the LSI chip is so cooperative too. It is 8-voice para-phonic with two outputs; 4', and 8' (square wave). It has a "Key-On" trigger output that re-triggers every time a key is pressed, and different sustain settings for the internal VCA's of the individual voices. There are also 8 CV inputs for the individual VCA's, but i was unable to use this feature for any practical purpose. My original plan was to sequence the 8 VCA's to create an arpeggiator, but i found that the way in which the voice addresses scan the keyboard made the concept impossible. It is kind o f complicated, but basically what i found is that only six voices scan the keyboard unless two or more notes are held, so unless you were really good at math, it would be difficult to predict how the notes would be sequenced. I had enough trouble getting that far. The PS-3 LSI has lots of other great features too, like a built in drum machine with CV inputs for the perc. generators, and a tempo clock that is independent of the LSI clock. However, there was no room for these features in this build, so i left them all unconnected. Rather than going to all of the trouble of stripping down and modifying the giant main board of the PS-3, i simply removed the LSI chip, and scrapped everything else. I will save the VCA and VCF chips that were inside for a future project. I made a small daughter-board for the PS-3 LSI so that i could operate the keyboard with minimal connections. I also replaced the keyboard with one from a Yamaha PSS keyboard that i had scrapped a long time ago. It is exactly the same as the PS-3s' keyboard in that it has independent keys that can be replaced individually if need be, but the chassis is a solid piece of aluminum, whereas the PS-3 keyboard is mounted to the plastic shell of the instrument. It would be a lot more work to make that fit, so it was a no-brainer. Since i was using a good strong keyboard, it was also a no-brainer to add a pressure sensor to the keys to add aftertouch as a modulation source. 

Once the keyboard and LSI were wired up, i came up with a general signal path based from some of the things we had talked about adding. Among them being a sample/studder effect. I am just a hardware hacker, so when it comes to sampling and digital processing, i usually just look for something off the shelf that can be repurposed. In this case, it would be the "Ucreate Music" station. 

It is a neat little toy from the late 90's i think. It has  preprogrammed "beats" that can be used to make lo-fi hip-hop and DJ music. It also contains some really nasty lo-fi digital effects for processing external sound sources. I had never actually seen one of these instruments in the wild, but i knew from watching youtube videos that the effects' parameters could be modulated with the built in joystick ball controller, so it was likely that the instrument had analog inputs, and sure enough, it did. Most of the effects were pretty unremarkable. I had initially planned to only use the two sample/studder functions and leave off the rest since there would already be a higher quality effects processor in the build, as well as my own analog filters. However, the nasty "steppy" resonant VCF effect was so cheesy and cheap, i kind of fell for it. It took me right back to being a stony teen, watching Animorphs on lazy saturdays after all the cartoons were over. So i ended up keeping that one and the cheapo echo effect. They may not be the most useful effects, but you never know. When it comes to cheap DSP effects, i have never heard anything this lo-fi. 

The other effects processor was one that i have used multiple times in the past, and it is one of my favorite features to date. It is the modified Behringer reverb pedal, DD600. The DD600 pedals are usually pretty cheap since they are just cheap knock-offs of Boss pedals. The pedal on its own is as terrible as any online review would suggest. The controls are steppy and glitchy, and they are power hogs. Not to mention you need to use a regulated 9 volt power supply if not a battery. So most people will unload these paper weights for pretty cheap. I think the most i have spent on one is $20, which is not bad considering how much is laying dormant under the hood. The DD600 uses a CoolAudio V1000 chip which is basically an Alesis knock-off. The V1000 is being controlled by a little micro-controller with custom Behringer programs to generate the lackluster reverbs and delays. However, the V1000 has 16 of its own effects programs that can be accessed pretty easily by simply disconnecting the appropriate pins on the board, and adding a 4 bit switch to select all of the programs. Of course this renders the controls of the pedal useless,  so you have to build your own wet/dry mix control. The other thing i like to do with this chip is replace the V1000's timing crystal with a VCO. Sweeping the frequency of the VCO changes the sample rate of the V1000 and causes a really great swooshing pitch bend. The effect sounds a little bit different in each of the 16 programs.

Once the overall signal path was approved, i started by drawing up the keyboard enclosure. The design is pretty straight forward. Not too wild, but still pretty sexy. Once the design was approved, i then turned the drawing into parts, and cut them out using the laser cutter.

This is about how much plywood was needed, and since my laser cutter is so small, there were a lot of layers to cut. This is probably something i will try to outsource in the future.

 Cutting all 52 of the parts out 5-6 at a time is pretty exiting. They take a while to cut, so in the time between layers, i like to try and assemble the pieces i have, and slowly build the enclosure like a puzzle. Cutting something like this usually takes a whole day on my little laser cutter.

 Once all of the parts are cut, i frame them all out with clamps and glue them up with either wood glue, hot glue, or super glue, depending on the joint. When everything is glued solid, the clamps come off and the excess wood tabs and teeth are cut off with a flush cut saw. 

 Then all of the joints are filled with wood filler. When it dries, i sand everything smooth.

The end cheeks are made with double layered plywood to achieve the 1/2" thickness. I create inverse templates to help choose what part of the wood grain to use from the sheet of birch veneer. The veneer is then glued to the plywood using contact cement. I then use an iron-on birch edge-band around the perimeter of the cheeks. the cheeks hardly end up looking like a real whole piece of wood, but that's not really what i'm going for anyway. For this project, i used the same veneer technique for the lateral strap across the keys too. The strap is the main access point to the keyboard keys.

The tolex for the rest of the enclosure is the same batch of red tolex that i had left over from the last PS-3. I have finally used it all up. I adhere the tolex to the enclosure by first applying a a generous even layer of "non-flammable" contact cement to one flat side of the enclosure, and to the tolex that will be connected to the flat edge of the enclosure. Once the contact cement is slightly dry and just tacky, the enclosure and the tolex can be put together. Then i apply a good amount of pressure to the contacting side, and let it set for a good hour or so before applying contact cement to the next flat section of the enclosure, and the respective part of the tolex that will make contact with it, and repeat the process. I keep doing this one flat section at a time, always putting ass much pressure on the tolex as possible, as well as giving it a good tight pull as i work my way around. Ideally, the excess tolex will pull in over the edges where it is not glued. Once i have made it all the way around, i apply even more pressure by adding clamps everywhere. I then let it set overnight, and come back to trim all of the excess tolex the next day. I roll over the excess on to the sides where the cheeks will be mounted, and super glue down the edge to give it a nice clean consistency.

Ok, so now that the box is done, what's left?

The electronic aspect of this project was pretty straight forward. there was really not too many roadblocks that i wasn't able to diagnose pretty quickly, so i will just do that thing where i systematically describe the entire thing now. But before i do, some of the more notable takeaways of this project were; if you are buying cheap parts like potentiometers from china, expect to get what you pay for, bias voltages on transistors may vary from transistor to transistor(LOL), and companders are pretty cool once you figure them out. Yay, i know how to use companders now. 

Ok, on to the functions. The PS-3 spits out two seperate voices, 4' and 8', which i have renamed voice1 and voiec2. Both voice1 and voice2 have their own state variable VCF with a small amount of resonance(but enough). Setting up these filters was kind of tricky because of the 8-voice polyphony being sent to them. If only one note is being played, the signal is pretty weak, but if you give it too much juice, the voice clips when more than three or four notes are pressed. You might be thinking this is where the compander comes in, but no, that didn't come to mind until i had decided that the signal level of the two voices would just have to be decided by the user. Besides, sometimes you want a little clipping, right? Anyway, the filters can each be set to HP(12db), BP(6db), or LP(12db). The filters are specially tweaked to work with the PS-3 LSI. They may not sound as lush as a big moog ladder filter, but they give the keyboard some great string and pad timbres. 

The filters have independent cutoff control that can be set manually and/or with each filters' respective Attack/Decay generator. The two A/D generators have their own attenuator, while the cutoff knob acts as a bias voltage. The A/D generators can be triggered by either the first "key-on" event, or by every successive "key-on" event, using the "Single/Multi" switch for each generator. The generators can also be re-triggered the sequencer clock, using the "Clock-Sync" switches for the respective voice.   

Each filter has a modulation input switch to select a modulation source to the filter cutoff. There are four modes; Manual, LFO, Pressure, and Inverted Pressure. in all four modes, the cutoff knob acts as an attenuator for the modulation input. The filters have independent resonance control knobs as well.

The two signals are combined after their filter stages with individual level control knobs, and sent to a single VCA. The VCA also has its own envelope generator with Attack, Decay, and Depth. The envelope generator can be triggered in all of the same ways as the other two envelope generators, including the "Clock-Sync" re-trigger. The VCA's envelope generator doubles as a global modulation source for other parameters as "EG3". The depth control of EG3 only controls the depth of the envelope generator to the VCA, so if EG3 is sourced to another parameter, the parameter's manual control knob will act as the signal attenuator to that parameter. The PS-3 has a sustain mode that i included. While on, the notes will hold for a little bit longer after the notes have been released. Otherwise, the notes will go silent as soon as the key is lifted.  

After the VCA stage, the signal is the mixed with the Line-In. The Line-In has its own level control, and it has a decent amount of gain. The combined signal is then sent to the Loop stage which consists of the Ucreate Music processor. There are two volume controls for Wet and Dry signals from the Ucreate. The Dry signal is just a straight buffered bypass of the Ucreate, and the Wet signal is what comes out of the Ucreate when it is engaged. There are two ways to engage or activate the Ucreate. the effect of the Ucreate will not come on unless it is manually engaged using the "Manual" LOOP/FX CAPTURE button, or if a key is pressed and held while in "Key-On" LOOP/FX CAPTURE mode. In the Key-On mode, while the Ucreate is set to LOOP1 or LOOP2, the Ucreate will re-sample the input every time a key is pressed. The Ucreate has four modes; Filter, Loop1, Loop2, and Echo. Each mode has two parameters
FILTER- Par1: Cutoff  Par2: Resonance
LOOP1- Par1: loop length  Par2: direction
LOOP2- Par1: loop length  Par2: pitch/direction
ECHO- Par1: amount  Par2: rate
Each parameter has its own modulation source switch with five settings; Manual, LFO, EG3, Pressure, and Inverse Pressure. The parameter control knob acts as an attenuator in all five modes. 

After the Loop stage, the signal is then send to the REVERB/FX stage. it too has Wet and Dry volume controls. The REVERB/FX stage has 16 modes;
The Bit Rate of the Reverb/FX stage has a modulation input switch with five modes; Manual, LFO, EG3, Pressure, and Inverse Pressure. The Bit Rate control knob acts as an attenuator in all five modes.

After the Reverb/FX stage, the signal is sent to the Master Volume control before being sent to the output and the speaker power amplifier if the line out is not in use.

The PS-3 also has an 8-step sequencer. The sequencer is used to  modulate the global pitch of the PS-3. The PS-3 also has a pitch modulation input switch and a respective attenuator control knob. The pitch modulation input has five settings; Manual, LFO, EG3, Pressure, and Inverse Pressure. The pitch modulation input acts as a secondary control voltage to the PS-3's global pitch. The primary pitch control voltage of the PS-3 is set by control knob of the current sequencer step. This is step 1 while the sequencer is not running. When the SEQUENCER switch is set to MODE, there are three run modes to choose from. LOOP mode continuously loops the sequence regardless of key-on messages. GATE mode loops the sequence continuously as long as a key is held. if the key is let go, the sequence will pause on the most recent step until the next key-on message. ARP mode continuously loops the sequence as long as a key is held, until the keys are released, at which time the sequence resets to step 1 until the next key-on message. When the SEQUENCER mode switch is set to (8), once a key is pressed, the sequence will run up to step 8, and then hold it until the next key-on message, at which point it will reset and run back up to step 8 until the next key-on message, and so on. In SEQUENCER "MODE" mode, the sequencer can run in three direction modes; UP, DOWN, and UP/DOWN in which the sequence counts up to eight, changes direction, counts down to 1, changes direction, and so on. In (8) mode, the sequencer only counts UP. The sequencer has a PGM/PLAY button switch that allows the user to manually advance the sequence one step at a time with the PGM+1 button. This can be used to fine tune the pitch of each step, or just quickly transpose the global pitch of the keyboard to a desired key. The CLOCK-RATE knob controls the rate of the sequencer in play mode. It has a very wide range from about 1Hz to audible range. The clock rate control knob also doubles as an attenuator for the clock rate modulator input switch. Aside from manual control, it can also source LFO, EG3, Pressure, and Inverse Pressure. 

The last two modulation sources are the Pressure Sens.(aftertouch), and the LFO. The pressure sensor is pretty straight forward. It has one control knob that sets both the rise and fall reaction time of the pressure sensor underneath the keys. There are two separate pressure CV outputs; positive and negative, or "Pressure" and "Inverse Pressure" respectively. They are both identical, but one is inverted. There are two indicator LEDs to represent the phase relationship of the two CV's.

The LFO section has four modes; Triangle, Square, Sample&Hold-Hard, and Sample&Hold-Soft. The triangle and square wave LFO's have independent rate control. They are actually two separate LFO's. The rate of the LFO's can be controlled by their respective Rate Modulation input switch. The switches have four settings; Manual, EG3, Pressure, and Inverse Pressure. S/H- Hard is your typical sample and hold function. Every time the square wave goes high, it outputs whatever voltage the triangle LFO is at at that moment until the next high transition of the square wave oscillator, at which point the triangle wave will be re-sampled. The S/H-Soft mode is different in that the sample period of the square wave is 1/2 the frequency of the square wave LFO, so while it is in the sample phase of the oscillation, causing more of the triangle wave shape to be output. The effect is kind of like a mix of both waves, depending on how the LFO's rates are set. The output of the LFO is sent to an AC attenuator VCA circuit before being fed to all of the modulation input switches. The depth of the LFO is set by the LFO-DEPTH knob, which also doubles as an attenuator for the LFO modulation input switch. It has four modes; Manual, EG3, Pressure, and Inverse Pressure. It may seem strange to have an AC attenuator feeding out to a bunch of DC attenuators. It is, now that i think about it... Oh well, better than being stuck with just one of the two :)

So now that this project is finally finished after going 6 months over deadline, i am flat broke, i have no prospects and no job. I have no idea how i am going to make my next buck, but people are still busting down my door asking what's for sale. Well... i wish i had something to sell. I could really use the money right now. In the meantime, i am just going to keep making money where i can and hopefully get some stuff built to sell. Thank you everyone for your patience and understanding. Thanks especially to everyone who has been reaching out to me with the kind words of encouragement. I might not always have time to respond to emails, but i definitely read them all graciously.