Somewhat related: textual-paint¹ which uses the same interaction library, and was recently discussed here². I'm noting this purely because I'm enjoying the increasing frequency of rich³/textual⁴ posts, it hints at a latent desire for computing closer to how <i>I</i> enjoy it ;)<p>¹ <a href="https://github.com/1j01/textual-paint">https://github.com/1j01/textual-paint</a><p>² <a href="https://news.ycombinator.com/item?id=36859880">https://news.ycombinator.com/item?id=36859880</a><p>³ <a href="https://github.com/textualize/rich">https://github.com/textualize/rich</a><p>⁴ <a href="https://textual.textualize.io/" rel="nofollow noreferrer">https://textual.textualize.io/</a>
AIUI you need to open your terminal in raw mode if you want to get the full keypress/keydown events. But you'll have to parse the scancodes yourself. Very doable and kind of necessary if you want to do a terminal app here =D There's probably a library that can help you. Good luck!
Funny, reminds me of the old (~1990) MS-DOS based "FM Intelligent Organ" distributed with Sound Blaster cards (cf. <a href="http://www.vgmpf.com/Wiki/index.php?title=File:Sound_Blaster_-_DOS_-_FM_Organ.png" rel="nofollow noreferrer">http://www.vgmpf.com/Wiki/index.php?title=File:Sound_Blaster...</a>). Nice to see people doing things in terminals :-)
I was hoping this was an open-source physical model of a piano.<p>Pianoteq has been around for 17 years -- as long as patents last! -- and yet open source still seems to have nothing that comes close.
Got an error trying to run <i>upiano</i> after installing <i>FluidSynth</i> via <i>brew</i> (brew install fluidsynth)<p>Had to use this technique to make it work: <a href="https://stackoverflow.com/a/75339618/5017391" rel="nofollow noreferrer">https://stackoverflow.com/a/75339618/5017391</a><p>Worked beautifully after.
Because of Linus Åkesson's recent blogs and videos I want to make a piano app that plays using "his" accordion style keyboard layout for the notes.<p><a href="http://linusakesson.net/commodordion/index.php" rel="nofollow noreferrer">http://linusakesson.net/commodordion/index.php</a>
> Note that since the terminal doesn't really support key press and release events (it receives a stream of characters instead), there is no way to support two key playing at the same time with the computer keyboard only.<p>Great project, but this seems like a major limitation. Why insist on doing this inside a terminal, when there are many other environments where this is not a problem?