Skip to content

Cybrid - a DIY MIDI controller with grand piano action

RIP

AlexanderBunt I now get some usable values, but the last 1cm is not working fine (value stays a bit the same or is even going lower). I think it's because of the wrong resistors, but I don't know…

Everything that others say is right, but let me add that you might be experiencing a characteristic of the sensor for which your only solution might be switching to a different one. The data sheet that @CyberGene posted show the "flattening" at the last 0.5mm from the sensor, but in real life testing (which I haven't posted yet, but I will post it eventually here) I have experienced it happening at much longer distance. @JayKominek has experiencing it too at around 5mm, as shown at https://pianoclack.com/forum/d/289-scanning-speed-and-velocity-mapping-of-cybrid/116 -- so if your "10mm" is eyeballing the distance while moving one hand and looking the screen, what you are seeing is consistent with what everybody else is seening.

This is a unavoidable characteristics of the design of these sensors, due to the parallax of the LED and phototransistor being separate by a distance. The CNY70 have that separation large, so it's more affected than the QRE1113 and EAITRCA6 which have the distance much smaller. But even these are affected by the same problem, just at much closer distances. See here for the raw data on the 'CA6 sensor (and python script to analyze it) and/or https://pianoclack.com/forum/d/289-scanning-speed-and-velocity-mapping-of-cybrid/122 for a plot and discussion: as you can see most peaks do have a "hole". It's not the hammer bouncing back-and-forth, it's the sensor reducing its output at very close distances. We have to design the software and/or the mechanics (e.g. a stop to prevent hammers going too close to the sensors) to live with it.

If you look in @JayKominek github repo you'll find these mechanical "stops" which I plan to use (scaled down in dimensions) for the smaller sensors I will use. @JayKominek since we are discussion this, I actually have concerns that the "holes" in your things will be too big for the size of the hammers and that it will eventually cause too much wear on the hammer sides. Moreover it looks to me that it'd make alignment more critical. Have you thought about all these issues? BTW, should we make a separate thread for this subject?


AlexanderBunt

RIP I made a new thread called 'Hybrid Carillon in the making'…


JayKominek

CyberGene Or for 3.3V power, R = 3.3 / 0.02 = 165 Ohm.

That's not right, or at least not complete. The LED has a forward voltage drop, of probably 1.25V.

So the resistor doesn't see 3.3V, it sees 3.3V - 1.25V = 2.05V. So R = 2.05/0.02 = 102.5 ohms.

Using 165 ohms will get you 12.4 ohms. Assuming the LED actually has its nominal forward voltage at 20mA, which, who knows. Probably something close, but not exactly.

https://learn.sparkfun.com/tutorials/resistors#current-limiting

(LED Vf can vary with current, temperature, age, and probably phase of the moon. That's why constant current circuits are superior for driving LEDs.)

CyberGene It means the transistor acts as a resistor between its collector and emitter.

pedantically: That'd be the way to think of a FET, these act more like BJTs.

RIP @JayKominek has experiencing it too at around 5mm

I think that's a side effect of the extremely white target I was using causing the phototransistor to conduct far more than expected. It was exceeding my amplifier's capacity to maintain the virtual ground, which held the Vce high enough. So we were moving around the Vce/Ice graph in weird ways. My take away was to keep Vce high; >=2V, and to point the sensor at felt, not bright white surfaces. I'd need a more complicated setup to confirm all of this. I think I might invest in some more test equipment.

I think doing so keeps you in a regime where the Ice/distance graph looks like the nice one we "want".

So I'm not worried about that. I'll be increasing Vce to 2.5V on my next board rev, but that's out of an excess of caution.

I tried to touch on this in some more docs I wrote yesterday. https://github.com/jkominek/piano-conversion/wiki/Analog-Stage-Theory-of-Operation

RIP @JayKominek since we are discussion this, I actually have concerns that the "holes" in your things will be too big for the size of the hammers and that it will eventually cause too much wear on the hammer sides.

They're exactly the size of the CNY70, to the point where my latest prints of the protector actually snap onto the PCB and stay in place through friction. Making them smaller would be challenging. I suppose i could add some overhang around the top of the CNY70. Probably more useful for the smaller treble hammers. B7 and C8 might fit in the hole existing holes. But A0 isn't.

RIP Moreover it looks to me that it'd make alignment more critical.

My "hammer stop rail" thing holding the sensors is positioned at an angle to roughly keep its middle lined up with the impact line of the hammers. Beyond that, I just kind of try to line them up with the hammers by eye, and it seems fine. I've only been putting sensors on the bass hammers so far since that end is closer to my desk. With their rotation, they're the least amenable to this whole process, and it's been going ok. I have designed a new board which rotates the sensors 12 deg to match the hammers. I expect that'll make life nicer.


CyberGene

JayKominek thanks, I didn’t even realize about that forward drop, learned something new.


RIP

JayKominek Del Vento @JayKominek since we are discussion this, I actually have concerns that the "holes" in your things will be too big for the size of the hammers and that it will eventually cause too much wear on the hammer sides.

They're exactly the size of the CNY70, to the point where my latest prints of the protector actually snap onto the PCB and stay in place through friction. Making them smaller would be challenging. I suppose i could add some overhang around the top of the CNY70. Probably more useful for the smaller treble hammers. B7 and C8 might fit in the hole existing holes. But A0 isn't.

Del Vento Moreover it looks to me that it'd make alignment more critical.

My "hammer stop rail" thing holding the sensors is positioned at an angle to roughly keep its middle lined up with the impact line of the hammers. Beyond that, I just kind of try to line them up with the hammers by eye, and it seems fine. I've only been putting sensors on the bass hammers so far since that end is closer to my desk. With their rotation, they're the least amenable to this whole process, and it's been going ok. I have designed a new board which rotates the sensors 12 deg to match the hammers. I expect that'll make life nicer.

Sorry I probably explained myself wrong, let me try again. I suppose the CNY70 will be about 5mm "deep" inside the "holes" of your hammer stop rail. My hammers are 10mm wide and the CNY70 in the direction you are placing them are more than 7mm wide. So when the hammer will be hitting the stop rail, it will have less than 1.5mm on each side. If that is correct:

  • You will have to align everything with 1.5mm accuracy, which is tedious but ok for individual hammer sensors, but it can be problematic if you use the 4x boards, since you need to compromize to align 4 sensor in one board (or at least so it is in my action which does not have the hammers/keys so perfectly spaced)
  • Even if the problem above does not apply to your action, out of 10mm width of hammer felt, you are using only the most weak 1.5mm on each side to stop the hammer (and even less in one side if the alignment becomes suboptimal). With my understanding of hammer felt, I'd expect substantial wear and tear in this situation.

Obviously it's possible that I totally misunderstood your design 😀 so if you'd like to continue this discussion perhaps you can post a picture of a hammer about to hit the stop rail (enough distance left to just glimpse the "hole" where the CNY70 is).

JayKominek Making them smaller would be challenging.

I meant: use the smaller sensors and hence make the hammer stop rail smaller to match those sensors, so the "holes" will be substantially smaller almost to the point of irrelevance for the hammers hitting them.


CyberGene

@gzpiano I hadn't followed your project at all until now, but I noticed @RIP mentioned it in other discussions (and I decided to reply here since Del Vento is a bit strict about off-topic in any of his discussion, nothing wrong at all with that!) and just watched briefly your progress on your YouTube channel. You've made quite a progress, I need to familiarize myself more with your exact solution which I believe is based on ADC-s (similar to Del Vento and Jay) but so far all looks excellent. Couldn't help but notice some influences from Cybrid too 😀 Like e.g. rail placement and shape, the tiny sensor boards, etc. I hope you don't hate me for these if they turn out to be sub-optimal and if you were thinking I chose them for a reason. Nope, there was no reason, only whatever first happened to appear in my head as a possible solution, never really considered alternative placements/aproaches/solutions... 🤦🏻‍♂️

Cheers! 🍻


gzpiano

@CyberGene

Thanks!

Yes, Cybrid was/is a big inspiration (linked on my github page).

I like individual sensor boards because can use different actions. Good decision!

Presently 24 keys working and putting together a video with details.

40 keys + triple pedal in progress, as time permits.


Dean Coyle

I would like to have go at making Cybrid, in the pcb files, is there one for the holes?
I am new to this, so I am sorry if this is a stupid question.




Pete14

Kudos to CG, and yes, I forgot to mention (earlier) that other than talkin’ pivots, samples, and actions, we have a few geniuses ‘round here that are worth their weight in gold.

Keep in mind that by ‘few’ I mean two: CG & Del Vento!

If anyone feels left out of the genius club, please do send me your resume, but keep in mind that ‘these two’ built their own hybrids, so don’t even bother if your achievement(s) top at “I made a bench,” for that will not get you into the club!

Seriously, keep it up you two!🙂


RIP

Pete14 but keep in mind that ‘these two’ built their own hybrid

Thank you and while technically true, mine still does not (yet!!) send MIDI data out for the full keyboard, only a couple of keys. Instead @gzpiano did a full keyboard (*), so I herein degrade myself to only quarter genius and raise him to full rank, for a grand total of 2.25 geniuses.

(*) yes I know you don't believe so here it's the proof, my dear unfaithful ones

https://www.youtube.com/watch?v=NmziaIYKS1g


SouthPark

I'm still waiting for a while (could even be forever) - before I (can) start. Just patiently waiting for miniature (and maybe thinner/flatter) and possibly parallel-data versions of something like THIS.

And it will likely be interacting (as a system) with other sensors. Obviously, reliability is also a consideration, as well as convenience of replacement (not just of the particular part ordered, but also replacement of the part in the piano when the need arises). Even just doing it for two or three keys for fun should be ----- fun. Also - not because I need to. It will just be for the fun and sake of it.


Johnstaf

Pete14 Kudos to CG, and yes, I forgot to mention (earlier) that other than talkin’ pivots, samples, and actions, we have a few geniuses ‘round here that are worth their weight in gold.

Keep in mind that by ‘few’ I mean two: CG & Del Vento!

Yep. 👍


Taushi

This is so impressive, but so totally out of my wheelhouse. I’d really love to build my own to my specifications, as I think the end result would probably better than what Kawai and Yamaha are doing.

I feel like I might be comfortable with the physical part, but the coding part is where my brain refuses to take part in things. 😂

Kudos to you all for accomplishing it. This may open a lot of doors, and may even get some competition that pushes the big brands to do better.


gzpiano

QuasiUnaFantasia

thanks for linking

present work is improving note-to-note consistency. Remaking all 176 sensors to get full 3.3v range. And, thinking about mechanical changes to better align sensors.

Also considering design improvements so anyone finding the open source repo would have as good chance as possible at successfully making their own hybrid piano. Or silent piano.



gzpiano

Yes that is a nice design.

For mine, flexibility was a primary goal. Resulted in one sensor per PCB so anyone can use for any key spacing. And each sensor contains all circuitry needed for independent operation.

Does make them more expensive.

I will research modifying my mainboard so it can support your sensor design too.


Mindbullets

This is amazing. What a cool bunch of projects! Thanks for sharing so much detail.


« Previous Page Next Page »