Monday, June 23, 2014

YAMAHA PSS-170

I started this project soon after finishing up the NT01 set. after feeling a bit overwhelmed by the idea of trying to compete with other novelty-synth producers that seem to be popping up all over, i thought it might be a good idea to fall back on my strengths. rather than trying to develop some new and original device that is completely "from scratch", i wanted to get back to modifying obsolete things. this is not to say that there wont be more NT models in the future, but i needed a break from brainstorming. i had a yamaha PSS-170 laying around, so i figured i would just have some fun with that. the initial plan was to keep it simple. an echo circuit, a filter, a sequencer, and so on. i figured this would be a quick little project that i could crank out in a couple of weeks, but it ended up taking about a month to finish.

upon doing some random research for circuit ideas, i decided it might be time to finally find out what PLL's do. when i started circuit bending some 10 years ago, i remember reading about Phase Locked Loops in a textbook. i think i got about two sentences in before my eyes crossed in boredom. since then i have increased my capacity for understanding electronic applications. i couldn't believe how simple it was to understand. basically, in the case of the CD4046, there is a voltage controlled oscillator that synchronize its frequency to the frequency of whatever signal is inputted to the CD4046. i guess i never understood why you would need to do that. why not just use the input frequency? well, apparently if you divide the VCO output frequency before sending it back in to the CD4046's phase-comparator, the frequency of the VCO will be increased until the divided output frequency matches that of the input frequency. so if the phase-comparator input was set to 1/2 the VCO frequency, the VCO frequency would be raised X2 to match the input frequency to the CD4046. BRILLIANT!!! i remember how exited i was when i learned to divide frequencies, and now i can multiply them!! and not just by 2, 4, 8, and so on. with the PLL you can multiply by whatever number you want. there is one drawback though, at lower frequencies the PLL takes longer to stabilize. it kind of sounds cool though because the frequency stutters a bit before it locks in to sync. hearing something fall in to sync is so vindicating.

after coming up with a decent PLL circuit, i devised a simple bidirectional sequencer that would drive an LTC1799 chip to pitch the YM2413 voice chip of the PSS170. i wanted to add an envelope generator to the keyboard that would be triggered by note-on messages, but unfortunately there was no way to obtain a decent note-on gate from the PSS170 other than to use the audio signal as a gate. and since there are so many different voices in the PSS170, there would be no way to get the envelope generator to respond to all of the voice presets. instead i just synced the envelope generator to the sequencer clock. i also threw in a divider so that the envelope generator could be triggered by 1/1, 1/2, 1/4, or 1/8 the clock frequency.

the envelope generator would be set up to modulate the cut-off frequency of the melody filter before being sent to an echo circuit. while i was experimenting with creating a note-on gate from the audio signal, i realized that the voices coming from the YM2413 sounded really crunchy when you filter them just right and sent them through a frequency divider, so i ran those sub-frequencies through a joystick mixer and mixed them back with the original voice before they get sent to the filter stage. this is when i realized something else... although there are separate outputs for the melody and rhythm voices coming from the YM2413 voice chip, there is some bleed through from the rhythm output to the melody output, even when the rhythm output is fully attenuated. i suddenly remembered this same problem i had with other yamaha PSS models, namely the PSS-30. i think it is due to the fact that the melody and rhythm sections share some similar functions when it comes to the auto-accompaniment. the accompaniment melody comes through the melody output, but the accompaniment volume switch affects both the accompaniment melody volume, and the rhythm volume regardless of the analog volume outputs of the two sections from the YM2413. and of course, the accompaniment volume has no effect on the melody output volume. with all of this in mind, i safely concluded that there was no solution to the bleed through. the only real problem it gave me was that when the rhythm volume was set all the way down, and the melody divider was engaged, the bleed through would get picked up by the melody divider and get amplified quite a bit. the divider seemed to be picking up some aliasing noise too, so to solve the problem, i used a potentiometer with a switch at one end that would disconnect the divider circuit when its volume was set to its minimum. in addition to the independent volume controls for the melody and rhythm sections, i thought it would be kind of cool to have independent echo circuits for the two too.

after about a week of reverse engineering the keyboard and coming up with an overall circuit, i came up with a design plan. the PSS170 has a lot of room inside, but i would need a lot more if i wanted to fit all of the circuits i had built. the first thing i did was replace the huge 6xC battery compartment with a much smaller 6xAA battery compartment. then i cut as much of the front panel off as i could without compromising the structural integrity of the keyboard case. the next step was to clean the hell out of what was left. this keyboard was absolutely filthy. once it was all clean, i took some measurements and started drawing up the new face-plates. after playing around with the orientation of the interface for a few days, i settled on a design, and got to work drawing up a circuit board for the whole thing. rather than using multiple small circuit boards, i decided to be lazy and just put it all on one big circuit board. the circuit board took most of a day just to cut and drill. CNC engraving a circuit board of that size can be slow going. i had to keep going back over it a little deeper each time around the corners to get all of the traces it missed the first time around.
populating the circuit board was pretty fast. the only thing that bothered me was seeing the huge number of parts that this circuit consumed. it's not that i hate ordering more parts, it's when i need parts that i don't have anymore. oh well, i can always pull parts from scrap circuit boards if i get desperate.



once the circuit board was built and ready to go i cut out some prototype face-plates on my laser cutter using cardboard from a cereal box. i have found this to be the best way to connect the hardware to the main-board without having to worry about over abusing the face-plates. then once everything is wired up and working properly, i just swap the disposable face-plate for the real thing. i had originally planned to paint the three face-plates all different colors, kind of going for a crazy candy color scheme, but i kind of liked the way the cereal box cardboard looked with the bright orange buttons. i had a can of krylon that was basically the same color, but i've had a lot of trouble in the past using solvent based paints with acrylic face-plates. i read somewhere that if you reheat the acrylic and let it cool, it will reduce the risk of cracking the acrylic when the paint dries. once the panels were engraved, cut, and i had colored the graphics, i hit the the panels with a MAPP torch for a few seconds on each side until the acrylic started to bow out. i kept heating them up until they wouldn't warp any more, and then i let them cool. once they cool, they return to their original size, and all of the stress in the plastic is relieved. then they are ready to paint. there was a little blistering from the torch, but it is barely noticeable.

i would have to say the most rewarding part of a project that takes so much planning, is when it's time to assemble everything, and it all comes together smoothly. however, being the most satisfying phase of the project can in turn create a perfectly devastating situation. that's usually what happens, and this time was no exception. once all of the new keyboard was assembled and working, and i was putting in the very last screw that would finish the piece using a very powerful screw-gun, i went too deep and cracked a face-plate... i cut out a replacement, painted it, and was able to swap it in by the end of the day. lesson learned.

once the keyboard was closed up i notice a couple of things that i wasn't entirely satisfied with. for one, the envelope generator was biased too low, so it would make this irritating popping noise every time it swept down. not only that but the envelope generator didn't sweep deep enough because the envelope was buffered by an op-amp, so it couldn't reach more than 4 volts. i opened it back up and swapped out the envelope buffer with a couple of transistors to fix both issues. i seem to remember having the same problem with IVAN. why didn't i think of it when i was designing the circuit? oh well, fixed now. while i had the keyboard open, i threw in a little input jack to the CD4046. now the sequencer can accept incoming clock signals and/or the rhythm tempo. i thought about adding a tempo sync output too, but i'll leave it out for now.

Tuesday, May 13, 2014

NT 01

 
This project started at the beginning of April. the main motivation for building these noise boxes was to create a product that could be sold easily to try and recoup some of my losses from going a month over my deadline with the Ivan synth. it seems like everywhere i go, people are selling Atari-Punk-Consoles, and other simple square-wave drone synths. the one thing that most of them are lacking is any kind of design aesthetic, so i figured i might be at an advantage there. i got to work designing a wood console for them using my google sketchup demo.

I had recently built a hot-wire acrylic bender. this was the perfect opportunity to use it. i designed the face-plate to have two folds that follow the shape of the console. 
Coming up with a circuit was pretty straight forward. all it really had to do was out-perform the APC. i wanted to keep the cost as low as possible so that i could sell these boxes for less, but still spend some time personalizing each one. the circuit is comprised of one square wave 'voice' oscillator. the oscillator's timing capacitor is hooked up to 10 capacitor-bank switch that is controlled by an LM3914 chip. the LM3914 chip is designed to be used as an analog level meter. there is one analog input, and 10 outputs for driving LEDs. i had originally bought these chips with the intention of using them as sequencers, but soon ran in to the issue of the 10 outputs overlapping with each other. there are lots of other creative ways to use these chips too though. my design was inspired by a schematic i had seen of an LED level meter being used as a Comb-filter. a small capacitor would be connected to each output. the other ends of the 10 capacitors would then be connected to the timing capacitor terminal in the oscillator circuit. the higher the input voltage to the LM3914, the more capacitors are sourced. this effect creates a very crude transposing/staccato sound up and down 11 octaves in total. additionally the 'voice' oscillator can pitched lineally. controlling the pitch and the transpose parameters can be done using either the X axis of the second joystick(CV-1), or the slide pot(CV-2). there is a switch that will swap the two parameters between CV-1 and CV-2. 
The square-wave voice is sent through a frequency divider. four sub-octaves are then mixed back together with the 'wave-shape' joystick. the output is sent through a vactrol-based VCA before the output stage. the VCA i set by the 'VCA threshold' slide pot. the circuit also includes an LFO. the LFO is a triangle wave, but can be set as a sawtooth, or reverse-sawtooth wave at double the LFO speed using the two 'LFO Shape' buttons. when both buttons are pressed, the LFO is a narrow pulse-wave set to the LFO's maximum speed. the LFO can be set to modulate the pitch, transpose, or VCA of the 'voice' oscillator. if the LFO is engaged, the hardware of the parameter it is set to will act as a threshold control for the LFO. the LFO's rate is set by the Y axis of the second joystick. 
 Additionally, there are four CV inputs for VCA, CV-1, CV-2, and LFO rate. when the CV inputs are in use, the respective parameter's hardware is used to set the CV input threshold to the parameter. CV-1, CV-2, and LFO rate are all vactrol-coupled. because each vactrol's response varies, some level of filtering should be expected. inputting a square-wave LFO to a vactrol-coupled CV input will likely produce rounded edges. this kind of gives it character though. after all, these are not intended to be used as precision test equipment. there is also a buffered LFO CV output jack. with 'modular-synth' being as popular as it is today, i thought that this stuff might appeal to people starting out. 

The noise box also has a line out jack, a 9 volt DC input jack, a 9 volt battery compartment, a power switch, and a pretty loud built in speaker. the DC input jack is regulated and reverse-voltage protected, so it can handle anything between 9 and 18 volts. the circuit has a lot of LEDs in it, so you would think the current consumption would be pretty high, but actually, at full volume the entire circuit only draws about 70ma from the battery. 
 The prototype took about three or four weeks to design and build. once it was finished, i redesigned my circuit board, and built three more. each one has its own color scheme. depending on whether or not these first four sell, i may build more in the future. for now though, i am going to experiment with some other circuit designs. my plan is to build small batches of different circuits, all built with the same enclosure with modular inputs and outputs. until recently, i had been working on an idea to use the ISD1820 voice sampler chip for the next series, but unfortunately those ISD chips are just not good enough... oh well, i'm sure i'll think of something else. any suggestions?

IVAN

This commission started near the beginning of January of 2014. it took approximately three months to design and build. it was only supposed to take two months, but was realistically impossible for a project of this scale. in the past, projects of this caliber have taken between six and twelve months to complete, so i guess i don't really have much to complain about. i have been playing catch-up ever since though. i haven't had much time to post the details on it until now. i will have to make this one short.
The criteria for this synth was based around a few key aspects; dark, warm, heavy, deep, and Russian. with those themes in mind, i began designing the enclosure first and foremost. once the buyer agreed on the final design, i got to work converting the drawing into three dimensional parts that could be laser-cut, then assembled.
Once the enclosure was cut, assembled, and dry, it was time to give it tolex. the tolex was a bit tricky this time around. i had run out of my preferred brand of contact cement, and had to settle for some really nasty industrial grade stuff. the industrial stuff is great if you need to laminate 100 square feet of linoleum, but for my needs the non-flammable DAP is the way to go.

While waiting between assembly processes, i began designing the circuits for the synth. the synth would be based around Kevin Godwin's PICsynth V4 chip. the chip is a four octave mono-synth with two oscillators that can be detuned. it has three types of portamento and an 8-step arpeggio with three modes and variable speeds. the PICsynth really takes all the BS out of building or modding a keyboard. it is straight forward and works well, so it was an easy choice over reverse engineering a toy organ to get similar results.

Most of the the things i have built have a lot of the characteristics you might find on more traditional synths, so i always make an effort to emphasize unusual characteristics that are not as common. for this synth i wanted to bring in after-touch. after-touch basically means that the keys will be pressure sensitive. the harder you press, the deeper the modulation. the modulation signal can then be shaped and sent to control any number of the synth's parameters.  i had built a pretty excellent after-touch system on the yamaha PS-3 build, and i wanted to go even further with this one. 
 
once the keyboard and after-touch sensor were tested and working, i began designing the signal path for the two square-wave oscillators coming from the PICsynth chip. i created two identical signal chains that would meet up at the end of their respective modulation stages to then be sent to some more modulation. each square-wave voice starts out by being divided into four sub-octaves, then mixed back together with a 'wave-shape' joystick. after that, the signal would be sent through a 'digital-distortion' circuit based around the holtek HT8950 chip. the intended purpose of the ht8950 is to be used as a robot voice changer or voice pitch changer. it does a terrible job at both. however it excels as a tunable distortion/bit-reducer. in my opinion it is much more useful than the traditional method of running the audio through an analog-to-digital converter alone. the bit-rate can be tuned lineally, then transposed to 2/1, 8/5, 4/3, 1/1, 8/9, 4/5, or 2/3. both the bit-rate and transpose functions can be set manually or with the after-touch. the 'digital-distortion' stage can also be mixed with the initial signal or completely bypassed with the wet/dry mix, or 'distortion bypass' knob. after the 'digital-distortion' stage, the signal is then sent to the 'chorus' stage. this stage basically acts as a delay with no feedback. the circuit is based around the pt2399. the delay time can be set by the 'chorus threshold' knob or by the after-touch. the delay time also has a dedicated LFO. while engaged, the 'chorus threshold' knob sets the depth of the LFO to the delay time. the LFO rate can be set with the 'chorus LFO rate' knob, or by the after-touch. like the distortion stage, the chorus stage too can be mixed with the initial signal or bypassed with the 'chorus bypass' knob. after the chorus stage, the signal is sent to the filter stage. the filters are OTA based 12db low-pass filters. each of the two voices has a dedicated filter, attack/decay envelope, initial cut-off control, envelope depth control, and envelope LFO. while engaged, the 'envelope LFO' rate can be controlled by its respective knob or by the after-touch. after the filter stage, each voice is sent to its own VCA. the two VCAs share one common ADSR envelope, but each voice has its own envelope depth control. like the filter stages, the VCA too has an 'envelope LFO'. the rate can be set by the 'VCA LFO rate' knob, or by the after-touch. after the two signals are mixed by VCA stage, the combined signal is sent to the 'effect' stage. the effect stage is a modified Behringer delay pedal. originally the pedal was set up as an usual digital slap-back delay pedal. the pedal employs the coolAudio V1000 multi-effects DSP. the chip is controlled by an atmega chip with a custom Behringer program to utilize some of the DSP's delay features. there are four CV inputs to the atmega chip to control Level, Feedback, Time, and Mode via 50k potentiometers. initially i thought it would be 'cool' to send CV's to the inputs to control each parameter, but i found the zippery response pretty off-putting. then i fried the analog input to the time CV on the atmega... i decided to disconnect the atmega and simply run the V1000 chip's presets. it has a total of 16 different delays, reverbs, and filters. trying to reverse engineer these pedals is pretty much impossible since the circuit boards are multi-layered with tiny tracings, but once all of the excess hardware was removed, the effect worked like a charm. i used a four bit rotary encoder as a mode select switch, and i replaced the clock oscillator with a 74ls124 voltage controlled oscillator. the VCO has two CV inputs; FX CV-1, and FX CV-2. each can be set by its respective slide pot, or by the after-touch. the effect stage has a wet/dry bypass knob as well. this stage of the signal path ended up being way more powerful than i expected. adding clock control to these DSPs is HIGHLY RECOMMENDED! after the effect stage, the signal is sent to the power-amp that drives the built-in speakers.
The after-touch section is similar to that of the yamaha PS-3 mod in some ways. like the PS-3, it has multiple channels, each with its own shape, depth, and direction controls, but this synth has four channels instead of the PS-3's three. each channel can be set to one of four control parameters, so the after-touch can control up to four parameters at once. each of the four channels also has its own 'joy/key' switch to select between the after-touch sensor input, or the joystick sensor input. channels A and B can be set to the Y axis, and channels C and D can be set to the X axis.
Once all of the circuits were working, it was time to design and cut the circuit boards using a CNC engraver. after that they would need to be assembled and wired up. while assembling the circuits and wiring up all of the hardware, i used cardboard mock-up face plates to hold everything together. if i had used the final-draft face plates, they would have likely become damaged by the intrusive process of connecting and debugging all of the hardware. once it was all working properly, then i could focus more on the design of the interface. the buyer had one more request that came in just in time, because i was just about to cut the final-draft face plates. he asked if it was possible to add an audio input for processing external signals. seemed simple enough so i said sure! unfortunately it was a pretty difficult circuit to build 'in-circuit'. the input would take the place of OSC2 when engaged. unfortunately all of those signal processing circuits that i had already built were really only set up for nice clean waveforms. plugging in guitar or other audio sources sounded pretty weak in comparison... after spending a couple of weeks on it, i came to the conclusion that there was no way to make it sound better without completely overhauling the signal path. and really, the quality wasn't so terrible. just not ideal. i explained to the buyer that it was doable but it would be limited, and he didn't mind, so i added it in. i also included an input volume control and an analog level meter so that the signal can be leveled before plugging it in to the signal path. 
Once i was sure that all of the circuitry was finished and working, i then cut the face plates. i chose white and red text on a gray background. once the face plates were cut and dry, i swapped out my now very tattered cardboard mock-up panels with the final-draft. from that point everything seemed like it was coming to a close, but there was still a lot of little things to do. i still had to cut the back panels, the bottom metal plate, and i still had to laminate and stain the wood cheeks that i had been neglecting.










 













The back and bottom plates were pretty easy, but the cheeks gave me real problems. unfortunately i didn't wait long enough for my industrial grade contact cement to set up on the surfaces of the cheeks and wood veneer before i pressed them together. they were still wet a couple of days later when i applied the stain. a couple of days after that i coated the cheeks in polyurethane. it seemed like it went on just fine, but when i came back a few hours later, giant bubbles had formed underneath the wood veneer. i sanded all of the polyurethane off hoping that i could salvage the cheeks. actually, only one cheek was effected, but the wood grain matched symmetrically, so losing one meant losing both. unfortunately it was a losing battle. the stain and the contact cement had combined and somehow dissolved big gooey areas in the veneer. i tossed them, and i tossed that nasty contact cement. well actually all that stuff is still in my basement, but you know what i mean. i laser-cut some new cheeks and headed to Woodcrafters for some more veneer. this time i got some red oak. it's not as subtle as the cherry wood i used the first time. in fact, it's downright DISCO! ok ok, so the next batch came out great. this time i just used good old wood glue and a impromptu press made up of all of the heaviest things in my house. after staining and polyurethane, it was finally looking done. i kept it for about a week or so to make sure there were no other bugs before sending it off to the buyer. all that was left to do is write up an eight page user manual...
 Goodbye Ivan. you will be missed.