Zulko / pianoputer

Use your computer keyboard as a "piano".
http://zulko.github.io/blog/2014/03/29/soundstretching-and-pitch-shifting-in-python/
Other
324 stars 92 forks source link

Idea: Try mapping the keys to a stenography machine layout. #9

Closed ki4jgt closed 3 years ago

ki4jgt commented 6 years ago

Sounds weird but I think there'd be a better reception to this -- especially if you knew how one worked. the idea is to be able to press all the buttons on the machine at once. So, you could arguably get better playing power from the layout.

spacether commented 3 years ago

Is there such a stenography layout for a piano? It sounds like you want a dvorak layout but for most common piano keys or intervals. That sounds possible and like it may be a niche usage. How hard would it be to learn? Can you clarify what you were thinking here? You are welcome to submit a new keyboard layout in a PR if you want. If I don't hear from you in a couple of weeks I will close this issue as it is very old.

ki4jgt commented 3 years ago

I made one in Java a while back, but the tone generators wouldn't die fast enough, which caused a memory overload in the browser. Here's the link: https://codepen.io/ki4jgt/pen/vrLgPy

Doing this would allow people to play a chord by holding down 3 keys in a row. It's why I came up with the idea in the first place. It's literally a full-fledged piano.

spacether commented 3 years ago

Ah, I kind of understand what you did. Your layout allows for playing music which does not contain any sharps orflats. It uses 8 keys for the left hand, 8 for the right hand and you use modifier keys to shift octaves. If you want to submit a PR with this layout you are welcome to. Some things to consider:

ki4jgt commented 3 years ago

In stenography, your fingers go between the keys of the top row, and the bottom row, so you can press all the keys on the keyboard at once by pressing down in the middle. Your thumbs sit between the AO and EU keys. So one should theoretically be able to hold down any combination of keys, without the need for them to be sticky.

The issue is quite old, so I cannot remember my plans for the layout, but I believe I was going to use the number bar (a long modifier key at the top of all steno machines, which changes the base keys into numbers, instead of words, to play sharps and flats. On a regular keyboard it would actually be the strip of numbers.

I had this idea because of Plover, an open source program which allows one to convert an NKRO keyboard into a stenography machine.

I'm actually trying to build my own now. For some reason, your response has awoken the desire to redo this project in Pyglet. I just don't know how to generate the tones, and keep them going from keydown to keyup.

spacether commented 3 years ago

Ah. If you want to build it separately keyboardlayout may still be useful to you. What do you think about adding a pyglet graphics backend to https://github.com/spacether/keyboardlayout?

ki4jgt commented 3 years ago

I love this, and may actually use it. I was looking to overlay a keyboard onto my Stiano (I actually built this idea yesterday) project: https://github.com/ki4jgt/Stiano for new users to visualize what they're doing.

Just found out Pyglet has synth, so I'm going to be removing the Notes folder tonight. And transitioning to a pure synth sound. And then I'm thinking of using a 7z file format, but changing the extension for displaying sheet music onscreen.

But yeah, I'd love to incorporate your keyboard into my project.

spacether commented 3 years ago

Is it okay if I close this ticket? It sounds like you are building your suggestion in a different project.