Turning a Steno machine into a musical instrument

303 views
Skip to first unread message

Jack Armitage

unread,
Oct 22, 2015, 4:41:39 PM10/22/15
to Plover
Hello,

I have a short graduate project in which my task is to repurpose a piece of technology.

My background is music technology, and one idea I'm currently assessing is to find an old Steno machine and try to power a sound engine via Plover.

I have a few questions for the group that I would be grateful for some feedback on.

1) Has this been tried before to anyone's knowledge, in this form or some other? It would be great to see how that went if so.

2) Hardware-wise, is it possible to retrofit the Stenoboard PCB inside an old Steno machine?

3) How hackable is Plover for a project like this? I saw someone made a tutor app using Processing which is really great, but it seems that it doesn't directly interface with Plover. Would this design pattern be reasonable to follow?

Any other thoughts or suggestions would be appreciated.

Thanks,

Jack

krctrans...@gmail.com

unread,
Oct 22, 2015, 4:47:16 PM10/22/15
to Plover
I can't help with any of that, but I just want to say I really, really love this idea.  I would love to be able to use my steno machine as a musical instrument!!

Jack Armitage

unread,
Oct 22, 2015, 4:48:19 PM10/22/15
to Plover
Ha, thank you. If it's feasible and I go ahead with it, I will definitely post updates.

Theodore Morin

unread,
Oct 22, 2015, 4:53:01 PM10/22/15
to Plover
Hm, one thing you might try for now is reading the log file real-time like StenoTray does. Plover tends to read only when the user releases all the keys, so your chords will sound open release, not on keypress (I think that's a good thing, personally). See this GitHub issue where brentn requests hooks for programs and hacks just like the one you are thinking of https://github.com/openstenoproject/plover/issues/269 (not resolved yet :( )

--
You received this message because you are subscribed to the Google Groups "Plover" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ploversteno...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jack Armitage

unread,
Oct 22, 2015, 5:06:01 PM10/22/15
to Plover
Ok that makes sense, thanks.

There's two musical directions the project can go in. The first is a real-time improv system – i.e. press some keys, hear some notes. In this case, I would hope to add extra sensors to the keys like these instruments have. 

The other direction is 'offline' composing, where the playhead is a few seconds behind the typist's input, which should be possible given the speed capabilities of Steno.

In the first scenario, knowing about key presses would be critical, but potentially not for the second.

Is this feature request likely to be addressed in the next few weeks? If not, I guess I would have to create a separate key logging program to augment the Plover output.

Theodore Morin

unread,
Oct 22, 2015, 5:09:24 PM10/22/15
to Plover

Hooks isn't high on my priority list, but it could be if you wanted it to be.

If you assume the user is using NKRO you can also just listen for those keypresses. Serial machines won't alert Plover on keypresses necessarily, but rather only stroke release.

Jack Armitage

unread,
Oct 22, 2015, 5:20:27 PM10/22/15
to plove...@googlegroups.com
Ok, well I don't want to put any pressure on your project, but it would be great for this project and it sounds like others would benefit too.

It looks like hardware-wise I would base it on the Stenoboard, so I would be hoping I could alter that firmware to send more information about keystrokes to Plover.

--
You received this message because you are subscribed to a topic in the Google Groups "Plover" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ploversteno/xTEVg0IexSQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ploversteno...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Jack Armitage

Owain

unread,
Oct 22, 2015, 5:35:50 PM10/22/15
to Plover
On Thursday, 22 October 2015 21:41:39 UTC+1, Jack Armitage wrote:
My background is music technology, and one idea I'm currently assessing is to find an old Steno machine and try to power a sound engine via Plover.


In a simple form, you could use a custom dictionary to translate steno input into something like Lilypond input file format (in a similar way to people who already use steno to generate code) and pipe that output in realtime into a compatible midi player like Frescobaldi

Owain

Owain

unread,
Oct 22, 2015, 5:44:22 PM10/22/15
to Plover
On Thursday, 22 October 2015 22:06:01 UTC+1, Jack Armitage wrote:
The other direction is 'offline' composing, where the playhead is a few seconds behind the typist's input, which should be possible given the speed capabilities of Steno.

Depends how you do the composing. If you compose note-by-note then note will follow steno stroke. If you assign steno strokes to multiple-note sequences eg a bass rhythm line to be repeated x times on a single stroke, then the bass can be starting to be played out while you still compose the treble. 

You may need to introduce some way of synchronising different streams, eg bars, if you want to sequentially input concurrent output, eg treble then bass clef. 

Owain



 

Jack Armitage

unread,
Oct 22, 2015, 5:44:57 PM10/22/15
to Plover
Hi Owain,

That sounds interesting as a workflow. I need to learn more about how dictionaries work (and about Steno in general). Ideally I would make it output MIDI or OSC and then ship that off to something like PureData or SuperCollider as that's what I'm familiar with, and the sound design/synthesis possibilities are quite broad there.

Jack Armitage

unread,
Oct 22, 2015, 5:48:19 PM10/22/15
to Plover
Yes, the idea of assigning phrases is one of the most interesting aspects to me, and I think you're right about event sequencing being a key feature. I'm anticipating running a master clock and possibly a few other clocks if things are happening at different times.

My ideas for the pattern generation and sequencing are somewhat inspired by live coding environments like Tidal, which I sometimes use in live performance:

Achim Siebert

unread,
Oct 22, 2015, 6:27:33 PM10/22/15
to Plover
I don't really see how this would be much different from using a standard midi keyboard then - apart from the looks of the machine and some "pre-processing" by Plover. There's so many possibilities to "translate" incoming Midi data already - e.g. in Logic's environment or in Reaktor etc.

What you get out of a steno machine is chords - same as from a midi keyboard. The only difference might be that you can hit more keys together in a controlled way than on a piano. This would need quite some serious "steno" training, though.
The firmware of the Stenoboard is available, so you could program the Arduino in it directly to give out e.g. pitch values. No need to have Plover in between the Stenoboard and the Midi or OSC processor you'll use.

I'm looking forward to see and hear the outcome of this endeavor - a "Stenophone"?

Best, Achim.

Jack Armitage

unread,
Oct 22, 2015, 6:45:40 PM10/22/15
to plove...@googlegroups.com
Stenophone - I like it!

I think you hit the nail here:

"What you get out of a steno machine is chords - same as from a midi keyboard. The only difference might be that you can hit more keys together in a controlled way than on a piano. This would need quite some serious "steno" training, though."

That's what I see as being unique about Steno, along with the dictionary system. The project is about asking what can musical instrument designers learn from the Steno scene - I already assume not all concepts will map well, but I think those that don't may fail in interesting ways that e.g Logic environment wouldn't provoke. Steno is a way of seeing typing and language, and immersing myself in that with my music hat on just feels like it will produce something fun!

I will def check out the firmware, thanks for the tip there. Even if I go down your suggested route and skip Plover, I imagine I'll still use it as inspiration for encoding/decoding input/output.

--
You received this message because you are subscribed to a topic in the Google Groups "Plover" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ploversteno/xTEVg0IexSQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ploversteno...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Jack Armitage

Steven Bhardwaj

unread,
Oct 23, 2015, 4:11:55 AM10/23/15
to Plover
Hi, Jack,

Whatever direction it takes, the project "sounds" exciting!  ;)

My favorite ideas for a realtime stenophone are 

1- integration with text-to-speech, whether chord-by-chord as described by Aziz Yemloul here, or phrase-by-phrase with sound production cued by a trigger chord or foot pedal.
2- use as a large-library digital sampler.

A big advantage over existing realtime-performance digital samplers could be that the sound library can be organized as intuitively and easily as language itself. 

I imagine a song that requires a hundred sounds to perform - it would take a long time to memorize their locations in the sampler for fluent access in performance. However, with steno, the sounds could each be given one-chord names. Let's say I'm performing a cover of Maroon 5's "Animals" song. Then my hundred sounds could be conveniently and thematically named:

"TPEURB": "fish",
"WOFL": "wolf",
"STPHAEUBG": "snake",
"TAOEURG": "tiger",
...etc

Perhaps it would be difficult to perform an entire piece with such a digital sampler being the lone instrument, especially if there's some latency in the system. But it might be a nice addition to an electronic musician's kit.

Cheers,
Steven

To unsubscribe from this group and all its topics, send an email to ploversteno+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


--
Jack Armitage

Ted Morin

unread,
Oct 23, 2015, 9:34:34 AM10/23/15
to Plover
When I was learning steno I played with this website and used the steno keys and it made some pretty interesting sounds:

https://groups.google.com/forum/#!topic/ploversteno/9NJu6XJD7go

Playing now with a much higher speed, I can find that some simple combos work pretty well. "to see me, do we he" is quite all right. "...,,,,...,,,," works quite well, too.

Maybe this could be inspiration for you. I'd say that you're going to have to find a way to make it sound good, though. Knowing that the vowels almost always get pressed (sometimes together), as well as all the combos on the left side of the layout especially (just go through ABCDEFGHIJKLMNOPQRSTUVWXYZ). Maybe blues would be a nice starting point since we're so used to hearing improvized blues all the time that it would probably sound all right.

Also to consider is that there's steno order, but you could also assign based on rows of the layout.

Hm, I'm looking into IPC in python and I think that actually giving you what strokes are happening will not be a problem. It's more the GUI that I'll have to work on (don't want to broadcast by default)

Jack Armitage

unread,
Oct 27, 2015, 6:14:23 AM10/27/15
to plove...@googlegroups.com
Hey all,

Thanks for all your input on this idea!

Quick update – I'm now focussing on acquiring a cheap old Steno machine (any tips for UK please let me know) that I can hack on. I may not be able to do this project as part of my studies but I'm still interested in pursuing it. I'll post further updates to the forum as soon as I have any.

Jack

To unsubscribe from this group and all its topics, send an email to ploversteno...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


--
Jack Armitage

--
You received this message because you are subscribed to a topic in the Google Groups "Plover" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ploversteno/xTEVg0IexSQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ploversteno...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Jack Armitage

Jack Armitage

unread,
Nov 3, 2015, 9:06:00 AM11/3/15
to Plover
In a twist of fate, the project I was going to do for this assignment fell to pieces quite literally – I bought a Super Nintendo from eBay to hack on, but it got smashed up in the post! I don't have time to find a new one, so...

'Project Stenophone' is back on! I've acquired an old machine (pic below) and am probably going to install a Teensy 3.2 + RasPi 2 inside it, and attempt to sense the keystrokes. Will post updates here as I go, wish me luck!


Jack Armitage

unread,
Nov 20, 2015, 3:37:29 PM11/20/15
to Plover
Not sure if anyone is monitoring this thread, but anyway...

I've managed to digitise the keys of my stenograph, here's a pic showing where I fitted the PCB. I used QRE1113GR optical reflectance sensors to measure the linear motion of the types.

I need to calibrate the sensors but once I've done that I can start learning steno proper and integrate it with the live coding language I use (tidal.lurk.org/). I may then try to get the whole thing running on a Raspberry Pi so I can just run audio straight out of the stenograph...

Build pic:

Mirabai Knight

unread,
Nov 20, 2015, 10:39:33 PM11/20/15
to ploversteno
I'm totally still reading this! I think it's fascinating.

--
You received this message because you are subscribed to the Google Groups "Plover" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ploversteno...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Mirabai Knight, CCP, RDR
StenoKnight CART Services
917 576 4989
m...@stenoknight.com
http://stenoknight.com

Joshua Taylor

unread,
Nov 21, 2015, 8:51:01 AM11/21/15
to plove...@googlegroups.com
Me too! :)

Johnny Sagan

unread,
Nov 21, 2015, 9:41:49 AM11/21/15
to plove...@googlegroups.com
Also fascinated!

Sent from my iPhone

kettleb...@verizon.net

unread,
Oct 4, 2016, 8:51:31 PM10/4/16
to Plover

Jack Armitage

unread,
Dec 2, 2017, 9:44:20 PM12/2/17
to Plover
Hi everyone,

I've had the opportunity to return to this project, there's now a GitHub: https://github.com/jarmitage/stenophone

I'm also presenting a short paper this Monday at the International Conference on Live Coding about my progress thus far (still a long way to go): http://iclc.livecodenetwork.org/2017/en/schedule.html

Attached here is a brief video clip of my Node app visualising the Stenophone data.

Has anyone else in the meantime done any steno music experiments?

Jack
StenophoneDemo1.mov

Mirabai Knight

unread,
Dec 2, 2017, 10:04:49 PM12/2/17
to ploversteno
This is so cool! Please keep us posted! I can't wait to hear your steno music!

--
You received this message because you are subscribed to the Google Groups "Plover" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ploversteno+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Mirabai Knight, CRC, RDR
917 576 4989

Jack Armitage

unread,
Jan 26, 2018, 10:21:00 AM1/26/18
to Plover
Quick update: I believe there's a recording of the conference talk which may go online soon. Unfortunately my PCB broke the night before the talk so I couldn't give a proper demo :(

I've got a new PCB and parts on the way so will hopefully be able to start testing ideas again soon. I've also bought a Sensel for more experimental prototyping but yet to have time for that.

If anyone is interested in this broader idea of combining live coding and expressive gestures, some of us from the conference started this forum that you're welcome to join https://groups.google.com/forum/#!forum/embodied-live-coding
To unsubscribe from this group and stop receiving emails from it, send an email to ploversteno...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages