Jackdaw - Orthographic English on a standard NKRO keyboard.

793 views
Skip to first unread message

Jennifer Brien

unread,
Apr 8, 2016, 12:22:06 PM4/8/16
to Plover
Now that I have finally got a gaming keyboard that seems to work with Plover (Mad Cats S.T.R.I.K.E. Tournament Edition - definitely not intended for my demographic!) I've simplified my Jackdaw proposal on Learn Plover and included a layout suitable for normal keyboards.

Have a look please, software people, and tell me if it is viable.

 

Vissale NEANG

unread,
Apr 10, 2016, 7:47:12 PM4/10/16
to Plover
Hello Jennifer,

As a programmer I'm very interested by orthographic steno systems and found some info on Jackdaw while learning Plover on this site https://sites.google.com/site/ploverdoc

I have implemented an ErgoDox layout of a Jackdaw variant with some programmer functionnalities. All lookup tables are stored in the firmware so no Plover or other additional software is needed (this is a big advantage of an orthographic steno system).

You can find more info here (keep in mind that this is a personal layout)

My first implementation of your Jackdaw system was the version with the 4 voyels (AOEU). That was the main difference with the original Shelton system (IEAOU and U-O E-I double length keys) and it was very easy to map those keys on an ErgoDox.

It looks like the new 5 voyels version (EOAUI and + as double length key) works well with a standard keyboard : you can stroke EO, EOA, UI and AUI easily.
I found a layout that works with my keyboard but I think there will be a problem on keyboards like the ones you mentioned in your documentation (SOFT/HRUF, Planck and Atreus) :
  • SOFT/HRUF : only 4 keys for thumbs
  • Planck : The layout is orthogonal (how to stroke EO and EOA for ex:?)
  • Atreus : The columns are aligned
Any ideas for those keyboards?

Cheers

Jennifer Brien

unread,
Apr 11, 2016, 2:40:14 AM4/11/16
to Plover
I've made a couple of changes to the latest version. I've moved th little finger keys down one row, and the + key now doubles the first consonant of the coda while the * key modifies the vowels. That means you no longer need sometimes to have three thumbs, because a doubled consonant normally follows a single vowel. The only common exception that I can think of which does not involve QU is GUESS, and there you can use NL for the first S. It seems important to keep keys in the correct left-to-right order where possible.

The first four vowel version was devised for the HRUF. It works all right on paper, but more vowel keys are better.

I wonder how the Art reus would work with the right hand one column over to the left? I wouldn't want to put trailing E and Y on the index finger.

Vissale NEANG

unread,
Apr 11, 2016, 4:35:56 AM4/11/16
to Plover
Ok I think I will go back to the 4 vowels HRUF version then (moreover I was used to type with this configuration)

It looks like the row modification on little fingers works well, it's more ergonomic (it's easier to type AFT for example) so I'll update my layout.

Jennifer Brien

unread,
Apr 14, 2016, 6:06:01 AM4/14/16
to Plover


On Monday, 11 April 2016 00:47:12 UTC+1, Vissale NEANG wrote:
Hello Jennifer,

As a programmer I'm very interested by orthographic steno systems and found some info on Jackdaw while learning Plover on this site https://sites.google.com/site/ploverdoc

I have implemented an ErgoDox layout of a Jackdaw variant with some programmer functionnalities. All lookup tables are stored in the firmware so no Plover or other additional software is needed (this is a big advantage of an orthographic steno system).

You can find more info here (keep in mind that this is a personal layout)

I'm really impressed by this and how quickly has evolved. It's great to see how fast it has evolved, and how Jackdaw is something more now that just a few mad ideas in my head. I have written a fair amount of Forth in the past, but I'm not a firmware programmer, and I don't expect to be one in the future.  

It would be wonderful; to have a custom Jackdaw keyboard that could work with a tablet for on-the go writing or plus into a USB port on any computer without having to worry about security. But at present I am working at home at a desktop, doing a variety of writing and editing work. I don't really have the time and patience to learn Plover, but I would love to experiment with a Plover implementation of Jackdaw to see how beneficial it might be.

Zack Brown

unread,
Apr 14, 2016, 6:43:23 AM4/14/16
to ploversteno
It's possible that the Kinglet implementation could be adapted for Jackdaw.

What would really be great is if Plover itself were a general-purpose
chording tool, that could be easily switched between the Plover
dictionary, Kinglet, Jackdaw, or any other chording system someone
might implement. Something like a Plover configuration language, to
control the various features and interpretation of strokes.

Be well,
Zack
> --
> 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.



--
Zack Brown

Jennifer Brien

unread,
Apr 15, 2016, 6:19:48 AM4/15/16
to Plover


On Thursday, 14 April 2016 11:43:23 UTC+1, Zachary Brown wrote:
It's possible that the Kinglet implementation could be adapted for Jackdaw.

What would really be great is if Plover itself were a general-purpose
chording tool, that could be easily switched between the Plover
dictionary, Kinglet, Jackdaw, or any other chording system someone
might implement. Something like a Plover configuration language, to
control the various features and interpretation of strokes.


OK, lets look at the options that may need to be covered.

A stroke is a pattern of steno keys held down simultaneously. This pattern is translated into a string of keycodes.

A stroke begins when the first key in the pattern is pressed.
A stroke ends when:
        Any key in the patten is released
       or 
       All keys in the pattern are released (this allows separate physical strokes to be combined in single 'virtual stroke' - one-handed steno, anyone?)

Non steno keys on the physical keyboard may be:
         Ignored entirely
         Sent (immediately or on keyup in key-down order)
         Sent if not pressed within a stroke
         If pressed and released within or around a stroke:
              Sent before the stroke output
              Sent after the stroke output
         If pressed or released during the stroke:
             Sent before 
             Sent after
             Sent before if pressed/released before, otherwise after

All non-steno keys have the same behaviour. Any exceptions are counted as steno keys.

Once a stroke is complete, it returns a bitmask that represents the pattern of steno keys pressed.

There is an init file that maps physical keys to bitmask positions.

The bitmask may be interpreted either through a chain of dictionaries which are searched in turn. A dictionary may interpret a stroke, a part of a stroke, or multiple strokes. and result in either a string or a command. A command may alter which dictionary or dictionary chain is searched.

A dictionary has a steno order string that defines the characters used in the dictionary to represent each steno key, and their separators.  Steno order need not reflect bitmask order, nor need every steno key be represented in the dictionary's steno order string (thus allowing dictionaries to match partial strokes). Unrepresented keys are ignored, allowing 

When a dictionary match is found, output the string or perform the command. If there is no match, search the next dictionary in the series (this supposes a 'dictionary' at the end of the chain that always matches and performs a default 'no match found' action)

If the dictionary matches a single stroke,  interpretation of the next stroke begins with the first dictionary in the chain.  

If the dictionary matches partial strokes, continue with the next dictionary. When the last dictionary has been searched,   interpretation of the next stroke begins with the first dictionary in the chain. Dictionaries matching partial strokes would normally be in a chain containing only such dictionaries, and searched in language order i.e. left hand first for Latin languages, right hand first for Hebrew and Arabic.

If the dictionary matches multiple strokes - normal Plover rules






        
 

Vissale NEANG

unread,
Apr 16, 2016, 6:17:46 AM4/16/16
to Plover
This is actually the case :) My ErgoDox is now a Jackdaw keyboard, I can plug it on any computer and write with it without installing a software.

At the moment I'm in the learning process and I type at 10 wpm for most common words (but 60 wpm for basic trigrams), it's really hard...

Finally I found a good layout with the 5 vowels version and it works very well, I'm happy with it :


The layout is not definitive, I'm still experimenting

Ty Griffin

unread,
May 1, 2016, 5:28:52 PM5/1/16
to Plover
Wow, this is great.  Would you have any interest in sharing the .hex file? 

Nice work. 

Ty

Vissale NEANG

unread,
May 2, 2016, 2:55:44 PM5/2/16
to Plover
No problem, I'll make a .hex file with a QWERTY layout as a base layer and at the moment the firmware works for an AZERTY OS so I have to change that too.

I'm training every day and I'm at 30 wpm now http://10fastfingers.com/user/1097610/ I hope to reach 40 in the next 2 weeks 

Ty Griffin

unread,
May 2, 2016, 8:39:59 PM5/2/16
to Plover
Thank you.  I'm excited to try it out.  I've had limited success building this version of the firmware into .hex files, though I'm not sure why. I know that will come eventually.  In the mean time ... Having Jackdraw in an ergodox has a clear appeal. So thanks!

Ty 

Vissale NEANG

unread,
May 5, 2016, 3:37:17 PM5/5/16
to Plover
You can download the .hex file here https://github.com/FromtonRouge/qmk_firmware/releases

For a QWERTY layout as a base layer you can tryqwerty-jackdaw.qwerty.hex

Jennifer Brien

unread,
May 6, 2016, 5:56:05 AM5/6/16
to Plover


On Thursday, 5 May 2016 20:37:17 UTC+1, Vissale NEANG wrote:
You can download the .hex file here https://github.com/FromtonRouge/qmk_firmware/releases

For a QWERTY layout as a base layer you can tryqwerty-jackdaw.qwerty.hex

Le mardi 3 mai 2016 02:39:59 UTC+2, Ty Griffin a écrit :
Thank you.  I'm excited to try it out.  I've had limited success building this version of the firmware into .hex files, though I'm not sure why. I know that will come eventually.  In the mean time ... Having Jackdraw in an ergodox has a clear appeal. So thanks!

Ty 

Great work, Vissale! 

May I link to this from the Jackdaw page? 

Vissale NEANG

unread,
May 6, 2016, 7:12:52 AM5/6/16
to Plover
Thank you :), yes you can link the page no prob ;)

Ty Griffin

unread,
May 7, 2016, 1:18:59 AM5/7/16
to Plover
Yes, excellent work.  And thank you for making a qwerty version. That was unexpected and really nice.  

I'm looking forward to trying it out.  

Thanks, 

Ty

Ty Griffin

unread,
May 7, 2016, 6:50:36 PM5/7/16
to Plover
I'm wondering what site or software you're using to create the picture of the key layout?  I'm playing with a keyboard.c, which I'll share when I'm done, but wanted to make a layout.png of it.  

Thanks again for the help, 

Ty

Vissale NEANG

unread,
May 7, 2016, 6:57:25 PM5/7/16
to Plover
I'm using http://www.keyboard-layout-editor.com there is a template for ErgoDox. Do you mean keymap.c ?

Ty Griffin

unread,
May 7, 2016, 10:33:06 PM5/7/16
to Plover
Yes, I meant to say keymap.c.  I've altered that before to create new layouts, but only in the last couple days figured out how to create the hex files on the firmware we're talking about here. Especially intriguing is the way you've integrated jackdraw into the firmware. I'm playing with the layout you've set up, looking at moving the vowel keys to the standard 4 keys that plover uses, and maybe expanding the layout outward, to fit onto the ergodox version of a standard steno keyboard.  Only because that's what I've been practicing for the last year. Doing that seems pretty straightforward.  The potential of jackdraw and in general the possibilities of a chording system built into the firmware is exciting. I'm not a programmer by training and sometimes deciphering the software is slow-going. Looking at the keymap.c file you built, line by line, it's beginning (sorta) to makes sense to me what you're doing with bits. I didn't realize all of that could be brought into the firmware. 

Anyway, thanks for the keyboard-layout-editor link.  I'd seen it before but couldn't remember what it was called. 

I'll throw it all up onto a yet-to-be made github account and link it back here when I'm done.

Thanks, 

Ty

Vissale NEANG

unread,
May 9, 2016, 10:55:07 AM5/9/16
to Plover
Ok tell me if you need more explanations (and/or maybe I should comment properly my code :p).
If you add more code, be carefull with the firmware size. I bricked an ErgoDox with a big firmware (98% used) and I had to replace the Teensy unit.
At the moment the firmware use 79% of the available space.

Ty Griffin

unread,
May 9, 2016, 10:59:26 PM5/9/16
to Plover
Thanks for hilighting that.  I did wonder about the memory but didn't consider it would brick the keyboard! What we need is a Teensy-like controller, but with more memory ... 

dragon788

unread,
May 11, 2016, 7:02:57 PM5/11/16
to Plover
The newer Teensy units do have a lot more memory available but custom AVR controllers are also available with separate memory, but that could be tricky to fit into the tight spaces on an existing keyboard.

Jennifer Brien

unread,
Jun 17, 2016, 3:35:44 PM6/17/16
to Plover


On Friday, 8 April 2016 17:22:06 UTC+1, Jennifer Brien wrote:
Now that I have finally got a gaming keyboard that seems to work with Plover (Mad Cats S.T.R.I.K.E. Tournament Edition - definitely not intended for my demographic!) I've simplified my Jackdaw proposal on Learn Plover and included a layout suitable for normal keyboards.


I've now done an update of the standard NKRO keyboard version, and I think I've got a good layout for both fast orthographic typing and for adding briefs using a superset of the Standard dictionary format as outlined in my post here.


Yes, you could do the same thing with a firmware version and an external text expander program, but what would be the fun in that? :) 

Lindsay Winkler

unread,
Jun 20, 2016, 3:22:16 AM6/20/16
to Plover
Orthographic chords sound attractive for the increased ad hoc control over the output, possibly faster learning and the ability to have them in keyboard firmware and therefore available everywhere.

I'm curious about the choice of keys and chords in the Jackdaw proposal.  They're different from the traditional steno keys and character chords, and I wonder what the rationale for that is?

I can understand clearly that "C" is the more frequent output from the "K" sound on the steno keyboard, but several other keys have also been replaced or re-ordered, and the chords for the missing consonants are different.  It's not immediately clear to me why the existing chords could not be used in this context?

Given that the onset, vowel and coda are all considered independently in the proposal, when forming output, it seems like the basic requirement for the left hand would be that it can form all syllable onsets, and it seems like the existing chords (eg. as used in Plover) can do that?

[This is a genuine question - I realise there must be something I'm missing, and I'm just trying to describe what I understand of the proposed system to hopefully help find my misunderstanding]

Jennifer Brien

unread,
Jun 20, 2016, 2:05:17 PM6/20/16
to Plover


On Monday, 20 June 2016 08:22:16 UTC+1, Lindsay Winkler wrote:
Orthographic chords sound attractive for the increased ad hoc control over the output, possibly faster learning and the ability to have them in keyboard firmware and therefore available everywhere.

I'm curious about the choice of keys and chords in the Jackdaw proposal.  They're different from the traditional steno keys and character chords, and I wonder what the rationale for that is?

I can understand clearly that "C" is the more frequent output from the "K" sound on the steno keyboard, but several other keys have also been replaced or re-ordered, and the chords for the missing consonants are different.  It's not immediately clear to me why the existing chords could not be used in this context?

Given that the onset, vowel and coda are all considered independently in the proposal, when forming output, it seems like the basic requirement for the left hand would be that it can form all syllable onsets, and it seems like the existing chords (eg. as used in Plover) can do that?

[This is a genuine question - I realise there must be something I'm missing, and I'm just trying to describe what I understand of the proposed system to hopefully help find my misunderstanding]

The key order in Jackdaw is not my own invention, at least for the onset and coda. It is taken from Dalton Shelton's 1976 patent for a syllabic typewriter. I'm not sure if he evolved that directly from the Steno layout, but it was obviously an influence. 

Since I'm now moving towards implementing briefs with a dictionary it would seem sensible to use Steno order as much as possible, so that perhaps you could begin with orthography and migrate towards full steno with experience. However, I'm not sure that it is possible to get enough orthographic combinations without some modification.

For example, we now need SHR, PHR, and CHR as well as SL, PL and CL. I suppose the former could be stroked as SWHR, PWHR and KWHR, But how do you distinguish (for example) between BY and PY?

If you'd like to try, Vassily has a list of all the possible onsets and codas in Jackdaw here

Trailing Z and D don't make much sense in orthography, because you need a way to represent the final E and Y vowels, and the thumbs already have enough to do. Together with the leading A, they also make it possible to save a stroke in many multisyllable words.
 

Lindsay Winkler

unread,
Jun 21, 2016, 12:52:47 AM6/21/16
to Plover
Thanks a lot.  Those are very clear examples.  I see that the issue is that a single phonetic onset sound now needs to be disambiguated into multiple orthographic spellings, by using distinct chords, which the phonetic system is not designed for.

Interestingly, I can see that in languages that are spelt phonetically, there is probably very little distinction between orthographic and phonetic systems.

With the current firmware for the Ergodox, is the stroke registered when all the keys are released, so that you can arpeggiate or roll through the strokes, as you can with Plover?  Or do you need to be able to hit the chords with precise timing?

Jennifer Brien

unread,
Jun 21, 2016, 4:35:13 AM6/21/16
to Plover


On Tuesday, 21 June 2016 05:52:47 UTC+1, Lindsay Winkler wrote:
Thanks a lot.  Those are very clear examples.  I see that the issue is that a single phonetic onset sound now needs to be disambiguated into multiple orthographic spellings, by using distinct chords, which the phonetic system is not designed for.

Interestingly, I can see that in languages that are spelt phonetically, there is probably very little distinction between orthographic and phonetic systems.

With the current firmware for the Ergodox, is the stroke registered when all the keys are released, so that you can arpeggiate or roll through the strokes, as you can with Plover?  Or do you need to be able to hit the chords with precise timing?

You'll have to ask Vissale that.. At present all I have is an NRKO keyboard on which I am staring to learn Plover, and a a lot of ideas and paper layouts. Because I don't have access to the firmware, I'm thinnking of how to implement Jqackdaw with a modified dictionary.

Lindsay Winkler

unread,
Jun 21, 2016, 5:03:33 AM6/21/16
to Plover
Aha.  I'm in a similar boat: at present I have a non-programmable NKRO keyboard and Plover.

So at this stage, a Plover dictionary file which implemented Jackdaw would be useful to you?  

I might have a go at putting one together, if nothing exists yet.  Though it wouldn't be particularly elegant, my guess is that a dictionary consisting of all possible combinations of onset, vowel and coda (a cross product of the three sets) and the corresponding output should allow the ideas to be tested hands on, which could further inform your thinking.  

Jennifer Brien

unread,
Jun 21, 2016, 6:13:53 AM6/21/16
to Plover


On Tuesday, 21 June 2016 10:03:33 UTC+1, Lindsay Winkler wrote:
Aha.  I'm in a similar boat: at present I have a non-programmable NKRO keyboard and Plover.

So at this stage, a Plover dictionary file which implemented Jackdaw would be useful to you?  

I might have a go at putting one together, if nothing exists yet.  Though it wouldn't be particularly elegant, my guess is that a dictionary consisting of all possible combinations of onset, vowel and coda (a cross product of the three sets) and the corresponding output should allow the ideas to be tested hands on, which could further inform your thinking.  


Yes, that would be very useful. It wouldn't be a full usable system, but it would be, as they say The Simplest Thing that Could Possibly Work, and great for experimentation. We could, for a start limit it to the key that Plover currently recognizes, so no leading A, and the four-key coding for the most common vowel digraphs. I calculate that gives a total of about 250k potential syllables (every additional key will double the size of the dictionary)  so we are definitely going to need a way to compile it from three separate files, and recompile whenever they are edited. 

It would also be good for the guys working on steno order for the CMUDict phonemes.   

Lindsay Winkler

unread,
Jun 21, 2016, 10:32:12 PM6/21/16
to Plover
I've opened a pull request to:


https://github.com/openstenoproject/stenodict/pull/31

with a first pass at such a dictionary.  The dictionary file itself should already be accessible here: 


(about 6Mb).  The final pass I made to lowercase the output left the chords out of order, so it doesn't look very nice, but it seems to work.

As you say, there are no chords with a leading 'A'.  I took the Shelton chords from Vissale's page, and the vowel chords from your proposal page.

I could get some scripts together to turn chord specifications into a dictionary directly, but probably not until next week (this was obviously done by scripts, but with a lot of handholding of the scripts - it's a very quick and dirty hack at this stage)

Vissale NEANG

unread,
Jun 22, 2016, 8:29:10 AM6/22/16
to Plover
Le mardi 21 juin 2016 06:52:47 UTC+2, Lindsay Winkler a écrit :

With the current firmware for the Ergodox, is the stroke registered when all the keys are released, so that you can arpeggiate or roll through the strokes, as you can with Plover?  Or do you need to be able to hit the chords with precise timing?
 
Yes you can arpegiate, it's like in Plover
Thx for the update, this 5 vowels layout should work I think. But I don't understand how your new ['] control key works : it builds contractions for some cases (eg: 'NT -> N'T) or doubles the first consonant in other cases and I think you'll end in some conflicts (how to write I'm and Immediate for example). I was fan of your previous [+] control key that was dedicated to double consonants I use it a lot. In my ErgoDox layout I solved the contraction problem with a dedicated key (the ['S] key).

Did you invert the [ed] and [er] keys in your layout ? Because you said in the description that ING, ,ER,ED and S "may be present in that order" when stroked together. Moreover it makes sense to me that [ER] is just above E (for simple superlatives like better, greater, lighter) or words like another, bother, either etc... but I don't know if ER is more frequent than ED

I keep practicing almost every day (at least 45 min) and I'm now between 58 wpm and 66 wpm on 10fastfingers.com

Jennifer Brien

unread,
Jun 22, 2016, 10:35:29 AM6/22/16
to Plover


On Wednesday, 22 June 2016 13:29:10 UTC+1, Vissale NEANG wrote:
Le mardi 21 juin 2016 06:52:47 UTC+2, Lindsay Winkler a écrit :

With the current firmware for the Ergodox, is the stroke registered when all the keys are released, so that you can arpeggiate or roll through the strokes, as you can with Plover?  Or do you need to be able to hit the chords with precise timing?
 
Yes you can arpegiate, it's like in Plover

Le vendredi 17 juin 2016 21:35:44 UTC+2, Jennifer Brien a écrit :


On Friday, 8 April 2016 17:22:06 UTC+1, Jennifer Brien wrote:
Now that I have finally got a gaming keyboard that seems to work with Plover (Mad Cats S.T.R.I.K.E. Tournament Edition - definitely not intended for my demographic!) I've simplified my Jackdaw proposal on Learn Plover and included a layout suitable for normal keyboards.


I've now done an update of the standard NKRO keyboard version, and I think I've got a good layout for both fast orthographic typing and for adding briefs using a superset of the Standard dictionary format as outlined in my post here.


Yes, you could do the same thing with a firmware version and an external text expander program, but what would be the fun in that? :) 

Thx for the update, this 5 vowels layout should work I think. But I don't understand how your new ['] control key works : it builds contractions for some cases (eg: 'NT -> N'T) or doubles the first consonant in other cases and I think you'll end in some conflicts (how to write I'm and Immediate for example). I was fan of your previous [+] control key that was dedicated to double consonants I use it a lot. In my ErgoDox layout I solved the contraction problem with a dedicated key (the ['S] key).

The trouble is that with the Qwerty layout I am rather restricted as to how many extra keys I can use, so it seemed to make sense to double up. The distinction is that a 'contraction always signals the end of the word. There are no common English words that end in a double M.  For the remaining conflicts, I'm using the codes Shelton provided - RNL for LL ('LL being 'L) and NLS for SS ('S being 'S).


Did you invert the [ed] and [er] keys in your layout ? Because you said in the description that ING, ,ER,ED and S "may be present in that order" when stroked together. Moreover it makes sense to me that [ER] is just above E (for simple superlatives like better, greater, lighter) or words like another, bother, either etc... but I don't know if ER is more frequent than ED

-ER is about four or five times less common than -ED, which makes up 20% of all suffixes. -ED is a natural for a dedicated key (the D key in Plover more or less is that) -ER is marginal, I think, but nice to have. Your order does make more sense to get -ERED. Jackdaw has a lot of double key presses horizontally as well as vertically.


I keep practicing almost every day (at least 45 min) and I'm now between 58 wpm and 66 wpm on 10fastfingers.com

Good to hear it. My ultimate goal is "faster than Dvorak or Colemak for the same learning effort." 

Jennifer Brien

unread,
Jun 22, 2016, 10:59:28 AM6/22/16
to Plover


On Wednesday, 22 June 2016 03:32:12 UTC+1, Lindsay Winkler wrote:
I've opened a pull request to:


https://github.com/openstenoproject/stenodict/pull/31

with a first pass at such a dictionary.  The dictionary file itself should already be accessible here: 


(about 6Mb).  The final pass I made to lowercase the output left the chords out of order, so it doesn't look very nice, but it seems to work.

As you say, there are no chords with a leading 'A'.  I took the Shelton chords from Vissale's page, and the vowel chords from your proposal page.

I could get some scripts together to turn chord specifications into a dictionary directly, but probably not until next week (this was obviously done by scripts, but with a lot of handholding of the scripts - it's a very quick and dirty hack at this stage)
 
Thanks, Lindsay. My own programming skills are very rusty, but I'll see if I can put something together too. It shouldn't be too hard. 

I've just had a quick look at the file and there are some truly wonderful 'words' there. It would be a delight for any writer of fantasy or nonsense verse. ;)
 

Jennifer Brien

unread,
Jun 22, 2016, 2:40:48 PM6/22/16
to Plover
It's ALIVE! 

I was a little confused at first because you hadn't included the alternative definition of D and DS, but they aren't needed. The odd thing is that without them, CSH consistently gives CS H and CHTS gives CTS H.  Weird.

There is an error in Vissale's table: NGTHS should be N|G|H|T|S, but apart from that everything seems in order. 

I've managed to type HELL O WORLD with some degree of confidence, Maybe we should glue all the parts together with ^ and use the space bar to distinguish between words. Apart from adding the final E and Y, that's as far as I think we can go in standard Plover.

Tom Short

unread,
Jul 27, 2016, 9:09:44 PM7/27/16
to Plover
I've ported Vissale's Ergodox implementation to the Atreus:


Keys are a tighter fit on the Atreus. For the modifiers to the coda, many are now towards the middle of the keyboard. I think that's acceptable. It reduces pinky load, too. The steno layer has no control keys. You pretty much have to switch back to the main layer for that and also for VIM-style operations. Symbol and function layers work nicely from the steno layer.

I didn't make many changes to Vissale's code. Here are some I remember:

- Bumped the maximum length of symbols by one.
- Added some punctuation to FAMILY_SPACES. It's a bit kludgy there, but it works. This is to allow punctuation as part of chording.
- Moved some of the USSR keys and combinations around to better fit on the Atreus.

Overall, it seems like an acceptable fit. I'll know better if I get faster than 1 WPM:)

I also put together a cheat sheet for some of the Shelton chords.

I'd also like to try to implement a Veyboard/Velotype "No-Space" key. 

Tom Short

unread,
Jul 28, 2016, 9:18:01 PM7/28/16
to Plover
I've updated my Atreus firmware to support a "No Space" key in the Jackdaw layer. It's similar to the Veyboard/Velotype approach. Here is the logic I've implemented:

* Chords have a leading space if the chord involves more the one family (e.g. left family and a vowel). 
* If the No-Space key is included, the leading space is left off.
* Chords don't have a leading space if all keys in a chord are within one family. That makes it easier to type letter-by-letter or chunk-by-chunk. 
* No-Space by itself enters a space.
* No-Space with the * key toggles the leading space on the last chord.

Overall, this logic works pretty well in limited testing. It's much better than trying to key spaces in. There are some words that are within one family (a, I, try, am, ...). For these, you can add a leading space or toggle the space after. It would be possible to add exceptions for these, but it gets complicated.

There is no logic to deal with end of sentences (either in capitalization or in the leading space). This is something that could be explored more.

Vissale NEANG

unread,
Jul 29, 2016, 8:15:38 AM7/29/16
to Plover
Thanks for your port Tom, your no-space key is interresting, I should try this one on my layout. On the Velotype the no-space key is just under the hand palm (easy to trigger), does it work well with your layout ?

I'm now between 67 and 73 wpm (after 3 months) on 10fastfingers.com. Still don't know if it's viable and hope to reach 100 in 3 months (crossfinger)

Tom Short

unread,
Jul 29, 2016, 8:46:20 AM7/29/16
to plove...@googlegroups.com
Wow, that's fast, Vissale. I haven't broken 5 wpm:) 

The no-space key replaces my space key. I have it in two places, and they seem convenient enough. The idea is that you don't have to type the no-space key as much as you would a space key because many words can be typed in one chord. I'm planning on switching the functionality to add trailing spaces instead of leading spaces. It should be more natural. You might want to hold off porting it until I try that out this weekend.

--
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/C42uhF0P8WI/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.

Jennifer Brien

unread,
Jul 29, 2016, 11:05:27 AM7/29/16
to Plover


On Friday, 29 July 2016 13:46:20 UTC+1, Tom Short wrote:

The no-space key replaces my space key. I have it in two places, and they seem convenient enough. The idea is that you don't have to type the no-space key as much as you would a space key because many words can be typed in one chord. I'm planning on switching the functionality to add trailing spaces instead of leading spaces. It should be more natural. 

Good work, Tom. I haven't experimented much with no-space, because I think the conventional spacebar works OK on a qwerty board, but I think the pros and cons are as follows:

The Veyboard does leading spaces because you are more likely to have a short suffix than a short prefix, and therefore the extra key goes where fewer other keys have to be pressed. 

However, for general use, it does mean that you have to remember to suppress the leading space every time you start new text, and in the case of the Y->I rule you have to remember if the last character of the previous stroke was a Y and go back and delete it.  

Tom Short

unread,
Aug 1, 2016, 7:13:29 PM8/1/16
to plove...@googlegroups.com
I've updated my Atreus port with a couple of changes:

(*) Changed No-Space to use trailing spaces--I think this is what the VeloType/Veyboard does (based on what little docs I've found). It seems a bit more natural to me than leading spaces, but there are trade-offs. 

(*) Shifted the core keys down one row--This better matches Jennifer's layout and Vissale's layout. It makes the coda suffixes much easier to hit. It does cramp my thumbs for the vowels. I'm hoping it'll encourage me to keep my fingers bent more. I need thumb keys that are offset, so they extend down a bit.

Would it be possible to set up the design spec for Jackdaw on a GitHub site? That way, we could do pull requests to fill in some details. To me, the biggest part that's unsettled is what to do with the right-hand suffixes. Vissale's differs from Jennifer's, and Jennifer's spec doesn't have much detail. 



--

Thomas Levine

unread,
Aug 3, 2016, 2:40:26 PM8/3/16
to plove...@googlegroups.com
The layout is backwards when I flash with this firmware, and that makes
for some confusion especially now that the layout diagrams do not match
the implementation.

I am happy to write something that generates the layout images based on
the C keymap specification in case you don't already have something.
Could you publish the source code to the diagrams?

As for the backwardness, I am using a recent design of Atreus (assembled
Atreus #53) where the labels face up. Tom, are you using an older one
where the labels face down? Also, does this version of the firmware
support any of the SWAPCOLUMNS, PCBFLIP, or PCBDOWN variables?

The layout does not change when I compile with them, and I haven't found
these variable names in any branch of the Atreus firmware, even though
the readme says thay are meaningful. I am using version
827cbcbd355f924f0fb01e77a56a1d237aa5d4d2.

Thank you Tom for your implementation of this layout. I have been
wanting a keyboard like firmware like this for years.

On Mon, Aug 1, 2016, at 07:13 PM, Tom Short wrote:
> I've updated my Atreus port with a couple of changes:
>
> (*) *Changed No-Space to use trailing spaces*--I think this is what the
> VeloType/Veyboard does (based on what little docs I've found). It seems a
> bit more natural to me than leading spaces, but there are trade-offs.
>
> (*) *Shifted the core keys down one row*--This better matches Jennifer's
> 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

Thomas Levine

unread,
Aug 3, 2016, 2:53:16 PM8/3/16
to plove...@googlegroups.com
Oh, I think I have found the source code, so maybe I will start working
on the diagram generator.
http://atreus.technomancy.us/i/layout-fn.svg

Tom Short

unread,
Aug 3, 2016, 3:53:34 PM8/3/16
to plove...@googlegroups.com
Most of this is specific to the Atreus. As far as the reversal, mine is an older version. Going by the following, I just swapped the columns. 


Here's the place where I swapped the columns:


It looks like a common problem related to vintage, so it would make a good feature that can be configured during make. I don't see any of those variables that you mentioned as being supported; I think those are only in the TMK firmware.

As far as the diagrams, I used http://www.keyboard-layout-editor.com/. Here are my layouts:







Thomas Levine

unread,
Aug 3, 2016, 5:50:00 PM8/3/16
to plove...@googlegroups.com
Perhaps it is just the TMK firmware. I read about it in the Atreus
section and have no idea how
to read any of this firmware works.
https://github.com/technomancy/tmk_keyboard/tree/atreus/keyboard/atreus#compiling

I have flashed the un-swapped columns, and the diagrams are now much
easier for me to read.
I anticipate that it will get even easier once I have accurate diagrams.

Tom Short

unread,
Aug 30, 2016, 8:21:10 PM8/30/16
to plove...@googlegroups.com
I've made a few updates to my jackdaw implementation for the Atreus keyboard. I moved a few keys around. It's especially handy to have the pinky E convenient, so I included two locations, above and below the middle finger on the right hand. I changed the no-space key to a meta-space key that toggles between trailing space mode and no-space mode. That is simpler than my previous try, and it works well in practice. It's more like Vissale's approach. Toggling is especially nice on a keyboard like the Atreus where you can't always hit the space key as part of a chord.

Personally, I'm getting a little faster, but it's slow going. I've been practicing for about five weeks now. I generally get between 10 and 15 words per minute on fastfingers (top 200 words). I still can't use it for regular use. It requires too much concentration, and it's too slow.




> > > > For more options, visit https://groups.google.com/d/optout.
> > > >
> > >
> > > --
> > > 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

> > > For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > 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/C42uhF0P8WI/unsubscribe.
> > To unsubscribe from this group and all its topics, send an email to

> > For more options, visit https://groups.google.com/d/optout.
> >
>
> --
> 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

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

--
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/C42uhF0P8WI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ploversteno+unsubscribe@googlegroups.com.

Vissale NEANG

unread,
Aug 31, 2016, 4:33:59 PM8/31/16
to Plover
I'm not a fan of the space toggle mode but it looks so difficult to find a good layout on the Atreus and maybe it makes sense on your keyboard. I'm sure you'll also find other configurations by practicing (I have changed my layout a lot and I'm still not happy).

I've tried your no-space key feature on my layout and it works very well, I think I'll end up with some punctuation keys on the left hand too (at least the comma).

I'm now between 71-81 wpm (4 months). Like you I don't use it for regular use yet (waiting for 100 wpm and real text training)

> > > > For more options, visit https://groups.google.com/d/optout.
> > > >
> > >
> > > --
> > > 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

> > > For more options, visit https://groups.google.com/d/optout.
> >
> > --
> > 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/C42uhF0P8WI/unsubscribe.
> > To unsubscribe from this group and all its topics, send an email to

> > For more options, visit https://groups.google.com/d/optout.
> >
>
> --
> 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

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

--
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/C42uhF0P8WI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ploversteno...@googlegroups.com.

Mike S

unread,
Sep 5, 2016, 7:30:05 PM9/5/16
to Plover
This is an interesting project that seems to have a much lower learning curve than using a steno writer. What is the projected top speed? I see that a previous writer has gotten up to 70-80ish in 4 months and that look promising. 


On Friday, April 8, 2016 at 12:22:06 PM UTC-4, Jennifer Brien wrote:
Now that I have finally got a gaming keyboard that seems to work with Plover (Mad Cats S.T.R.I.K.E. Tournament Edition - definitely not intended for my demographic!) I've simplified my Jackdaw proposal on Learn Plover and included a layout suitable for normal keyboards.

Have a look please, software people, and tell me if it is viable.

 

Tom Short

unread,
Sep 6, 2016, 9:23:54 AM9/6/16
to plove...@googlegroups.com

I don't think anyone knows the realistic top speed. My guess is 150 - 180 WPM. I think it'll be the same range as the Velotype keyboard. If someone designs and implements briefs, then it might go higher.

Personally, I doubt I could ever break 100 given where I'm at now (15).


--
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/C42uhF0P8WI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ploversteno+unsubscribe@googlegroups.com.

Mike S

unread,
Sep 6, 2016, 4:20:59 PM9/6/16
to Plover
This Velotype keyboard really have a top speed of 150-180 words per minute? I remember emailing the creators and Being told something that seemed under 150 words per minute and he said  it would take two years of training or something like that.
To unsubscribe from this group and all its topics, send an email to ploversteno...@googlegroups.com.

Tom Short

unread,
Sep 6, 2016, 4:53:04 PM9/6/16
to plove...@googlegroups.com

I've seen numbers of 200 wpm cited for Velotype:

- https://en.wikipedia.org/wiki/Velotype

I haven't seen any hard data on speed or learning curve, but it is used to make real-time transcripts.


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

Mike S

unread,
Sep 6, 2016, 5:06:41 PM9/6/16
to plove...@googlegroups.com
Yeah I've seen the 200 WPM claim on their website as well.
>>>>> <https://sites.google.com/site/ploverdoc/jackdaw> proposal on *Learn
>>>>> Plover* and included a layout suitable for normal keyboards.

Jennifer Brien

unread,
Sep 7, 2016, 4:54:13 AM9/7/16
to Plover


On Tuesday, 6 September 2016 21:53:04 UTC+1, Tom Short wrote:

I've seen numbers of 200 wpm cited for Velotype:

- https://en.wikipedia.org/wiki/Velotype

I haven't seen any hard data on speed or learning curve, but it is used to make real-time transcripts.



I would be very surprised if real-time Velotypists didn't use some form of briefing, if they are doing the kind of work where dictionaries can be prepared beforehand, and they probably have some ability to make briefs on the fly. I know I would want that capability. Perhaps use a normal text expander, or could the dictionary part of Plover be adapted to that role? By which I mean, the input device passes the printable characters of a 'stroke' (however it defines that - probably a contiguous alphanumeric sequence for a normal keyboard) to the dictionary/ies. and a translation is made if a match is found, otherwise the characters pass through unchanged. 

Without that. I would always expect Jackdaw to be slower than steno. If you get very lucky and can nearly always 'fold in' caps, and basic punctuation and endings then you might approach the same stroke count, but the strokes are always going to involve more keys. There is still a lot of experimentation needed to find the best combination of keys and substitution rules - which may vary from person to person.  Like you, I found great difficulty with Sheldon's combination for LD, especially in conjunction with U. Your solution is much better.

What we need at this stage is the ability to set up and test the various alternatives quickly. How easy is that in your firmware, especially with more advanced logic such as the Spae/No Space key?

Tom Short

unread,
Sep 7, 2016, 7:37:07 AM9/7/16
to plove...@googlegroups.com
Vissale's firmware is great, but I wouldn't say it's easy to make changes. You need to change C code, compile, and download the firmware. Moving keys around is pretty easy, but changing logic is harder. I'd like to implement your Q-U rule and better rules on automatic capitalization following a period. I just haven't gotten motivated enough, yet.

Briefs are best implemented externally. I don't know is a Teensy has enough memory to hold many, plus it's harder to change in firmware.

Adapting Plover would be the best way to make changes easier. But, that's quite a bit of work.

On LD, I've found that having a suffix D just above the right-hand R makes LD, RD, and RLD nicer.



--

Vissale NEANG

unread,
Sep 7, 2016, 4:26:41 PM9/7/16
to Plover
Le mardi 6 septembre 2016 01:30:05 UTC+2, Mike S a écrit :
This is an interesting project that seems to have a much lower learning curve than using a steno writer. What is the projected top speed? I see that a previous writer has gotten up to 70-80ish in 4 months and that look promising. 
 
Actually this 80 wpm statistic comes from a very simple test on 10fastfingers.com (top 200 words) so it's not very representative. I'm certainly under 40 wpm on real text input (punctuations, more complex words etc...). My personal goal is 120 wpm on real text and I still don't know if it's possible

Le mercredi 7 septembre 2016 13:37:07 UTC+2, Tom Short a écrit :
Vissale's firmware is great, but I wouldn't say it's easy to make changes. You need to change C code, compile, and download the firmware. Moving keys around is pretty easy, but changing logic is harder. I'd like to implement your Q-U rule and better rules on automatic capitalization following a period. I just haven't gotten motivated enough, yet.

Briefs are best implemented externally. I don't know is a Teensy has enough memory to hold many, plus it's harder to change in firmware.


Indeed, there is not enough space for a brief system and you can brick the Teensy if the firmware is too large (I did it once :p). Moreover it would be difficult to maintain those briefs. We need more memory :(
Reply all
Reply to author
Forward
0 new messages