Terpstra Keyboard

1 year ago (terpstrakeyboard.com)

For those who haven't ever gotten into microtonal and other non-standard tuned music before, it's a really interesting space. I would highly recommend checking out Kyle Gann's album Hyperchromatica (https://www.youtube.com/watch?v=gbT9oRbu3h8&list=PL1IsImnKxK...), which has a pretty wide variety of pieces/genres, showing the potential of nonstandard tuning. It takes a bit to get used to it but there are brand new colours and emotions that open up here IMO. Definitely worth checking out!

  • Technically Bach was writing for microtonal music - his well tempered clavier was written to show how songs need to be played in the correct keys to sound right. He was against the systems of the day where some keys could not be used, but his preferred system had each key usable but sounding different. Playing them on a modern equal tempered instrument fails to capture what he was trying to show.

  • Since this is HN, I'll point out that algorithmic music and microtonality go especially well together. In fact, shameless plug: I wrote an entire album this way, and it's open source:

    https://github.com/pac-dev/AmbientGardenAlbum

    While it's technically completely microtonal, I'll admit that most of the tones closely resemble conventional 12-tone equal temperament. Maybe that makes it more approachable, but I fully intend to go harder in that regard for the next album.

  • To add yet another example for those looking to try out microtonal music, Sevish's track Gleam[1] is upbeat/poppy and surprisingly palatable. It explores the crunchy textures of microtonal while resolving to familiar pop cadences and helped bridge the gap for me to start enjoying the spectrum of microtonal harmony.

    [1]: https://www.youtube.com/watch?v=l9wINwlgxRU

This is cool!

I want to try to build a hardware midi keyboard using mechanical hall effect switches like this: https://mechanicalkeyboards.com/products/wuque-studio-dash-5...

There's a few physical keyboards out there but many are super super expensive.

Amusing things to do...

  * Type things and listen to the various tones.  I'd go for a little app that just let me do this day to day.  I'd probably find it annoying pretty quickly but it would be interesting turned down low.

  * Use your browser's zoom to go way out.  It has no problems offering you notes way beyond the ability of you to hear it let alone your computer from playing it.

Lots of good info in OPs article and this thread, and good band/classical tradition suggests, also.

I've been listening to a lot of 21st century string quartets, Ben Johnston (student of Partsch), Caroline Shaw, Garth Knox, Kevin Puts and trying to figure out how they notate them. Also spend time on fretless bass/guitar, pedal/lap steel doing ... stuff.

Fun to mess around with. The qwerty keyboard maps nicely (for the default tuning you gave anyway). I found I wanted to be able to hold a chord on the keyboard and play a melody with the mouse, but the system only responds to either the keyboard xor the mouse. Any chance it could be made to work with both at the same time?

Now the Lumatone

https://www.lumatone.io/

Mike Battaglia plays Scarborough Fair in 31-tone equal temperament

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

I've been trying to design a keyboard that can be used with the feet - something that I can play like dance dance revolution, while playing something else with my hands (mandolin), thus making me a one man band. Figuring out what a good layout would be is the first step and so far everything I've thought of either lacks useful notes, is too big to reach useful notes, or the keys are too close together. If anyone has ideas on how to do this I'd love help. (or better yet do this as I don't have must time to work on it)

  • An organ pedalboard MIDI controller would be an off-the-shelf solution albeit expensive. You could hook it up to a drum rack in a DAW in order to remap the pedals to a useful layout.

    With a foot activated MIDI controller the number of keys will always be rather limited. Therefore, I think that the virtual layout should be customized to the music you play or even for each song. E.g. you could only map notes of a certain scale and range in order to save space.

    If you consider building something custom; I have found that outputting to hardware MIDI from an Arduino is delightfully simple. (The hard part on my own project is finding motivation for figuring out how to read velocity from piezos and isolating vibrations.)

    • Organ pedalboards require sitting down and so are not really what I want.

      The number of keys is the real problem - I don't want to be playing a single note in one octave, I want to play my chord progression and that means I need separate buttons for the major, minor, 7th (which 7th...) for the chords that go with the song.

      1 reply →

  • Have you looked at existing MIDI foot controllers? E.g. Behringer FCB1010 or Yamaha MFC10 or Roland FC-300.

  • I've messed with using a 9-button dance pad as an impromptu midi controller - gives you a full octave and you use the center square as a "rest", but I can't imagine trying to use it in a live setting - it would be like trying to play a guitar in a bouncy castle.

    • That idea was my inspiration. However I want more than 9 notes. In particular I want major, minor, and 7th chords based as well as the root note.

      3 replies →

  • I'd probably be thinking foot pedals and chording if I needed a lot of options.

I'm impressed how responsive the keys are! Will definitely be checking out on desktop if I can see how the audio rendering code works (unless someone here already knows). I presume the audio synthesis API and ontouchstart but maybe there's something clever in addition like prerendering the audio samples rather than synthesising them on press

Maybe it also helps that I've got a headphone jack plugged in instead of the Bluetooth I'm used to from listening to things during the day, but even so, my touchscreen just doesn't feel this responsive normally, including in games. It's on my list of things to check the delay of, but since my phone's 960 fps camera is the equipment I use to check that, it is a bit tricky

Edit: ontouchstart calls noteOn method https://github.com/wcgbg/terpstrakeyboard/blob/03d526a0ed5c7...

This eventually calls into audio api start with 0 delay https://github.com/wcgbg/terpstrakeyboard/blob/03d526a0ed5c7...

The data to play was retrieved from the server (based on the instrument you selected) and parsed ahead of time https://github.com/wcgbg/terpstrakeyboard/blob/03d526a0ed5c7...

It loads samples at four frequencies and plays the nearest one at the appropriate rate (proportional to the target frequency) https://github.com/wcgbg/terpstrakeyboard/blob/03d526a0ed5c7...

The settings.audioContext variable is simply an instance of the web audio API as expected (with a fallback to support Safari/webkit) https://github.com/wcgbg/terpstrakeyboard/blob/03d526a0ed5c7...

This gainNode it's connecting is just about playback volume it seems https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioCo... and "audioContext.destination", MDN says, you can think of as a speaker device

So nothing too special here: of course preloading server data but then simply creating a new sound source during ontouchstart is enough. I guess delay in other software comes from the extra cruft they have such as big libraries (and Bluetooth, in the cases where I use that), not from any actual delay in touchscreen or audio rendering

Fun fact, anyone with a surname that ends with the -stra or -sma suffix has their origins in Frisia [0], a region in current-day Netherlands and Germany that retained their independence in the Roman era. Terpstra specifically refers to someone living on a terp, an artificial hill (because there's no hills in the Netherlands lololol) that people would live on or retreat to with the intermittent floodings.

This in turn is why the Netherlands is so big when it comes to dairy and cheese; grass was one of the few things that would grow consistently and survive the floods, cows eat grass, cheese and butter can be preserved to last through winter, etc.

[0] https://en.wikipedia.org/wiki/Frisia

  • And you will forever have your name mispronounced by English speakers that can’t wrap their tongues around the -sma or -stra ending.

    Things like TerpSON, TerpSmith, Terp….

    One time while voting the lady working there butchered my name 8 times, she literally could not get it right.

    • To be fair to an English speaker reading your name from paper: some native English speakers are taught to read by recognizing words by their first letter and their shape, and skipping the word to later fill in the blanks when they don't recognize the word. The lady may have simply never been taught how to sound out unfamiliar letter combinations, and may have been trying her best to make sense of the unrecognizable mess of letters she saw in front of her.

      https://www.apmreports.org/episode/2019/08/22/whats-wrong-ho...

      4 replies →

    • > she literally could not get it right

      Eh, they get their revenge. As any Australian of a certain age can tell you TelSTRA could not get it right, for any value of right, without expending an equivalent effort to moving a mountain.

  • Very interesting. The only Terpstra I knew of before this link was Niki Terpstra, one of only three Dutch winners of both Paris-Roubaix and the Tour of Flanders.

  • Another fun fact, from Wikipedia, the name Frisia "stems from Latin Frisii, an ethnonym used for a group of ancient tribes in modern-day Northwestern Germany, possibly being a loanword of Proto-Germanic *frisaz, meaning "curly, crisp", presumably referring to the hair of the tribesmen."

    In German Frisur, and in south slavic languages Фризура, means hairstyle, which is also related to the english word Frizz

  • I think this is a reference to the muse Terpsichore, though?

    We also have at least one -stra river in Norway, Vinstra. Don't know if anyone has it as last name, though.

First thing I did when I started playing with LLMs was vibe code a bunch of shitty virtual instruments. Roll your own, folks! Good fun.