Coder Social home page Coder Social logo

Comments (7)

spacether avatar spacether commented on June 14, 2024

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.

from pianoputer.

ki4jgt avatar ki4jgt commented on June 14, 2024

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.

from pianoputer.

spacether avatar spacether commented on June 14, 2024

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:

  • you are mapping directly to from a keyboard key to a note value. our current keyboard file assumes that a keyboard is in ascending semitones. For yours to work, you will probably need to add a new format variant like [key_name] [letter_key_value]. We already allow lines like that but only to set where the anchor key whose audio is not transposed.
  • would you want your modifiers to work only when held down and a key is pressed like shift? Or like caps lock where when a persistent modifier is triggered everything is triggered. It would be helpful to add a modifiers section to the keyboard file describing these modifier keys
  • pianoputer would need to be updated to understand and use the modifier keys
  • to show the state of the modifier keys (active/inactive) you could use the update_key method to render the modifier key in a different color when it is active like yellow
  • also, it would be nice to describe to the user what the modifier keys are, like '+1octave' and maybe label the notes that are played 'A B C D E F G' when the keys are pressed. To do that you could update the separate keyboardlayout package to allow the overrides argument to include updated label text info for a key. To be consistent with the rest of that package, the argument could be called txt_info.

from pianoputer.

ki4jgt avatar ki4jgt commented on June 14, 2024

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.

from pianoputer.

spacether avatar spacether commented on June 14, 2024

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?

from pianoputer.

ki4jgt avatar ki4jgt commented on June 14, 2024

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.

from pianoputer.

spacether avatar spacether commented on June 14, 2024

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

from pianoputer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.