Skip to content

Kaoffie/cocoa-specs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 

Repository files navigation

Cocoa Theory Specifications

This is a documentation for Cocoa Theory, a stenographic theory for writing English on the Ward Stone Ireland layout.

This document will seem very complicated to a lot of learners, but it is important to note that large portions of the text in this document have been dedicated to explaining very rare corner cases in the theory, most of which users will rarely encounter.

Hence, it should not be used as a primary learning resource. Users are still welcome to use this document as an additional reference document to look up on any additional details that may be missing in other resources.

Explanation of Badges

Throughout the document, badges have been added to various topics to indicate their development progress. They are as follows:

Badges

All details have been fully documented and are not likely to change in the future.

Details have been sorted out and are waiting to be documented.

Details have only been partially documented and will be expanded in the future.

Currently being worked on. Any details that have been recorded are not final.

Will very likely change in the future.

Table of Contents

Design Objectives

Cocoa Theory is derived from Plover Theory, with heavy influences from Phoenix and Realwrite/Realtime, as well as theory ideas floating around on the Plover Discord. It is a mixed (phonetic-orthographic) theory with heavy use of orthographic disambiguation. It was initially created as a variant of Plover Theory to fix three major problems with the theory: Reliance on stress-based syllable dropping, lack of consistency in syllable splitting, and the overuse of disambiguation by asterisks. Since then, it has undergone enough changes to be considered an independent theory. The main design goals are:

  • To provide a theory designed for everyday use in mind, rather than court reporting and captioning;
  • to remove dependence on stress-based syllable dropping, as not all English speakers are capable of identifying stressed and unstressed syllables. This does not indicate the complete removal of stress-based syllable dropping, but merely makes it optional;
  • to provide spelling-based disambiguation for all the major conflict-prone medials;
  • to accomodate for short writing styles, including folding and phrasing, whilst not making it compulsory;
  • to make the outlines of all words predictable, even if their pronunciation is unknown, using a systematic syllable splitting standard;
  • to support British spellings using orthographic disambiguation;
  • to reduce the amount of memorization as much as possible by reducing the reliance on special affix strokes, the number of mandatories, and frequency-based disambiguation.

Technical Objectives

There are a few technical goals that the theory tends to stick to when introducing new rules:

  • Not to make Philly shifting compulsory; users are still free to implement them in their own writing if they like it, but it should not be necessary.
  • Asterisks should only be used phonetically for finals.

What Cocoa Theory is not

Cocoa Theory is not an orthographic theory.

It is a mixed system, based partially on the General American accent, but with more leniency for other accents and alternative pronunciations. If the user's accent is generally mutually intelligible with American English, which covers most major English speaking regions as well as most English learners, then this thoery should work for them.

During the design process, the following points were considered:

  • Non-rhotic accents: Not including R sounds would make the theory more unfriendly to other speakers; as such, speakers with non-rhotic accents should expect to include unprounounced R sounds in their writing, such as the R in "hour", "bar", "hear", etc. This includes most English (British), Welsh, Australian, New Zealand, and Singaporean/Malaysian accents, as well as some accents in India, Pakistan, and the American South.
  • Syllable-timed/Mora-timed accents: There are both native speakers and learners who speak accents with reduced stress patterns or with no stressed/unstressed syllables. Much like many traditional theories, Cocoa Theory takes advantage of stress patterns to drop syllables to write shorter; this, however, is completely optional, and stress is not required for writing. This should make it much easier for East or Southeast Asian speakers, or native speakers of non-stress-timed languages such as French, Italian, or Spanish (just to list a few).
  • Reduced vowels and schwas: Vowel reduction is not consistent across accents. Cocoa Theory attempts to provide the non-reduced outlines wherever possible, extrapolated based on spelling. For instance, "considerate" does not rhyme with "crate" due to the final syllable being a schwa, but there will be a dictionary entry that fits the prounuciation where they do rhyme.

However, if the user's accent or dialect deviates too much (to the point where vowel lexical sets fail to capture their accent), then they may run into a few obstacles with this theory. This does not mean that they should not use this theory - this merely means that they should expect to make a lot more changes to their personal dictionary than the average user. In other words, if their accent is "heavy" enough that other speakers from other regions may have difficulty understanding them, then they may have to use a lot more custom dictionary entries that fit your pronunciation.

Fingerspelling

Fingerspelling Alphabet

Fingerspelling is done with the left hand, with the right hand in charge of spelling variants. The letters are as follows:

Letter Chord Letter Chord
a A n TPH
b PW o O
c KPW or KR p P
d TK q KW
e E r R
f TP s S
g TKPW t T
h H u U
i EU v SR
j SKWR w W
k K x SKPH or KP
l HR y KWR
m PH z SKW

Fingerspelling Variants

The variants are as follows: (Subject to change)

Variant Example Chord
Lowercase abc *
Uppercase ABC *P
Lowercase stitching a-b-c -RBGZ
Uppercase stitching A-B-C -FPLD
Lowercase dotted a.b.c. -RBLS
Uppercase dotted A.B.C. -RPGS
Unused *RBGZ
Unused *FPLD
Unused *RBLS
Unused *RPGS

Initials

Initials in Cocoa Theory are written using the left bank keys (STKPWHR). Whilst the vast majority of words can be written phonetically, many are written orthographically instead to resolve conflicts in what could be considered a mixed system. In general, however, we can expect silent letters to be ignored, unless specified in the following sections. For instance:

  • "p" in "pneumatic": TPHAOUPL/SWRAT/SWREUBG (nuum-at-ik)
  • "w" in "answer": APBS/SWRER (ans-er)

Most rules are inherited from Plover Theory, but some chords have been changed to avoid conflicts. In situations where there is an orthographic disambiguation initial chord for a word that does not require conflict resolution, we offer both the phonetic and orthographic variants and leave it to the user to decide which to use.

Phonetic Initials

These are all the initials that are written phonetically:

Final Chord Final Chord
/b/ PW /t/ T
/d/ TK /v/ SR
/f/ TP /w/ W
/ɡ/ TKPW /j/ KWR
/h/ H /z/ SKW
/dʒ/ SKWR /ʃ/ SH
/k/ K /tʃ/ KH
/l/ HR /ʃɹ/ SKHR
/m/ PH /θ/ TH
/n/ TPH /ð/ TH
/p/ P /ʒ/ SKWR
/kw/ KW
/ɹ/ R
/s/ S

Consonant Clusters

Initial consonant clusters are built using the basic initial sounds, and in most instances can be chained together without breaking steno order. For instance:

  • Initial /fl/: TPHR
  • Initial /bɹ/: PWR
  • Initial /skɹ/: SKR

There are, however, instances where we are forced to break steno order to accomodate rare initial consonant clusters. We do this by stacking or using inversion; note that in the case of stacking, the individual sub-chords that are stacked together do not overlap. Note that "kn" is not considered a cluster since it is a single sound.

  • Initial /θw/: TWH
  • Initial /nj/: TKPWHR

In the case of glides, /j/ and /w/ in particular, whilst they can be represented sometimes with a stacked KWR and W respectively, if the glide is included as part of the vowel, such as AOU /juː/, then they should not be stacked. For example, the first syllable of "music" is represented with PHAOUS, not KPWHRAOUS or KPWHRUS.

Overlapped stacking is only used when there is no other choice, such as when a word begins with the consonant cluster in question and the first chord has to include the entire cluster.

  • Initial /lm/, /ml/: PHR
  • Initial /vl/: SHR

Overloaded Initials

Some existing initials also have additional functions:

  • S- can be used as a vowel wildcard
  • W- can be used for "V" sounds
  • H- can be used for "W" or "U" sounds when W is taken
  • TPH- can be used for "in-", "en-", "on-"
  • HR- can be used for "el-", "al-"
  • SKPH- can be used for "exc-"

These additional functions can be combined with inversion and stacking:

  • Initial /ɡw/: TKPWH
  • Initial /bw/: PWH

Some initials that include the /ʃ/ sound cannot be properly accomodated on the layout, and are represented by just the S- key. However, when the option to stack consonants regardless of steno order is available, we stack the sounds instead:

  • Initial /ʃl/: SHR
  • Initial /ʃm/: SPH
  • Initial /ʃt/: STH
  • Initial /ʃw/: SWH

Note that this does not apply to qu-, which is stroked with KW, not KWH.

Orthographic Initials

Whilst most initials are written phonetically, a few exceptions exist due to the need for disambiguation:

Initial Chord Remarks
h H Only when silent
c KPW Only when pronounced as /s/
x SKPH When pronounced as /s/ or /z/
wh WH Used even in phonetic outlines; never just W. Note that some speakers do pronounce wh- differently from w-
wr WR Used even in phonetic outlines; never just R. Note that some speakers do pronounce wr- differently from r-
tw TW Only when pronounced as /t/. This is specifically for derivatives of "two".
ch KH Only when pronounced as /k/ or /ʃ/
sc SKPW Only when pronounced as /s/
sch SKH Only when pronounced as /ʃ/
kn TKPH Only when pronounced as /n/
ph TKP Only when pronounced as /f/

In cases where disambiguation is not necessary, such as "knife", both the phonetic (TPHAOEUF) and the orthographic stroke (TKPHAOEUF) should be provided, chosen by the user based on preference.

There are also many cases where we include the orthographic entry not for disambiguation, but to anticipate situations where the speaker actually pronounces these words based on how they are spelled, unaware of the exceptions in English orthography.

Note that initial gh- is written as TKPW, not TKPWH. The latter chord may be used for disambiguation if necessary, but I have not come across any situations where I have required it so far. Hence the following words are written with TKPW:

  • gherkin: TKPWERBG/SWREUPB, not TKPWHERBG/SWREUPB
  • ghetto: TKPWET/SWROE, not TKPWHET/SWROE

Nevertheless, there isn't actually anything bad with the chord TKPWH, so the user can add it for words starting with gh- if they so choose to.

Advanced Initials

These initials are either memorized or constructed from the principles listed previously, but they are mostly used in briefs rather than syllable-based outlines.

Initial Pronunciations Chord Remarks
des, dis /dɪs/ STK
exp, and, end /ɪksp/, /ænd/, /ɛnd/ SKP
imp, emp /ɪmp/, /ɛmp/ STKPW
int, ent /ɪnt/, /ənt/, /ɛnt/, /ɑnt/ SPW
ext /ɪkst/, /ɛkst/ SKPW
inf /ɪnf/ STKPH
adv /ædv/, /ədv/ STKW
inv /ɪnv/ STPHR
ins, ens, inst /ɪns/, /ɛns/, /ɑns/, /ɪnst/ STPH
rev, riv, rew, rw /ɹəv/, /ɹɪv/, /ɹəw/, /ɹɪw/ WR

Initial Joiners

There are also two joiners, used to indicate the lack of an initial consonant sound. These are explained in the syllable splitting section.

  • Generic initial joiner: SWH
  • Orthographic joiner: KWH

Since KWH is reserved as the orthographic joiner, we cannot use it for the chw- sound, present in words such as "factual" or "eventually". As mentioned previously, that sound uses the TW chord instead - if necessary, this can be seen as an orthographic chord.

T and D

The letters "t" and "d" are often pronounced as /tʃ/ and /dʒ/, especially in the UK, such as in "Tuesday" /ˈt͡ʃuːzdeɪ/ or "during" /ˈdʒʊəɹɪŋ/. At the beginning of words, they are stroked orthographically, using T or TK:

  • Tuesday: TAO*UZ/SWRAEUFB
  • during: TKAOUR/-G

However, they can be written phonetically when they occur elsewhere. This should not be relied upon, and the dictionary will not include every entry, only the ones that are pronounced this way in General American accents:

  • capture: KAP/SKHUR (kap-chur) or KAPT/SWRAOUR (kapt-uur) or KAPT/SWRUR (kapt-ur)
  • culture: KUL/SKHUR (kul-chur) or KULT/SWRAOUR (kult-uur) or KULT/SWRUR (kult-ur)
  • presumptuous: PRES/SWRUFRP/SKHU/SWROUS (pres-ump-chu-ous) or PRES/SWRUFRPT/SWOUS (pres-umpt-uous)

The same letters "t" and "d" are also often pronounced as /ɾ/, like in "little" or "paddle". Due to syllable splitting, these usually do not happen in the initial, but in cases where they do, they are exclusively written orthographically as T and TK respectively.

Medials (Vowels)

Vowels are written using the thumb keys AOEU. Vowels in English are a mess, so whilst the system has inherited most of the phonetic vowel chords from Plover Theory, it leans towards the orthographic side, with many orthographic disambiguators recommended for use even if there are no conflicts.

Many of these disambiguators overlap with final chords, especially -FB and -PZ. They will be mentioned briefly in this section, and will be explained again in the finals section.

The vowel system is rhotic, to avoid conflicts. For speakers who have a non-rhotic accent, it may be helpful to view it from an orthographic point of view.

Orthographic Overrides

If any vowel clusters are spelled exactly with the following sequences of letters, then they are stroked orthographically regardless of pronunciation:

Spelling Chord
ai AEU
au AU
ae, ea AE
ee EE
oo, ao AO
oa OE
aou, oau AOU
ou OU

There are instances where we find these spellings in vowel clusters that would be considered as two syllables, such as the "oo" in coordination. In these cases, we can apply the orthographic overrides as usual, or split it into two syllables. Some examples include:

  • "oo" in "coordination": KAORD/SWREUPB/SWRAEUGS or KOE/SWRORD/SWREUPB/SWRAEUGS or KO/SWRORD/SWREUPB/SWRAEUGS
  • "ea" in "reality": RAEL/SWREUT/KWREU or RAOE/SWRAL/SWREUT/KWREU or RE/SWRAL/SWREUT/KWREU

There are also instances where we find these spellings as part of a longer string of vowels. We write them phonetically.

Short Vowels

The precise definition of a "short" vowel in this context is any of the vowels listed below. Many of them are merged in many dialects. They are generally stroked based on spelling.

Due to all sorts of mergers and splits and vowel pronunciations being wildly different between different accents, even the fallback of many of these vowels are orthographic.

Lexical Set Examples Fallback
kit ship SHEUP, myth PH*EUT EU
dress step STEP, ready RAED/KWREU E
trap bad PWAD, cab KAB A
lot stop STOP, job SKWROB Final vowel letter
thought thought THOUGT, swan SWAPB Final vowel letter
strut cup KUP, budge PWUPBLG U
bath staff STAF, dance TKAPBS A
palm balm PWAUPL, sergeant SERPBLG/SWRAEPBT Final vowel letter
cloth cough KOUF, broth PWRO*T Final vowel letter
foot put PUT, look HRAOBG U
comma (schwa) around AR/SWROUPBD, vodka SROD/SKA Final vowel letter

Spellings of vowels are usually converted into steno like so:

Spelling Chord Remarks
ai AEU Orthographic Override
au AU Orthographic Override
ae, ea AE Orthographic Override
ea AE Orthographic Override
oo, ao AO Orthographic Override
oa OE Orthographic Override
aou, oau AOU Orthographic Override
ou OU Orthographic Override
a A
e E
i, y EU
o O
u U
w AOU Only when used as a vowel; see below

Some vowel sounds require us to write with spelling. In some cases, the letters "y" and "w" may be used to spell those vowels. In those cases, we use the chords EU and AOU to represent them respectively. For instance:

  • "y" in myth: PH*EUT
  • "w" in crwth: KRAO*UT

We will often find words that cannot be stroked by spelling, because the combination of letters used to represent the vowel is too rare to warrant a special chord. In this case, we stroke them phonetically, using the fallback column. For some of the vowels, we are required to take the rightmost vowel letter. Here are some examples of the fallback column in use:

  • "ie" in "friend": TPREPBD
  • "ue" in "conquer": KOFRPBG/SWRER

When the spelling of a word deviates too much from its spelling, we will also offer a phonetic outline, using the fallback chord associated with the vowel. For instance:

  • "u" in "minute": PHEUPB/SWREUT
  • "u" in "busy": PWEUS/KWREU, PWEUZ/KWREU
  • "o" in "women": WEUPL/SWREPB

For the palm vowel specifically, whenever the vowel is spelled as "au", "al", or "aw", we use AU instead of A, as with the outline listed for "balm".

Long Vowels

Long vowels are all vowels that aren't short, including diphthongs. All of them have a base chord, but since conflict rates are often high, they all have a list of associated disambiguators, each corresponding to a possible spelling of the vowel.

? is a consonant wildcard. Note that orthographic overrides take priority.

Lexical Set Base Chord Disambiguators
fleece AOE i EU, y EU, e?e AOEF
face AEU ei AE, ey EFB, ay AEUFB, a?e AEF
goat OE o O, ow OEFB, o?e OEF
goose AOU o O, ew AOUFB, u?e AOUF
price AOEU y AOEUFB, uy UFB, ye AOEUFB, aye AOEUFB, i?e AOEUF
choice OEU oy OEUFB
mouth OU ow OUFB

If we encounter a long vowel with spelling that is not included in the list of disambiguators, we can safely stroke it using the base chord. For instance:

  • "ai" in "maid": PHAEUD
  • "oe" in "roe": ROE

Whenever we use AOU, we can safely include glided Y sounds into the vowel, instead of deferring them to the initial or the previous chord:

  • "iew" in "view": SRAOUFB
  • "u(t)e" in "mute": PHAOUFT

Since many of the disambiguators include keys from the right bank, they can sometimes interfere with the final consonants in a given stroke. In cases where the keys do not overlap, we can safely include the entire disambiguator, even if steno order is broken:

  • "ow" in "bowl": PWOEFBL
  • "ow" in "power": POUFRB or POUFB/SWRER
  • "a(t)e" in "rate": RAEFT
  • "a(th)e" in "bathe" PWA*EFT

There are cases, however, where they overlap. In these cases, we can continue using the disambiguators, but without the right bank keys. For instance:

  • "ow" in "down": TKOUPB
  • "aw" in "pawn": PAUPB
  • "a(v)e" in "pave": PA*EF
  • "a(f)e" in "safe": SAEF

It is important to note that both phonetic and orthographic options will be available whenever possible, even when there are no conflicts to disambiguate.

Vowels before R

Rhotic vowels generally follow the same rules as the two categories above, but with an additional -R added at the back.

Lexical Set Examples Fallback
nurse hurt HURT, term TERPL Final vowel letter
start heart HAERT, carve KAFRB AR
north short SHORT, war WAR Final vowel letter
force four TPOUR, spore SPOR Final vowel letter
letter meter PHAOET/SWRER, metre PHAOET/SWR-R Final vowel letter

Note that "er" is stroked as ER, but "re" (commonly used in British spelling) is stroked as just -R. This allows us to write both American and British spellings.

Lexical Set Base Chord Disambiguators
near AOER ir EUR, yr EUR, ere AOEFR
square AEUR are AEFR
cure AOUR ure AOUFR

Naturally, the phonetic outlines will still be available for many of these words, and will be recommended when users are not used to this system.

Exceptions for the silent e after consonant pattern

The face (a), fleece (e), price (i), goat (o), and goose (u) vowels are often spelled with a single letter, followed by a group of consonants, then a silent "e". The orthographic disambiguators for these vowels include the -F key, like so:

  • base: PWAEFS
  • cede: SAOEFD
  • price: PRAOEUFS
  • prose: PROEFS
  • rude: RAOUFD

Note that clusters containing multiple consonants can also be matched with the "~" wildcard.

However, there is one single exception to this rule - when used with -P, this can conflict with any syllables ending with "-each" or "-oach", such as "teach"/"tape" or "coach"/"cope". Thus for /p/ specifically, we will stick to the base chord:

  • tape: TAEUP
  • pipe: PAOEUP
  • cope: KOEP
  • dupe: TKAOUP

Note that this pattern does not apply to other similar patterns with a silent "e". "praise", for instance, is not spelled with the "a~e" pattern because the core vowel is spelled with "ai", not just a single "a". Its outline is hence PRAEUS, using the base vowel chord AEU, rather than PRAEFS or PRAEUFS, influenced by the silent "e".

Disambiguators in Conjugated Words

When words are conjugated or modified with affixes, the vowel strings that determine which chord or disambiguator we use may change. In these instances, we can choose to use either the original chord, or to ignore it and construct the outline based on the new modified spelling:

  • bellies: PWEL/SWREU/-S or PWEL/KWREU/-S
  • casing: KAEFS/-G or KAEUS/-G

Compressed Glides

When a vowel cluster contains a glide or a goose/fleece vowel that can be reduced to W or KWR on the left, but the glide cannot be inserted into the initial due to a lack of space, they can optionally be dropped altogether, like so:

  • industrial: EUPBD/SWR*US/SRAL or EUPBD/SWR*US/SREU/SWRAL

Compressed Triphthongs

Vowel clusters that contain a long vowel followed by a schwa can often be compressed into a single stroke by ignoring the schwa, instead of being split into two strokes. For instance:

  • iron: AOEURPB
  • power: POUFRB

OE and AOE

When long vowels are written with a single letter, some users may find it difficult to use the actual long vowel chord rather than the single letter key/chord corresponding to the letter. Cocoa Theory tries to account for this specifically for the goat vowel by including both the orthographic and phonetic variants:

  • "o" in "macho": O or OE

Another problem is when a word starts with an e-/de-/re-, which can either be pronounced as the fleece vowel, or as a reduced schwa. Again, both variants would be included:

  • "e" in "ecology": E or AOE
  • "de" in "demand": TKE or TKAOE

OEU Briefing

The OEU chord is also sometimes used for one of two things:

  • To indicate that there is an additional -y after the current syllable, such as in "happy". Whilst Plover Theory also uses AE for this purpose, Cocoa only uses OEU, and applies it to a much smaller selection of words. (TBC: Experiment with -DZ for final -y, or some other pinky chord)

  • As a wildcard, to provide an alternative to skeletal briefs.

These two uses should not be treated as consistent rules, but rather as briefing techniques.

Finals

Whilst finals are mostly stroked phonetically, there are too many orthographic finals that it would be odd to call it phonetic. With that in mind, due to the syllable splitting used in the theory, finals play an extremely important role in representing complex consonant clusters, much more complex than on the left bank (appropriate given that the right bank has more keys).

Still, similar to initials, we can expect most silent letters to be ignored, unless any of the following sections say otherwise. Also similar to initials, if there is an orthographic disambiguator available for a given final, but no conflict is present, both the phonetic and orthographic outlines should be offered.

Orthographic Overrides

These orthographic override finals apply whenever the spelling matches one of the endings specified below. They exist due to confusion about their exact pronunciation, or in the case of -x, for conflict resolution.

Ending Chord Remarks
mb -FRB -FR as "m"
mn -FRPB -FR as "m"
x *BGS
s -S
t -T
st, zt *S
sd, zd *Z

The letters "s" is often pronounced as a /z/ sound in the finals. This can be extremely confusing for many English speakers, even though it is second nature to some. To reduce confusion, whenever a final is spelled with an "s", there will be an outline for it that uses -S. If it is pronounced as /z/ and there are no conflicts, then the -Z outline would also be provided.

The "t" sound is similar - it may sometimes be pronounced as a /d/, but will always be stroked as -T.

This merger does lead to new conflicts that need to be resolved; however, we will not use -S and -Z to resolve them, and will instead resort to other disambiguation methods:

Word Plover Cocoa
race RAEUS RAEFS
raise RAEUZ RAEUS or RAEUZ
brace PWRAEUS PWRAEFS
braise PWRAEUZ PWRAEUS or PWRAEUZ

Phonetic Finals

Those familiar with English phonotactics will recognize a few sounds in the table below that don't go at the end of English syllables. They are included as finals as a side effect of greedy syllable splitting.

Final Chord Final Chord
/b/ -B /ɹ/ -R
/d/ -D /v/ *F
/f/ -F /w/ -FB
/ɡ/ -G /z/ -Z
/h/ -PZ /dʒ/ -PBLG
/k/ -BG /ʃ/ -RB
/l/ -L /tʃ/ -FP
/m/ -PL /θ/ *T*
/n/ -PB /ð/ *T
/p/ -P /ŋ/ -PBG

Most consonant clusters that are composed with sequences of sounds from the chart above can also be similarly composed in steno by ordering the sounds in steno order.

Some clusters, however, need to be handled differently:

Cluster Chord Remarks
/kst/ or "xt" -GT Optional
/ksd/ or "xd" -GD Optional
/ldʒ/ -LG
/nk/, /ŋk/ -FRPBG
/ntʃ/ -FRPB
/ɹtʃ/ -FRPB lunch/lurch conflict to be memorized
/ltʃ/ -LG
/nʃ/ -PBLGTS Optional
/ɹʃ/ -RLGTS Optional
/lʃ/ -LGTS Optional
/ɹb/ *RB Prevent conflicts with -sh
/ɹv/ -FRB
/lk/ *LG Optional
/lp/ -P /l/ is ignored.
/lm/ -PL /l/ is ignored. In many cases, the "l" is accounted for as part of the vowel, such as "calm" KAUPL

When arranging chords in steno order, we can safely ignore asterisks. For instance, /ɹst/ is *RS, since we can ignore the asterisk in *S and consider *S as a chord that comes after -R.

Final Inversion

In some instances, we cannot arrange the chords we need in steno order to completely represent a consonant cluster. Normally, this forces us to split the cluster into two, even if we are dealing with the last syllable of the word. However, in some cases, we can use inversion to reduce the total number of strokes. This is mostly optional.

Cluster Final Syllable Non-final Syllable With Inversion
/ɹf/ -R/SWR-F -R/STP... -FR
/ɹw/ -R/SWR-FB -R/SW... -FRB
/wɹ/ -FB/SWR-R -FB/SR... -FRB
/lf/ -L/SWR-F -L/STP... -FL
/lv/ -L/SWR*F -L/SR*... *FL
/lm/ -L/SWR-PL -L/SPH... -FRL
/dθ/ -D/SWR*T -D/STH... *TD
/lb/ -L/SWR-B -L/SPW... -BL
/mf/ -PL/SWR-F -PL/STP... -FPL

There are two inversion cases that are treated differently to avoid conflicts:

Cluster Without Inversion With Inversion
tle -T/SWR-L *LT
dle -D/SWR-L *LD

Orthographic Disambiguators

There are two cases where the pronunciation of a final is not enough to determine what chord to use:

Final Remarks
/ʒ/ If spelled with any sequence containing "s", use -RB. Otherwise, use -PBLG.
/ks/ If spelled as "x", use *BGS. Otherwise, treat it as /k/ + /s/ and write -BGS.

There is also a small selection of orthographic disambiguators. -FB has already been covered in the vowels section, but they will be mentioned again here:

Final Disambiguator Chord
Silent h, gh -PZ
-ght -GT
w, y -FB (For details on usage, see vowels.)

For instance:

  • hi: HAOEU
  • high: HAOEUPZ
  • lite: HRAOEUFT
  • light: HRAOEUGT

T and D

As stated before, the letters "t" and "d" are often pronounced as /tʃ/ and /dʒ/. In these cases, they should be stroked orthographically, as it can be rather difficult to predict when such pronunciations occur. However, they can be stroked phonetically sometimes, based on the General American accent:

  • nature: NAEUT/SWRAOUR or NAEUT/SWRUR or NAEUFP/SWRAOUR or NAEUFP/SWRUR
  • graduate (verb): TKPWRAD/SWAEFT or TKPWRAPBLG/SWAEFT

Users are recommended to either use the orthographic outlines, or to define their own phonetic outlines to fill in the gaps of the dictionary based on their personal preferences.

Folded Suffixes

There are a few folded suffixes supported by Plover:

Suffixes Chords Remarks
ing -G When briefing, we can use -DZ when -G is not available.
d, ed -D When briefing, we can use -TD for "-ded".
s, es -S, -Z Depends on which one is easier to press (-TS vs -DZ)

It is generally recommended to write these suffixes separately to avoid conflicts, but with sufficient familiarity with one's own dictionary, they can be folded.

Additionally, there are a few suffixes that can be "folded", but must be defined explicitly in the dictionary. They are optional and mostly used in briefs.

Suffixes Chords Remarks
re, er -R Conflict-prone, use with caution
al, ly -L Conflict-prone, use with caution

In the case of "al" or "ly", if -L is not available, the left bank chord HR can be used instead, even if it means overlapping chords on the left bank. For instance:

  • finally: TPHRAOEUPBL
  • normally: TPHROFRL

-F as S

In some cases, we need to write the letter "s" before another consonant; this is made difficult by the fact that the -S key is near the end of steno order. In these cases, we can use -F to represent "s" instead. Here are some examples:

Cluster Chord
"s" + /p/ -FP
"s" + /k/ -FBG
"s" + /m/ -FPL
"s" + /l/ -FL

Note that "st" is not -FT, but *S. This is to avoid conflicts.

By adding an asterisk, we can represent the letter "z" as well, though this is much less common:

Cluster Chord
"z" + /p/ *FP
"z" + /k/ *FBG
"z" + /m/ *FPL
"z" + /l/ *FL

Another use case of -F is for the "-sing" final, where we need to combine a final "s" with a folded "-ing" suffix. Instead of using -GS, we can use -FG instead. This, however, is not encouraged, due to the increased conflict rates. Beginners are still recommended to write -G as a separate stroke, unless they are familiar enough with their own dictionary to know when -FG will give them the right output.

-FR as M

Similar to how -F can represent "s", we can use -FR to represent the /m/ sound whenever we cannot represent a cluster that contains the sound properly using steno order without overlapping. For instance:

Cluster Chord Remarks
/mp/ -FRP
/mk/ -FRBG
/mn/ -FRPB
/ml/ -FRL
/mb/ -FRB There are instances where the "b" in "mb" is silent, but this can be difficult to predict. Hence -FRB is used to represent "mb" in all instances as an orthographic override, rather than a phonetic chord.

Asterisk Dropping in V and Z

For convenience, the asterisk in *F used to represent /v/ can be dropped whenever there are no conflicts. For instance:

  • rave: RAEF or RA*EF
  • save: SA*EF, but not SAEF due to conflict with "safe"

This can also apply to instances where *F is used to represent "z":

  • freezer: TPRAOEFR or TPRAO*EFR
  • razer: RA*EUFR, but not RAEUFR due to conflict with "racer"

Advanced finals

There are also a few finals that represent an entire syllable; they are used in write-outs and should be taught fairly early on, but are optional.

Final Chord Syllable Replacement Remarks
/bəl/ -BL Yes
/pəl/ -PL Yes
/fəl/, /fuːl/ -FL Yes
/vəl/, /zəl/ *FL - Subject to asterisk dropping.
/təl/ *LT - See section above on Final Inversions.
/dəl/ *LD - Same as above.
/fəɹ/, /ðəɹ/ -FR -
/vəɹ/ *FR - Subject to V asterisk dropping.
/ʒəɹ/, /dʒəɹ/ *FR - Asterisk cannot be dropped. (TBC)
/mənt/ -PLT Yes
/nəs/, /nɪs/ -PBS Yes
/ʃən/, /ʒən/, /dʒən/ -GS Yes
/nʃən/, /neɪʃən/ -PBGS -
/kʃən/, /keɪʃən/ -BGS -
/lʃən/, /luːʃən/, /luːʒən/ -LGS -
/ŋkʃən/ -FRPBGS -
/ʃəl/, /ʒəl/ -RBL Yes
/ʃəs/, /ʒəs/ -RBS Yes

For the finals above that have been labelled "Yes" under the Syllable Replacement column, that means that in cases where we need to represent the syllable as a whole chord in a write-out outline, we can use the final along with the joiner SWR to replace the conventional syllable stroke. For instance:

  • digestion: TKAOEUPBLG/SWR*ES/SWR-GS (also .../SH*OPB)
  • wonderful: WOPBD/SWRER/SWR-FL (also .../STPUL)

Syllable Splitting

Syllable splitting refers to how multi-syllable words are split into sequences of strokes. By providing a single standard for splitting syllables, we can make outlines more predictable whilst reducing the dictionary size needed.

Right Greedy Splitting

Cocoa Theory chooses to use right greedy splitting, where each stroke tries to "consume" as many consonants to its right as "greedily" as possible. This comes with a few constraints:

  • Final sounds cannot overlap
  • Final sounds cannot break steno order; as mentioned before, asterisks are not considered when we talk about steno order.

Any consonants that fail to be grouped to the nearest vowels on their left will instead be grouped to the right; in cases where it cannot be grouped to the right, these consonants will constitute their own separate stroke, with the sounds being placed on the right.

If a non-starting syllable has no initials, we use the left joiner chord SWR to indicate that it should attach to the previous output. However, if a syllable does have initials, then we have to modify the left bank chord like so:

  • If the left bank chord is KWR, we do not modify it.
  • If the left bank chord does not contain S-, we add S-. For example, the "rum" in "fulcrum" is SRUM, with the S- added to indicate that it should attach to the left; the full outline would thus be TP*ULG/SRUM.
  • If the left bank chord already contains S-, we add *. For example, the "ship" in "hardship" is SH*EUP, with the asterisk added to indicate that it should attach to the left; the full outline would thus be HARD/SH*EUP. Note that this does not apply to just "s", but any left bank chord that contains S-. If the chord already contains an asterisk due to the right side, we can keep using the same asterisked stroke.

Right greedy splitting may seem unnatural to some on their first impression. With sufficient practice, however, it should become second nature. The advantage of right greedy splitting is that many of the split syllables tend not to be individual words themselves, allowing us to greatly reduce the number of boundary issues present in the theory.

Dividing Clusters

There are clusters or partial clusters that some users may find difficult to divide purely greedily; there is thus some leniency in the way they are divided:

Cluster Greedy Alternatives
/stɹ/ ...*S/SR... ...S/STR...
/kstɹ/ (Spelled with x) ...GT/SR... ...*BGS/STR...
/tɹ/ ...T/SR... .../STR...
/dɹ/ ...D/SR... .../STKR...

Left Bank Glides

When the syllable starts with /j/ or /i/, we can use the KWR chord to indicate it; similarly, when a syllable starts with /w/, /u/, or /ʊ/, we can use the W key. However, there are cases where a user might try to insert these initials even though they have already been represented by the previous stroke. Whilst they are free to add such outlines, they are not part of the main theory:

  • altruistic: ALT/SRAOU/SWR*EUS/SWREUBG (alt-ruu-ist-ic, not alt-ruu-wist-ic)
  • piano: PEU/SWRAPB/SWROE (pi-an-oe, not pi-yan-noe)

Syllable/Stroke Dropping

Users who wish to take advantage of syllable or stroke dropping may do so, even though they are often based on stress patterns and thus are optional. It is important to still keep using the additional S- where applicable to indicate attached strokes to avoid boundary errors.

For words that have 2-stroke write-outs, no strokes can be dropped.

For words that have 3-stroke write-outs, we can drop the centre stroke after giving any of its finals to the initial of the third stroke, if there is space. Note that 3-stroke write-outs do not necessarily correspond to 3-syllable words. Some examples include:

  • similar: SEUPL/SWREUL/SWRARSEUPL/SHRAR
  • preposition: PREP/SWROS/SWREUGSPREP/S*EUGS
  • filament: TPEUL/SWRAPL/SWREPBTTPEUL/SWR-PLT

For words that have write-outs with more strokes, syllable dropping is based on stress. Some of these entries will be included in the dictionary, but there are currently no plans to include these write-outs for rarer words.

  • similarly: SEUPL/SWREUL/SWRARL/KWREUSEUPL/SHRARL/KWREU
  • prepositional: PREP/SWROS/SWREUGS/SWRALPREP/S*EUGS/SWRAL
  • hyperbolical: HAOEUP/SWR*ERB/SWROL/SWREUBG/SWRALHAOEUP/SPWOL/SKAL

Consonant Greedy

Consonant greedy is an alternative to syllable dropping that reduces the number of strokes per word, without relying on stress. This is accomplished by attempting to squeeze as many consonants or consonant clusters into each stroke as possible, ignoring the vowels between strokes or between consonants on the same side of a stroke, and ignoring any final consonants if the stroke can't accomodate more and the following stroke cannot include it in its initial. For instance:

  • similarly: SEUPL/SWREUL/SWRARL/KWREUSPHEUL/SHREU (smil-ly)
  • prepositional: PREP/SWROS/SWREUGS/SWRALPREPS/SHO*PBL
  • hyperbolical: HAOEUP/SWR*ERB/SWROL/SWREUBG/SWRALHAOEUP/SPW*ERBLG/SWRAL

In some cases, after putting as many consonants on the left, we are left with no vowels for the thumbs because the splitting point is immediately followed by another consonant. When this occurs, we simply shift the minimal amount of consonants from the left to the right so that we can have a vowel on the thumbs. If the vowel is represented by a no-key chord, that's still okay. For instance:

  • cartography: KR... doesn't work, so KART/STKPWRAF/KWREU

To reduce the number of strokes needed for each word even further, we can make use of the inversions and folds introduced in the previous sections, as well as the -FR as M technique. For example:

  • similarly: SPHREURL
  • intricately: SPWREUBLGT

-y Suffix

The "-y" suffix is written using KWREU (unless pronounced as the "price" vowel) and needs to be memorized explicitly. It also applies to cases where "y" is immediately followed by a final. Here are a few examples of it being used:

  • happy: HAP/KWREU
  • happily: HAP/SWREUL/KWREU
  • methyl: PH*ET/KWREUL

When it is pronounced as the price vowel, we either stroke it phonetically or use the disambiguator:

  • rely: REL/SWRAOEUFB, REL/SWRAOEU
  • deny: TKEPB/SWRAOEUFB, TKEPB/SWRAOEU

This only applies when there are no initials, and the only vowel is "y" itself. If there are initials, the suffix would be written with the -y represented phonetically as EU.

Whilst this usually occurs at the end of words, it can also occur in the middle of words, which the user may not be used to due to its relative rarity. As such, these words are usually supplemented with outlines where SWREU is used instead. For example:

  • anonymous: APB/SWROPB/SWREUPL/SWROUS or APB/SWROPB/KWREUPL/SWROUS
  • analytics: APB/SWRAL/SWREUT/SWREUBGS or APB/SWRAL/KWREUT/SWREUBGS

Edge Cases

Silent Finals in French Loanwords

French loanwords often come with silent letters at the end; they can either be ignored in phonetic outlines, or included as part of orthographic outlines.

Ending Pronunciation Full Orthographic Standard Phonetic
ailles /aɪ/ AEUS AEU AOEU
ais /eɪ/ AEUS AEU AEU
ait /eɪ/ AEUT AEU AEU
eaux /oʊ/ O*EBGS OE OE
er /eɪ/ ER AEU AEU
et /eɪ/ ET AEU AEU
ez /eɪ/ EZ AEU AEU
ieux /juː/ AO*UBGS AOU AOU
ioux /juː/ O*UBGS OU AOU
is /i/ EUS EU EU
ois /wɑ/ OEUS WA or ...AOU/SWRA
oix /wɑ/ O*EUBGS WA or ...AOU/SWRA
oix /ɔɪ/ O*EUBGS WA or ...AOU/SWRA OEU
ot /oʊ/ OT OE OE
oup /uː/ OUP OU AOU
ous /uː/ OUS OU AOU
oux /uː/ O*UBGS OU AOU

This is by no means an exhaustive list, but outlines for such words generally follow either their spelling or purely phonetically. Alternatively, we can also write the vowel orthographically, but drop the silent letter at the end.

Greek and Latin Plurals

The regular -S stroke will not work properly on words with irregular Greek or Latin plurals. Instead, they are stroked as if the plural form is a separate word. This is such that in cases where both the irregular and regular plurals are accepted, they can both be stroked in a predictable manner.

Singular Plural Origin Examples
a ae Latin 1st Declension larva HRAFRB/SWRA, larvae HRAFRB/SWRAE
us i Latin 2nd Declension Masc. radius RAEUD/KWRUS, radii RAEUD/SWREU/SWRAOEU or RAEUD/KWRAOEU
um a Latin 2nd Declension Neut. minimum PHEUPB/SWREUPL/SWRUPL, minima PHEUPB/SWREUPL/SWRA
ex ices Latin 3rd Declension vertex SRERT/SWR*EBGS, vertices SRERT/SWREUS/SWRAOES
ix ices Latin 3rd Declension matrix PHAEUT/SR*EUBGS, matrices PHAEUT/SREUS/SWRAOES
is es Latin 3rd Declension axis A*BGS/SWREUS, axes A*BGS/SWRAOES
ur ora Latin 3rd Declension femur TPAOEPL/SWRUR, femora TPAOEPL/SWROR/SWRA
us ora Latin 3rd Declension corpus KORP/SWRUS, corpora KORP/SWROR/SWRA
us era Latin 3rd Declension genus SKWRAOEPB/SWRUS, genera SKWRAOEPB/SWRER/SWRA
on a Greek 2nd Declension Neut. criterion KRAOEUT/SWRAOER/KWROPB, criteria KRAOEUT/SWRAOER/KWRA
a ata Greek 3rd Declension Neut. stoma STOEPL/SWRA, stomata STOEPL/SWRAT/SWRA
us odes Greek 3rd Declension Masc./Fem. octopus OBGT/SWROP/SWRUS, octopodes OBGT/SWROP/SWROEFDZ

Common briefs

Briefs refer to outlines that do not strictly follow all the core rules listed before. Groups of briefs may still have internally consistent patterns, but they would still have to be explicitly memorized.

Here is a list of briefs for the most common words. Mandatories are generally avoided, but for the most common words, their briefs are still recommended over their rule-based outlines such that phrasing is made simpler.

Word Chord Mandatory Remarks
the -T Yes THE is assigned to "they"
be -B Yes PWE is currently reserved for the "be-" prefix.
of -F Yes OF is assigned to "off"
and SKP APBD also works, but the brief is always recommended.
a A AEU also works.
is S Yes
are R or -R Yes
was -FS WAS also works and is taught first. -FS is mostly used in phrasing.
were WR or -RP Yes -RP is mostly used in phrasing.
in TPH Yes
this TH THEUS also works, but the brief is recommended.
that THA Yes THAT is assigned to "that the".
those THOS THOZ and THOEZ also work.
these THES THEZ and THAOEZ also work.
have SR HA*F also works.
I EU Yes
you U Yes
it T-
it's T-S "its" is EUTS, "it is" is T*S.
they THE THEFB also works, but the brief is recommended.
for TP-R Yes TPOR is assigned to "fore"
with W W*EUT also works, but the brief is recommended.
without WOUT W*EUT/SWROUT also works.
did TK
doing TKAOG TKOG is assigned to "dog".
but TPW PWUT also works. "butt" is PW*UT or PWUT/SWR-T.
by PW Yes PWAOEU is "bi" and PWAOEUFB is "buy".
from TPR TPROPL also works, but the brief is recommended.
will HR WEUL also works, but the brief is recommended.
would WO WOULD also works, but the brief is recommended.
can K KAPB also works, but is more commonly used in contexts such as "metal can".
could KO KOULD also works, but the brief is recommended.
should SHO SHOULD also works, but the brief is recommended.
my PHEU PHAOEUFB also works, but the brief is recommended.
one WUPB A weird quirk of the English language. Should be memorized along with "once" WUPBS.
there TH-R Yes See "their" and "they're" below.
their THAEUR or THAER See surrounding entries for "there" and "they're".
they're THER Yes See "there" and "their" above.
what WHA Yes WHAT is assigned to "what the".
which WEU WHEUFP is the rule-based outline; WEUFP is "witch".
when WH WHEPB also works, but the brief is recommended.
whether WHR WH*ET/SWRER also works.
why KWR WHAOEUFB also works, but the brief is recommended.
if TP Yes
just SKWR SKWR*US also works, but the brief is recommended.
into TPHAO Inherited from Plover.
go TKPW TKPWO also works.
good TKPW-D TKPWAOD also works.
some SPH SOPL also works.
other OER "o'er" is O*ER and is a mandatory.
only OPBL
over OEFR
because PWAU While some other theories use PWAUS, the -S has been removed here such that phrase briefs such as PWAUF for "because of" would fit steno order.
away WAU Completely arbitrary. AFB/SWRAEUFB also works.
about P

"n't" is attached with -PBT, and "'ve" is attached with *F. For instance:

  • didn't: TK-PBT
  • would've: WO*F

Numbers

Single Digits & Trailing Zeros

Cocoa Theory uses the right hand numpad system for numbers. Digits are entered like so:

Digit Chord Digit Chord Digit Chord
7 #-F 8 #-P 9 #-L
4 #-FR 5 #-PB 6 #-LG
1 #-R 2 #-B 3 #-G
0 #E 00 #U 000 #EU

While numbers are usually entered digit-by-digit, we can add one to three zeros by using the EU keys:

  • 40: #EFR
  • 200: #UB
  • 8000: #EUP

Two-digit and Three-digit Numbers

We can write 2 to 3 digit numbers that don't end with 0 if they are on different columns and follow steno order from left to right. For example:

  • 23: #-BG
  • 489: #-FRPL
  • 12600: #URBLG

We can also add an additional digit 5 by including the -S key, like so:

  • 65: #-LGS
  • 835: #-PGS
  • 1550: #ERPBS

These additions will always come before the zeroes represented by the thumb keys.

Number modifiers

There are also these additional modifiers, which change how the output is formatted:

Modifier Key/Chord Example On its own
Ordinal -T 3rd: #-GT, 25th: #-BTS . (Point separator)
Plural -Z 80s: #EPZ, 90s: #ELZ , (Comma separator)

These modifiers are not stackable.

Symbols

Cocoa Theory has its own system for symbols, but it was also made to be compatible with Emily's Symbols should the user choose to use that.

Punctuation

Most punctuation is done with KW on the right and either a phonetic or shape-based memorization hook on the thumb keys and right bank keys.

Punctuation Description Chord
.␣ Full Stop / Period -FPLT or TP-PL
. Decimal Point #-T or P-P
,␣ Comma -RBGS or KW-BG
, Decimal Comma #-S or W-B
?␣ Question Mark KW-FPG or KW-PL
!␣ Exclamation Mark KW-PB or TP-BG
:␣ Colon KWUF
;␣ Semicolon KWEUF
' Apostrophe KW-F
␣` Backtick KW-PG
␣' Opening Single Quote KW-P
'␣ Closing Single Quote KW-L
␣" Opening Double Quote KW-FP
"␣ Closing Double Quote KW-LT
␣` Opening Backtick KW-FB
`␣ Closing Backtick KW-LS
␣( Opening Parenthesis KWURP
)␣ Closing Parenthesis KWUPG
␣[ Opening Bracket KWUFP
]␣ Closing Bracket KWUPL
␣{ Opening Brace KWURPB
}␣ Closing Brace KWUPBG
/ Forward Slash KW-RL
\ Backslash KW-FG
* Asterisk KW-PBLG
@ At KWAT
␣-␣ Hyphen KW-RBG
- Joining Hyphen KW-FPL
~␣ Tilde KW-RPL
^ Caret KW-RPG
...␣ Ellipsis KW-BS
␣&␣ Ampersand KW-FRPBG or SKP*

Diacritics

Diacritics are not the priority right now and will be handled in the future using a plugin.

Formatting

Formatting control is done using a collection of "half-strokes". These are a work-in-progress.

Description Chord
Cycle Alternatives -RB
Insert Space SP
Suppress Space SWR
Retro Insert Space SP-D
Retro Suppress Space SWR*
All Uppercase Next -PBLG
Capitalize Next -PL
Lowercase Next -BG
Proper Noun Next -P
Retro Capitalize -PLD
Retro Lowercase -BGD
Retro Proper Noun -PD
Orthographic -FP
Orthographic Capitalize -FPL
Retro Orthographic -FPD
Steno Correction *
Delete Word SW
Return and Capitalize R-R
Return and Keep Case R-RB

Modifiers

A slightly modified version of Abby's left hand modifiers is used. Main modifier keys remain unchanged:

Modifier Stroke Remarks
Control KHR
Alt THRA
Shift SH
Super KPWR
Shift + Super SKPWHR
Alt + Super TKPWHRA
Alt + Shift STHRA
Alt + Super + Shift STKPWHRA
Ctrl + Super KPWHR
Ctrl + Shift SKHR
Ctrl + Shift + Super SKPWHRO Extra O
Ctrl + Alt TKHRA
Ctrl + Alt + Super TKPWHRAO Extra O
Ctrl + Alt + Shift STKHRA
Ctrl + Alt + Shift + Super STKPWHR Extra O

Letters follow the Fingerspelling Alphabet, with the exception of the following:

Letter Stroke Remarks
e SK
i SKR
u WR
x SKPH KP is not included as it is used for cancelling.

Numbers are done with AO held down, and holding down the asterisk is used when we need numpad keys rather than the numrow. Numbers are arranged in a numpad pattern rather than using binary, and S is added for the function row:

Number Stroke Number Stroke Number Stroke
7 TAO 8 PAO 9 HAO
4 TKAO 5 PWAO 6 HRAO
1 KAO 2 WAO 3 RAO
0 AO
F10 SAO F11 SKWAO F12 STPAO
F7 STAO F8 SPAO F9 SHAO
F4 STKAO F5 SPWAO F6 SHRAO
F1 SKAO F2 SWAO F3 SRAO

All other keys remain the same as the original:

Key Stroke
Period (.) PR
Comma (,) KPH
Slash (/) SHR
Backslash () SPWHR
Semicolon (;) SKHR
Apostrophe (Quote) (') KWO
Opening (Left) Bracket ([) PWHR
CLosing (Right) Bracket (]) PWR
Hyphen (Dash) (-) TKH
Equals (=) KWA
Grave (`) TKPWR
Up PA
Down WA
Left KA
Right RA
Page Up PA*
Page Down WA*
Home KA*
End RA*
Caps Lock KHR*
Scroll Lock SKHR*
Num Lock TPH*
Space SP
Return (Enter) SPWR
Tab TPW
Backspace SPW
Delete TKHR
Escape SKA
Insert STPH
Menu PH*
Print Screen SKPR
No Key TPHO

To cancel the modifier after pressing the modifier key, use KP.

Cocoa is designed to be compatible with Emily's Modifiers, but they would have to be adapted slightly to the new fingerspelling alphabet.

Orthographic System

The orthographic system is a system within Cocoa Theory intended to be an intermediate fallback for words that aren't in the dictionary, such that users can write unknown or foreign words quickly without resorting to fingerspelling. It is entirely orthographic, where chords are determined entirely based on spelling. For example:

"Tagalog ay isa sa mga pinakaginagamit na wika ng Pilipinas"
-FPL/TAG/KWHAL/KWHOG . -FP/ABZ . EUS/KWHA . -FP/SA . PH-G/KWHA . PEUPB/KWHALG/KWHAG/KWHEUPB/KWHAG/KWHAPL/KWHEUT . -FP/TPHA . WEULG/KWHA . -FP/-PBG . -FPL/PEUL/KWHEUP/KWHEUPB/KWHAS

Many of the chords in the orthographic system differ from the main theory, since we have to create different chords for groups of letters that would otherwise be pronounced the same way (thus require no distinction phonetically).

Due to the large output space of the orthographic system, it can only be realistically implemented as a programmatic dictionary; it is thus only available on Plover. Orthographic words must either have the KWH chord, or alternatively use one of the orthographic formatting chords - -FP, -FPL, or -FPD.

Since the system also uses the number key, it is expected to conflict with both numbers and the phrasing system. In these cases, it is better to use the orthographic system formatting strokes to avoid boundary issues with numbers and phrases.

Initials

Initials mostly resemble their phonetic counterparts. The largest exception is the linker, which is replaced with KWH - it is used to link the current stroke to the previous output, when there is no initial. When there is an initial, we add the number key # instead. Note that whenever a word is stroked using the orthographic system without ever using the KWH linker, we must use an orthographic formatting stroke at the front (-PL or -FPL) or back (-PLD) to indicate it.

Initial Chord Derivatives Remarks
(Linker) KWH We can use #KWH to double the previous letter.
b PW br PWR, bl PWHR, bh PWH
c KPW ch KPWH, cr KPWR, cl KPWHR
chl KWHR Conflicts with the much rarer initial "ql"
chr KHR Conflicts with the much rarer initial "kl"
cz SKP
d TK dr TKR, dh TKH, dw TKW
f TP fr TPR
fl TPHR Explicit entry added to avoid confusion with "nr".
ph TKP phr TKPR
phl TKPHR Explicit entry added to avoid confusion with "knr"
g TKPW gr TKPWR, gl TKPWHR, gh TKPWH
gn STKPW
h H
j SKWR
k K kr KR, kh KH
kl KP
kn TKPH
l HR
(Double) + l SKPHR Doubles previous letter and adds "l"
m PH
n TPH
p P pr PR
pl PHR Explicit entry added to avoid confusion with "mr".
pn TPW
ps STP
pt TWR
q KW
r R
(Double) + r Doubles previous letter and adds "r"
rh KPR
s S st ST, sp SP, sh SH, sc SKPW, str STR, sl SHR, sw SW, sn STPH, sk SK, scr SKPWR, sm SPH, sch SKPWH, spl SPHR, spr SPR, scl SKPWHR, skr SKR
shr SKHR Conflicts with sl, which has been assigned to SHR.
sq STK Conflicts with z, which has been assigned to SKW.
sph STKP Explicit entry so that it won't be misinterpreted as "sqh".
t T tr TR, th TH, tw TW
thr THR Conflicts with tl
thw TWH
ts STW
tz STKW
v SR
w W wh WH, wr WR
x SKPH
y KWR
z SKW

Not all initials are covered by the list below, mostly because they are too rare to justify having their own chord. In those cases, we can simply use the final to write the initial in a single stroke:

  • mn: PH-PB
  • ng: TPH-G
  • scht: SKPWH-T

Medials

To access the variant, add the asterisk * to the chord.

Chord Medial Variant Remarks
(Empty) (Empty) Reserved
A a ia Asterisk adds "i"
O o io Asterisk adds "i"
AO oo ao
E e ie Asterisk adds "i"
AE ea ae
OE oa oe
AOE ee ui
U u iu Asterisk adds "i"
AU au eou
OU ou iou Asterisk adds "i"
AOU ue eu
EU i y
AEU ai ua
OEU oi uo
AOEU ei eo

Here are some examples of the medials in use:

  • cautious: KPWAUT/KWHO*US
  • keine: KAO*EUPB/KWHE

Finals

Note that whenever we encounter a doubled consonant letter, we can use the doubling initial joiner for it. This eliminates the need to create dedicated final strokes for doubled letters such as "tt" or "dd", but some of them are still included due to their high frequency.

In many of these chords, we add either a -Z, -D, or -F to avoid conflicts.

Final Chord Derivatives Remarks
b -B bs -BS, bt -BT, bl -BL
c -BG ct -BGT, cts -BGTS -BG is used for "c" as it is more common; k has been assigned another chord
ch -FP chs -FPS, cht -FPT, chts -FPTS
ck -BLG cks -BLGS
d -D
ddl -FLGDZ Extended from "dl" by adding -F
dg -GD
dl -LGDZ From Ireland's Stenotypy
f -F ft -FT, fs -FS, fts -FTS
g -G
gh -PG ght -PGT, ghts -PGTS, ghs -PGS
gm -PLG
gn -PBGZ -Z used to indicate inversion
gs -GSZ -Z used to avoid conflicts with "tion"
h -PZ
j -PBLG
k -LG Arbitrary chord assigned to separate it from "c"
kh -PLGZ Stacked "k" and "h"
ks -LGS
l -L ls -LS, ld -LD, lt -LT, lts -LTS
lb -BLZ -Z used to indicate inversion and avoid conflicts with "bl"
lc -BLGZ Stacked "l" and "c", -Z used to avoid conflicts with "ck"
lch -LGZ -Z used to avoid conflicts with "k"
lf -FLZ -Z used to indicate inversion
lg -LGD -D used since -LGZ taken by "lch"
lk -FRLG Arbitrary chord assigned to avoid conflicts
ll -LZ
lm -FRLZ -FR used for "m", -Z used to indicate inversion
ln -PBLZ -Z used to indicate inversion
lp -PLD -Z used to indicate inversion
lph -FLD
lth -LTD
m -PL
mb -FRB mbs -FRBS -FR used for "m"
ment -PLT
ml -FRL -FR used for "m"
mn -FRPBD -D used to avoid conflicts with "nch"
mp -FRP mps -FRPS, mpt -FRPT, mpts -FRPTS
mph -FPLZ -Z used to avoid conflicts with "sm"
n -PB ns -PBS, nd -PBD, nst -PBSZ, nt -PBT, nth -PBTH, nts -PBTS
nc -FRPBGZ -Z used to avoid conflicts with "nk"
nch -FRPB nchs -FRPBS
nct -FRPBGT Note that this chord isn't used for "nkt"
ng -PBG ngth -PBGTD
ngs -PBGS
nk -FRPBG nks -FRPBGS See "nc"
nm -FRPBDZ -DZ used to avoid conflicts with "nch"
nx -FRPBGSZ
p -P ps -PS, pt -PT, pts -PTS
ph -FZ -Z used to avoid conflicts with "f"
pl -PLD -D used to avoid conflicts with "m"
q -GZ Arbitrary chord assigned to separate it from "c" and "k"
r -R rs -RS, rd -RD, rm -RPL, rt -RT, rk -RLG, rn -RPB, rts -RTS, rks -RLGS, rms -RPLS, rns -RPBS, rl -RL, rth -RTD, rp -RP, rls -RLS, rg -RG, rst -RSZ, rps -RPS, rgs -RGSZ, rld -RLD, rnt -RPBT, rgh -RPG
rb -RBZ -Z used to avoid conflicts with "sh"
rc -RBG
rch -FRPBZ -Z used to avoid conflicts with "nch"
rf -FR or -FRZ rfs -FRS -Z can be used to indicate inversion, but is not necessary.
rph -FRD -D used to avoid conflicts with "rf"
rv -FRBD -D used to avoid conflicts with "mb"
rw -FRBZ -Z used to avoid conflicts with "mb"
s -S
sc -FBG
sch -FPSZ -Z used to indicate inversion
sh -RB sht -RBT
sk -FLG
sm -FPL sms -FPLS
sp -FPZ -Z used to avoid conflicts with "ch"
ss -TSDZ
st -SZ -Z used to avoid conflicts with "s"
t -T ts -TS
tch -FPTD -D used to indicate inversion
th -TD -D used to avoid conflicts with "t"
tion -GS
tl -LGTS From Ireland's Stenotypy
ttl -FLGTS Extended from "tl" by adding -F
v -FD -D used to avoid conflicts with "f"
w -FB ws -FBS, wl -FBL, wls -FBLS, wk -FBLG, wth -FBTD, wd -FBD, wks -FBLGS, wt -FBT
x -BGS Since the asterisk is for medials, we don't use the asterisk here
xt -GT xts -GTS
y -BZ Arbitrary chord assigned to separate it from "w"
z -Z

Phrasing System

About

Cocoa Theory Specifications

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published