# liblouis: International Phonetic Alphabet

# Copyright (C) 2016 Ludovic Oger <oger.ludovic@gmail.com>

#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation, either version 2.1 of the
#  License, or (at your option) any later version.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.


# This table contains braille codes for International Phonetic Alphabet (2005)


# --------REFERENCES--------
#   - IPA Braille: An Updated Tactile Representation of the International Phonetic Alphabet
#     Print Edition
#     Edited by Robert Englebretson, Ph.D.
#     Produced by CNIB
#     For the International Council on English Braille - 2008
#     <http://www.iceb.org/icebipa.htm>
#     (this reference document is reprinted in 'World Braille Usage - Third Edition - 2013 - Copyright (C) 1954, 1990 UNESCO')
#
#   - "IPA Chart, http://www.internationalphoneticassociation.org/content/ipa-chart,
#      available under a Creative Commons Attribution-Sharealike 3.0 Unported License.
#      Copyright (C) 2015 International Phonetic Association."


#--------NOTES--------
#
# Some lines are commented:
#   - Characters include in latinLetterDef6Dots.uti table (a, b, c...)
#   - possible conflicts with some local braille codes:
#       - French braille: β (beta), θ (theta), ç (c cedilla), χ (chi), | (vertical line), . (full stop (point))
#       - ... (other braille code?)
#   - Tricky character compositions, see end of 'Tones and Word Accents'
#   - 'Phonetic and Phonemic Enclosures'
#
# Some IPA unicode characters are not present in the reference document so there is no braille equivalent.
#   Example: \X02D4 for 'MODIFIER LETTER UP TACK',
#            see <http://unicode.org/cldr/utility/list-unicodeset.jsp?a=\p{subhead=Miscellaneous%20phonetic%20modifiers}>


# Last updated on March 17, 2017


#-----------------------------------
# Lines order follows the Englebretson's reference document.

#--------PULMONIC CONSONANTS--------
# UNICODE DOTS          # GLYPH - TYPOGRAPHIC DESC. - ARTICULATORY DESC.
# sign \X0070 1234      # p - lowercase p - voiceless bilabial plosive
# sign \X0062 12        # b - lowercase b - voiced bilabial plosive
# sign \X0074 2345      # t - lowercase t - voiceless alveolar plosive
# sign \X0064 145       # d - lowercase d - voiced alveolar plosive
sign \X0288 256-2345    # ʈ - right-tail t - voiceless retroflex plosive
sign \X0256 256-145     # ɖ - right-tail d - voiced retroflex plosive
# sign \X0063 14        # c - lowercase c - voiceless palatal plosive
sign \X025F 35-245      # ɟ - barred dotless j - voiced palatal plosive
# sign \X006B 13        # k - lowercase k - voiceless velar plosive
sign \X0261 1245        # ɡ - lowercase script g - voiced velar plosive
# sign \X0067 1245      # g - lowercase g - voiced velar plosive (alternate glyph)
# sign \X0071 12345     # q - lowercase q - voiceless uvular plosive
sign \X0262 35-1245     # ɢ - small capital g - voiced uvular plosive
sign \X0294 23          # ʔ - glottal stop - glottal plosive
# sign \X006D 134       # m - lowercase m - voiced bilabial nasal
sign \X0271 235-134     # ɱ - left-tail m (at right) - voiced labiodental nasal
# sign \X006E 1345      # n - lowercase n - voiced alveolar nasal
sign \X0273 256-1345    # ɳ - right-tail n - voiced retroflex nasal
sign \X0272 123456      # ɲ - left-tail n (at left) - voiced palatal nasal
sign \X014B 1246        # ŋ - eng - voiced velar nasal
sign \X0274 35-1345     # ɴ - small capital n - voiced uvular nasal
sign \X0299 35-12       # ʙ - small capital b - voiced bilabial trill
# sign \X0072 1235      # r - lowercase r - voiced alveolar trill
sign \X0280 35-1235     # ʀ - small capital r - voiced uvular trill
sign \X2C71 235-1236    #  (UTF-16) - right-hook v - labiodental flap
sign \XF25F 235-1236    #  (UTF-16) - right-hook v - labiodental flap
sign \X027E 235-1235    # ɾ - fish-hook r - voiced alveolar tap
sign \X027D 256-1235    # ɽ - right-tail r - voiced retroflex flap
sign \X0278 46-124      # ɸ - 'phi' (latin small letter phi) - voiceless bilabial fricative (IPA Extensions here, greek phi is \X03D5)
# sign \X03B2 46-12     # β - beta - voiced bilabial fricative
# sign \X0066 124       # f - lowercase f - voiceless labiodental fricative
# sign \X0076 1236      # v - lowercase v - voiced labiodental fricative
# sign \X03B8 46-1456   # θ - theta - voiceless dental fricative
sign \X00F0 12456       # ð - edh - voiced dental fricative
# sign \X0073 234       # s - lowercase s - voiceless alveolar fricative
# sign \X007A 1356      # z - lowercase z - voiced alveolar fricative
sign \X0283 156         # ʃ - esh - voiceless postalveolar fricative
sign \X0292 2346        # ʒ - ezh - voiced postalveolar fricative
sign \X0282 256-234     # ʂ - right-tail s (at left) - voiceless retroflex fricative
sign \X0290 256-1356    # ʐ - right-tail z - voiced retroflex fricative
# sign \X00E7 235-14    # ç - c cedilla - voiceless palatal fricative
sign \X029D 236-245     # ʝ - curly-tail j - voiced palatal fricative
# sign \X0078 1346      # x - lowercase x - voiceless velar fricative
sign \X0263 46-1245     # ɣ - 'gamma' (latin small letter gamma) - voiced velar fricative (IPA Extensions here, greek gamma is \X03B3)
# sign \X03C7 46-12346  # χ - chi - voiceless uvular fricative
sign \X0281 35-3456     # ʁ - inverted small capital r - voiced uvular fricative
sign \X0127 235-125     # ħ - barred h - voiceless pharyngeal fricative
sign \X0295 235-23      # ʕ - reversed glottal stop - voiced pharyngeal fricative or approximant
# sign \X0068 125       # h - lowercase h - voiceless glottal fricative
sign \X0266 236-125     # ɦ - hooktop h - voiced glottal fricative
sign \X026C 236-123     # ɬ - belted l - voiceless alveolar lateral fricative
sign \X026E 123-5-2346  # ɮ - l-ezh ligature - voiced alveolar lateral fricative
sign \X028B 236-1236    # ʋ - script v - voiced labiodental approximant
sign \X0279 3456        # ɹ - turned r - voiced alveolar approximant
sign \X027B 256-3456    # ɻ - turned r, right tail - voiced retroflex approximant
# sign \X006A 245       # j - lowercase j - voiced palatal approximant
sign \X0270 236-134     # ɰ - turned m, right leg - voiced velar approximant
# sign \X006C 123       # l - lowercase l - voiced alveolar lateral approximant
sign \X026D 256-123     # ɭ - right-tail l - voiced retroflex lateral approximant
sign \X028E 236-13456   # ʎ - turned y - voiced palatal lateral approximant
sign \X029F 35-123      # ʟ - small capital l - voiced velar lateral approximant


#--------NON-PULMONIC CONSONANTS--------
# UNICODE DOTS          # GLYPH - TYPOGRAPHIC DESC. - ARTICULATORY DESC.
sign \X0253 236-12      # ɓ - hooktop b - voiced bilabial implosive
sign \X0257 236-145     # ɗ - hooktop d - voiced dental/alveolar implosive
sign \X0284 236-35-245  # ʄ - hooktop barred dotless j - voiced palatal implosive
sign \X0260 236-1245    # ɠ - hooktop g - voiced velar implosive
sign \X029B 236-35-1245 # ʛ - hooktop small capital g - voiced uvular implosive
sign \X0298 12346-1234  # ʘ - bull's eye - bilabial click
sign \X01C0 12346-1456  # ǀ - pipe - dental click
sign \X01C3 12346-2345  # ǃ - exclamation point - (post-)alveolar click
sign \X01C2 12346-156   # ǂ - double-barred pipe - palatoalveolar click
sign \X01C1 12346-123   # ǁ - double pipe - alveolar lateral click


#--------OTHER PULMONIC CONSONANTS--------
# UNICODE DOTS          # GLYPH - TYPOGRAPHIC DESC. - ARTICULATORY DESC.
sign \X028D 235-2456    # ʍ - turned w - voiceless labial-velar fricative
# sign \X0077 2456      # w - lowercase w - voiced labial-velar approximant
sign \X0265 256-125     # ɥ - turned h - voiced labial-palatal approximant
sign \X029C 35-125      # ʜ - small capital h - voiceless epiglottal fricative
sign \X02A1 236-23      # ʡ - barred glottal stop - epiglottal plosive
sign \X02A2 35-23       # ʢ - barred reversed glottal stop - voiced epiglottal fricative
sign \X0267 236-1246    # ɧ - hooktop heng - simultaneous voiceless postalveolar and velar fricative
sign \X027A 236-3456    # ɺ - turned long-leg r - voiced alveolar lateral flap
sign \X0255 236-14      # ɕ - curly-tail c - voiceless alveolopalatal fricative
sign \X0291 236-1356    # ʑ - curly-tail z - voiced alveolopalatal fricative
sign \X026B 235-123     # ɫ - lowercase l with tilde - velarized voiced alveolar lateral approximant


#--------VOWELS--------
# UNICODE DOTS          # GLYPH - TYPOGRAPHIC DESC. - ARTICULATORY DESC.
# sign \X0069 24        # i - lowercase i - close front unrounded vowel
# sign \X0065 15        # e - lowercase e - close-mid front unrounded vowel
sign \X025B 345         # ɛ - 'epsilon' (latin small letter open e) - open-mid front unrounded vowel (IPA Extensions here, greek epsilon is \X03B5)
# sign \X0061 1         # a - lowercase a - open front unrounded vowel
sign \X0251 16          # ɑ - script a - open back unrounded vowel
sign \X0254 126         # ɔ - open o - open-mid back rounded vowel
# sign \X006F 135       # o - lowercase o - close-mid back rounded vowel
# sign \X0075 136       # u - lowercase u - close back rounded vowel
# sign \X0079 13456     # y - lowercase y - close front rounded vowel
sign \X00F8 1256        # ø - slashed o - close-mid front rounded vowel
sign \X0153 246         # œ - lowercase o-e ligature - open-mid front rounded vowel
sign \X0276 35-246      # ɶ - small capital o-e ligature - open front rounded vowel
sign \X0252 235-16      # ɒ - turned script a - open back rounded vowel
sign \X028C 346         # ʌ - turned v (caret) - open-mid back unrounded vowel
sign \X0264 235-135     # ɤ - ram's horns - close-mid back unrounded vowel
sign \X026F 235-136     # ɯ - turned m - close back unrounded vowel
sign \X0268 356-24      # ɨ - barred i - close central unrounded vowel
sign \X0289 356-136     # ʉ - barred u - close central rounded vowel
sign \X026A 34          # ɪ - small capital i - near-close near-front unrounded vowel
sign \X028F 35-13456    # ʏ - small capital y - near-close near-front rounded vowel
sign \X028A 12356       # ʊ - 'upsilon' (latin small letter upsilon) - near-close near-back rounded vowel (IPA Extensions here, greek upsilon is \X03C5)
sign \X0259 26          # ə - schwa - mid central vowel
sign \X0275 356-135     # ɵ - barred o - close-mid central rounded vowel
sign \X0250 235-1       # ɐ - turned a - near-open central vowel
sign \X00E6 146         # æ - ash - near-open front unrounded vowel
sign \X025C 235-345     # ɜ - reversed epsilon - open-mid central unrounded vowel
sign \X025A 26-5-1235   # ɚ - right-hook schwa - r-colored mid central vowel
sign \X025E 236-345     # ɞ - closed reversed epsilon - open-mid central rounded vowel
sign \X0258 235-15      # ɘ - reversed e - close-mid central unrounded vowel


#--------DIACRITICS--------
# UNICODE DOTS          # GLYPH - TYPOGRAPHIC DESC. - ARTICULATORY DESC.
sign \X02BC 5-3         # ʼ - apostrophe - ejective
sign \X0325 6-1246      # ̥  - ring below - voiceless
sign \X030A 4-1246      # ̊  - ring above - voiceless
sign \X032C 6-236       # ̬  - wedge below - voiced
sign \X02B0 4-125       # ʰ - superscript h - aspirated
sign \X0324 6-25        # ̤  - umlaut below - breathy voiced
sign \X0330 6-12456     # ̰  - tilde below - creaky voiced
sign \X033C 6-12346     # ̼  - seagull below - linguolabial
sign \X032A 6-1456      # ̪  - bridge below - dental
sign \X033A 6-235-1456  # ̺  - inverted bridge below - apical
sign \X033B 6-2356      # ̻  - square below - laminal
sign \X0339 6-135       # ̹  - right half-ring below - more rounded
sign \X031C 6-246       # ̜  - left half-ring below - less rounded
sign \X031F 6-346       # ̟  - plus below - advanced
sign \X0320 6-36        # ̠  - minus below - retracted
sign \X0308 4-25        # ̈  - umlaut above - centralized
sign \X033D 4-1346      # ̽  - over-cross above - mid-centralized
sign \X0318 6-156       # ̘  - advancing sign below - advanced tongue root
sign \X0319 6-234       # ̙  - retracting sign below - retracted tongue root
sign \X02DE 5-1235      # ˞  - right hook - rhoticity
sign \X02B7 4-2456      # ʷ - superscript w - labialized
sign \X02B2 4-245       # ʲ - superscript j - palatalized
sign \X02E0 4-46-1245   # ˠ - superscript gamma - velarized
sign \X02E4 4-235-23    # ˤ - superscript reversed glottal stop - pharyngealized
sign \X0303 4-12456     # ̃  - tilde above - nasalized
sign \X207F 4-1345      # ⁿ - superscript n - nasal release
sign \X02E1 4-123       # ˡ - superscript l - lateral release
sign \X031A 4-145       # ̚  - corner above - no audible release
sign \X0334 5-12456     # ̴  - superimposed tilde - velarized or pharyngealized
sign \X031D 6-345       # ̝  - raising sign below - raised
sign \X031E 6-126       # ̞  - lowering sign below - lowered
sign \X0329 6-23        # ̩  - vertical line below - syllabic
sign \X032F 6-23456     # ̯  - arch below - non-syllabic
sign \X0361 5           # ͡  - top tie bar - affricate or double articulation


#--------SUPRASEGMENTALS--------
# UNICODE DOTS          # GLYPH - TYPOGRAPHIC DESC. - ARTICULATORY DESC.
sign \X02C8 456-12      # ˈ - vertical stroke (superior) - (primary) stress
sign \X02CC 456-23      # ˌ - vertical stroke (inferior) - secondary stress
sign \X02D0 25          # ː - length mark - long
sign \X02D1 5-2         # ˑ - half-length mark - half-long
sign \X0306 4-12356     # ̆  - breve above - extra-short
# sign \X002E 3         # . - full stop - syllable break
# sign \X007C 456-1256  # | - vertical line - minor (foot) group
sign \X2016 456-123456  # ‖ - double vertical line - major (intonation) group
sign \X203F 456-123     # ‿ - bottom tie bar - linking (absence of a break)


#--------TONES AND WORD ACCENTS--------
# UNICODE DOTS          # GLYPH - TYPOGRAPHIC DESC. - ARTICULATORY DESC.
sign \X030B 4-6-34      # ̋  - double acute accent above - extra high level tone
sign \X0301 4-34        # ́  - acute accent above - high level tone
sign \X0304 4-14        # ̄  - macron above - mid level tone
sign \X0300 4-16        # ̀  - grave accent above - low level tone
sign \X030F 4-6-16      # ̏  - double grave accent above - extra low level tone
sign \X030C 4-236       # ̌  - wedge above - rising contour tone
sign \X0302 4-146       # ̂  - circumflex above - falling contour tone
sign \X1DC4 4-24        #  (UTF-16) - macron-acute above - high -rising contour tone
sign \X1DC5 4-35        #  (UTF-16) - grave-macron above - low-rising contour tone
sign \X1DC8 4-256       #  (UTF-16) - grave-acute- grave above - rising-falling contour tone
sign \X2193 456-2346    # ↓ - down arrow - downstep
sign \XF19D 456-2346    # ↓ - down arrow - downstep
sign \X2191 456-1246    # ↑ - up arrow - upstep
sign \XF19C 456-1246    # ↑ - up arrow - upstep
sign \X2197 456-145     # ↗ - upward diagonal arrow - global rise
sign \X2198 456-356     # ↘ - downward diagonal arrow - global fall
sign \X02E5 456-4-14    # ˥ - extra-high (55) tone bar - extra high level tone
sign \X02E6 456-14      # ˦ - high (44) tone bar - high level tone
sign \X02E7 456-25      # ˧ - mid (33) tone bar - mid level tone
sign \X02E8 456-36      # ˨ - low (22) tone bar - low level tone
sign \X02E9 456-6-36    # ˩ - extra-low (11) tone bar - extra low level tone
#   The following lines seems tricky (https://en.wikipedia.org/wiki/Tone_letter)
#   sign \X02E9 + \X02E5 456-34 # ˩˥ - rising (15) tone bar - rising contour tone
#   sign \X02E9 + \X02E7 456-35 # ˩˧ - low-rising (13) tone bar - low-rising contour tone
#   sign \X02E7 + \X02E5 456-24 # ˧˥ - high-rising (35) tone bar - high-rising contour tone
#   sign \X02E5 + \X02E9 456-16 # ˥˩ - falling (51) tone bar - falling contour tone
#   sign \X02E8 + \X02E5 + \X02E8 456-256 # ˨˥˨ - rising-falling (151) tone bar - rising-falling contour tone


#--------PHONETIC AND PHONEMIC ENCLOSURES--------
# sign \X005B 45-12356  # [ - left square bracket - begin phonetic transcription
# sign \X005D 45-23456  # ] - right square bracket - end phonetic transcription
# sign \X002F 45-34     # / - slash - begin/end phonemic transcription
