Add MIDI to Yamaha cp30


Hello everyone,
I want to use an Arduino to add MIDI to my Yamaha cp30 whiteout compromising its current functionality. I want to do this because I love the feeling of the keys and would love to use them to trigger a wider range of sounds.
The cp30 is a 70s electronic piano that is essentially an analogue synth. My idea is to tap directly into the leaf switches on the keys but I’m not sure if that’s possible. So my first question is:

Can I just read the leaf switches with the Arduino, even though they are used to trigger the instruments built in system at the same time? Or will there be some kind of interference? Also will it make a difference if the instrument is switched on or off?


This is what the switches look like

The other thing is that I want to preserve the velocity sensitivity. The Idea is connecting inputs to both ends on each leaf switch and measure the time between start of press and end of press to calculate the velocity. This means that I need a lot of inputs. The instrument has 76 Keys, each key needs 2 inputs so i somehow need 152 inputs. So the questions are:

Is this even feasible using multiplexing?
Is delay going to be a problem?
If using matrixes, can I keep some sort of polyphony?

Here you can find the circuit plans if needed:

http://manuals.fdiskc.com/tree/Yamaha/

I’m thankful for every hint/ tip/ conversation :slight_smile:

Images are taken from: Reparatur: Yamaha CP30 EPiano

What you want to is very likely possible - maybe much easier than you expect, but giving vague links to hundreds of files is unlikely to get much support.

If you can post links to specific diagrams of the keyboard and keyboard controller, it will start a much more productive conversation.

Thanks for the feedback. I put the wrong link in the post and corrected it but unfortunately it only leads to downloadable pdfs. I can’t seem to post pdfs directly so here are some screenshots of one of the modules that contains the switches for the keys. I think this should be the only thing needed.



If you’re lucky, that G7 board * will aggregate all the keyboard data into a form you can sniff.

If not the G7,* the keyboard codes will exist around there, and you may be able to tee it off without affecting the original functionality.

If you have an oscilloscope and some understanding, you should be able to probe around to find some data stream from the keyboard.

  • this applies to each octave G1 through , there may be a module further along, which aggregates all the Gx boards.

Interesting, so that should be the point right before the first sound generating module right?



This one (F) is the one where everything comes together. Do you have any idea where to look specifically? This is quite new terrain to me

i’m probably getting out of my depth now, because these units often use proprietary short cuts and clever techniques to perform various functions.

One really needs to be hands on with a scope to decipher what they’re doing.

Luckily, you have quite good schematics, you may find a ‘theory of operation’ document somewhere which might help a lot.

Good luck, keep us posted !

I couldn’t get my hands on a oscilloscope yet but I found this interesting bit about the chips that combine the octave information. Don’t know what to do with it though:

How would you build a fully polyphonic and touch-sensitive electronic piano in the late 1970s? Yamaha based the design around a custom 15V hybrid analog/digital IC, alternately called the YM253 or YM25300. The chip has 12 analog input pins, which each accept a control voltage from one key that represents key velocity and sustain. It also has one digital input, for a high frequency clock signal, presumably around 2 MHz in the top octave. Taking a key input, it divides the clock signal to derive a frequency, amplifies it according to the voltage on the input, and generates two separate audio signals called "Attack" and "Sustain" (or "A" and "S"). A single "A" pin and a single "S" pin carry the audio for all 12 keys in the octave. The chip also divides the clock frequency by 2 and provides this on a digital output pin, to supply the chip for the next octave down. On each per-octave circuit board, the "A" and "S" signals are mixed together and filtered in various ways to produce the instrument's four tones. Yamaha put all of the filters on the octave cards, but following the G2's architecture I have put the P1 and P2 filters in the top half of the patch, and P3 and H1 in the bottom half.

Yamaha's CP-30 service manual reveals the harmonic content of the A and S outputs, before filtering, when 5V is applied on a keyboard input pin. On the YM253, "S" is a 75% pulse wave, and "A" is a complex pulse wave you could call "[00111101]" (I drew this on a sequencer that runs at audio rate). The second voice of the CP-30 is produced by a variant of the chip called the YM252, where "S" is an 87% pulse wave and "A" is [01111101]. The bottom octave of the CP-20 uses the third member of the family, the YM25301, but I don't know how it differs from the other two. The service manual also gives the amplitude for the A and S signals at 5V input; I assumed that the relative amplitudes vary with the input voltage and decay time, but that the waveforms are constant.

https://electro-music.com/forum/post-447676.html

And the other interesting thing I found with a multimeter:

Right before the conversion chip the voltage for each note sits at 0.25. When the key is pressed it jumps down and goes back up to 0.24 until the key is released. So at least i have all the velocity information for each note in one input if all else fails.

Ok, I'm not going to be very much help. I'm just a hobbyist with electronics. But I have the CP-30 and I rebuild Kurzweils to just keep them going (mostly keyed repair). My next post will have my email in it and I will delete it after a day or two.

raytclark@netzero.net

Hi! I am considering buying a CP-30, and am wondering about the viability of this project, as I too would like to be able to play more varied sounds with it. Wondering if you were able to get this to work, and whether you tied in to the key switches on the D* boards, or pulled control voltages later downstream.

Thanks!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.