ピンインのiについて、『中国語音声学』ではIPAの記載がなかった。

wikipediaや他の文献を見ると、成節子音で、舌尖音の接近音や摩擦音を指しているようだ。
Sinological phonetic notation - Wikipedia

Phonology of Standard Chinese

ピンインのiについて、『中国語音声学』ではIPAの記載がなかった。

wikipediaや他の文献を見ると、成節子音で、舌尖音の接近音や摩擦音を指しているようだ。
Sinological phonetic notation - Wikipedia

Phonology of Standard Chinese

OKLCh色空間で、明度と彩度が一定の色相グラデーションを描画した。

OKLab/OKLChについては下記リンク参照。
https://bottosson.github.io/posts/oklab/
(CIE L*C*h*もそうだが)OKLCh色空間で数値上表現可能でも、ディスプレイで表示可能な色(sRGBなどの色域内)とは限らない。
https://oklch.com/#29.87,0.1278,204.99,100
例えば上記リンクのような色(oklch(29.87% 0.1278 204.99))はRGB成分のいずれかが飽和してしまい、ディスプレイ上で正確に表示されない色になる。
そのため、色相h(0°~360°)全体がディスプレイで表示可能な色域に収まるように、明度Lと彩度Cを決定する必要がある。
ここでは下記の条件でLとCを決定した。
これらの条件からLとCを数値的に探索し、下記のように決定した。
上記の値は厳密にはCを最大化できていないが、24bit RGBに量子化することを考慮すると数値精度としては十分と判断した。
この値を使って本稿冒頭の画像を生成した。
また、画像下部の灰色は、同明度の無彩色を表す。 (上記で決定したL=75.015… かつ C=0とした色)
よって、画像全体は同じ明度Lとなっている。
パワーポイントの画像調整機能で冒頭の画像をグレースケール化すると、下図のようになる。

画像全体で明度Lは同じはずだが、グレースケール化した画像では明るさが場所により微妙に異なっている。
これはパワーポイントのグレースケール化機能がOKLCh以外の色空間に基いているためと思われる。
元画像にgimpの「拡散」フィルターを適用し、色相グラデーション部分と同明度灰色部分のピクセルをランダムに拡散した。
色相中で暗く見えた部分を拡大している。
画像上部は拡散フィルター適用後、グレースケール化したもの、画像下部は拡散フィルターのみ適用したもの。

画像上部は、拡散前と同様に一部暗い箇所がある。
それと対応した箇所を画像下部で見ると、同明度灰色のピクセルが若干明るく浮いて見え、相対的に周りの有彩色が暗いように感じられた。
色彩評価用環境で確認しているわけではないため、環境依存で上記の感じ方が変わる可能性はある。
半音5つ分を表すのに、「完全4度」「増3度」とかややこしい。

楽譜でも、ミ♭の異名同音が、「レ♯」「ファ♭♭」とかややこしい。



変化記号も異名同音を区別できる。
画像はhttps://murashin.sakura.ne.jp/muraobjct05.htmから引用。
WebAssemblyとは?〜実際にC言語をブラウザで動かす〜【2019年6月版】 #JavaScript - Qiita
https://umamichi.github.io/wasm/
このページにあるwasmをとりあえず動かしてみた。
https://umamichi.github.io/wasm/で読み込んでいるsample.wasmと、上記qiitaに書いてあるhtmlを、
適当なローカルフォルダに保存。wasmとhtmlは同一フォルダに配置。
htmlファイルをchromeで開き、開発者ツールを見ると、下記のようなエラーが発生していた。
Access to fetch at 'file:///C:/Users/~~~~~~sample.wasm' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome, https, chrome-untrusted.
wasmの動かし方を紹介しているページでやたらとサーバーを立てているのは、CORSエラーが出るからだったようだ。
ローカルでhttpサーバを動かす方法メモ #HTTP - Qiita に紹介されている通り、
コマンドプロンプトでwasmとhtmlを保存したフォルダに移動し、"python -m http.server"を実行。
ブラウザで"http://localhost:8000/"にアクセスすると、https://umamichi.github.io/wasm/ と同様の画面が出た。
開発者ツールを開いてもCORSエラーは無かった。
ページ内のボタンをクリックするとコンソールの数字がカウントアップされ、正常に動作した。
不等分音律や微分音律における周波数比は、だいたい次式で表されそう。
ここではk番目の素数、
は整数列、
は1以上の自然数列。
もちろん、「純正長三度は約386 centだから、周波数比はで表され、確かに上式で表せる」などという話ではない。
(純正長三度はと誤差なく書くべき。)
純正音程を表現できることに加え、純正音程を等分する操作(n乗根)も含めて、誤差なく表現できることが重要。
ミーントーン五度:。
ヴァロッティ・ヤング音律の狭い五度:。
1/8スキスマ・テンペラメント*1の五度:。
31平均律の1ステップ:。
このページ(MT¡¦²»³Ú¡¦²»Î§½¸ なんか文字化けしてる)を見て音律の界隈なら絶対既知だろうけど書いておきたくなった。
音律を表現するsclファイルでは、cent表記と分数しか使えなくて、音律の表現としては必ず誤差が生じる。
一方、音律を正確に表現するため一般的な数式を扱うとなると、構文解析などの処理が面倒で、音律の表現としては重過ぎる。
上式なら、構文解析よりはシンプルに処理にできるだろうし、誤差なく音律を表現できる。
cent表記にする際の誤差が嫌いだからこういう表現も使えるようになってほしい。
*1:ここに記載の音律:田中正平の日本製の「純正調」オルガン――「廣義の純正調」の具現化――
扇型に内接する楕円を求めた
――かったが、実質的には二等辺三角形に内接する楕円の式が求まった。
扇型は、半径を1、中心角をとする。
楕円は、一方(扇型の径方向)の半径を、もう一方の半径を
とする。

各図形は図の座標に配置し、と
を既知の値とすると、
は次式で与えられる。
このを使い、上図の楕円の式は次式で与えられる。
このページで式を動かせる:二等辺三角形に内接する楕円 – GeoGebra
[^\(\)]+(?=\([^\(\)]+\))|[^\(\)]+$|^[^\(\)]+
この正規表現は、orを意味するパイプ記号"|"と、3つの部分(下記ABC)で構成されている。
A | B | C
↓
[^\(\)]+(?=\([^\(\)]+\)) | [^\(\)]+$ | ^[^\(\)]+
つまり、「AまたはBまたはC」のパターンを表す。
これは、さらに3つの要素に分けられる。
D E F
↓
[^\(\)] + $
最初の角括弧[]は、「指定した文字を含まない」という意味の表現:[^~~~~]だ。
"[^"と"]"に挟まれた各文字以外の文字にマッチする。ここでいう各文字は \( と \)だ。エスケープされているが要は丸括弧"("または")"を意味する。
つまり、[^\(\)]は「丸括弧でない何らかの1文字」を意味する。
次、+は「前の文字が1文字以上連続する」を意味する。
次、$は、「行末」を意味する。
ここまで合わせて考えると[^\(\)]+$は「丸括弧以外の文字が1文字以上連続し、その直後に行末が来る」パターンを表す。
簡単に言うと、「丸括弧から行末までの文字 ※丸括弧は含まず」にマッチする。
例えば入力が「abc0123(hijk」なら、「hijk」にマッチする。
最初の^は、「行頭」を表す。※"[^"の"^"とは意味が異なる。
次は上で見た、[^\(\)]+と全く同じだ。
つまり、^[^\(\)]+は「行頭の直後に、丸括弧以外の文字が1文字以上連続する」パターンを表す。
簡単に言うと、「行頭から丸括弧までの文字 ※丸括弧は含まず」にマッチする。
例えば入力が「abc0123(hijk」なら、「abc0123」にマッチする。
まず、大枠は
G (?= H )
↓
[^\(\)]+ (?= \([^\(\)]+\) )
G (?= H ) のパターンは、肯定先読みと呼ばれる。
意味は、「G。ただし、Hが直後にあるもの」のパターンを表す。
「マッチしてほしいのはGだけど、Gならなんでもいいわけじゃなくて、Hの直前にあるGだけにマッチしてほしい」という事。
さて、GとHを見ていく。
Gは上で見た[^\(\)]+と全く同じだ。 つまり、「丸括弧以外の文字が1文字以上連続する」パターンを表す。
次、H: \([^\(\)]+\)は、さらに3つの要素に分解できて、 \( [^\(\)]+ \)となる。
\(は開き括弧、 [^\(\)]+は「丸括弧以外の文字が1文字以上連続する」パターン、 \)は閉じ括弧。
Hはつまり、「丸括弧で囲まれた文字列(ただし囲んでいる丸括弧も含む)」パターンを表す。
つまり[^\(\)]+ (?= \([^\(\)]+\) )は、 「丸括弧で囲まれた文字列の直前にある、丸括弧以外の文字列」のパターンを表す。
例えば入力が「)abcd(efgh)0123(4567)ijkl」なら、「abcd」と「0123」にマッチする。