MuseScoreで日本語歌詞を素早く入力 + 自作の雑多なLISP函数 (karaoke2, kmpublic)

MuseScoreで日本語歌詞を入力する時に便利な「karaoke2」と、雑多なLISP函数群を収録した「kmpublic」が置いてあります。

利用例

karaoke2

これは,歌詞のsample textです。karaoke-japanese-to-musescore
 こ れ は, 歌 詞 の sample text で す。

kmpublic (数が多いので一部)

;;; 変数名と値(又は極座標)を並べて表示
(let* ((x 1.732) (y 1) (z (complex x y)))
  (show-names-values x y z)
  (show-names-abs-deg y z))x = 1.732
y = 1
z = #C(1.732 1.0)
         y =    +1.0 /_   +0.00 deg = 1
         z =    +2.0 /_  +30.00 deg = #C(1.732 1.0)

;;; Alt+nでnarrow-to-regionとwidenを切り替へる
(global-set-key #\M-n 'toggle-narrowing)

;;; Shift_JISではなくUTF-8でURLエンコード
(www-url-encode-utf8 "今やUnicodeの時代")"%E4%BB%8A%E3%82%84Unicode%E3%81%AE%E6%99%82%E4%BB%A3"

プログラム本体置場

適用ライセンス

karaoke2.l と kmpublic.l は著作権抛棄(CC0)としますので、転載や改変など、御自由にどうぞ。但し一部の函数では、他の方が公開されたコードから転載・改造した部分が有り、それぞれの著作権がありますので、御注意ください。

CC0 (Public Domain): Please feel free to reproduce or edit (except quotation)

導入方法

  1. xyzzyで動くLISPなので、xyzzyを導入し、初期化ファイルを読み込む様にパスを通します。(ss-to-htmlの説明も参考に)
  2. kmpublic.l, kmpublic.lc, karaoke2.l, karaoke2.lcsite-lisp/ に入れます。
  3. 初期化ファイルに、次のコードを順番を崩さずに追加します。
    (require "kmpublic")
    (mc-require "karaoke2")
    ;;; 次の初期設定は好みで追加
    (setq *karaoke-separate-small-tsu* t) ; t(デフォルト)なら、促音「っ」と「ッ」を前の文字から分離する
    (setq *karaoke-separate-long-vowel* t) ; t(デフォルト)なら、長音「ー」と「〜」を前の文字から分離する
  4. xyzzyを再起動(siteinit.lに記述した場合はダンプファイルを再生成)すると、収録されてゐる函数が使へます。

使用方法

karaoke2
  1. MuseScoreに入力したい日本語歌詞を、xyzzyの*scratch*や新しいバッファに貼り付けます。
  2. Alt+Mからkaraoke-japanese-to-musescore RETを入力すると、文字間に半角スペースが追加された歌詞がバッファ*MuseScore*に出力されるので、それをクリップボードにコピーしておきます。(利用例に示した通り、英語や約物(句読点類)の文字間にはスペースが追加されません)
  3. MuseScoreで歌詞を入れ始める音符を選択し、Ctrl+Lで歌詞入力モードに入ってから、先程の歌詞をCtrl+Vの連打で貼り付けます。すると日本語が1文字入力される度に、自動で次の音符に移動してくれます。
kmpublic
利用例や、それぞれの函数に記された説明文(docstring)を御参照ください。
利用例以外では、次の函数が特に便利だと思ひます。

更新履歴

2019年2月23日 karaoke2: Ver.1.0.2.20181113, kmpublic: Ver.1.2.1.20150807
初公開。
2019年2月24日
プログラム本体にバイトコンパイル済みのファイルも同梱した。
導入方法に初期設定のコードを追加。
使用方法のkaraoke2を叮嚀な書き方に修正。使用方法のkmpublicで函数名を行頭に書く様にしたのと、誤字を修正。
2020年3月6日 kmpublic: Ver.1.2.2.20190710
kmpublicにshow-names-abs-deg(show-name-abs-degの複数変数指定版)を追加。
show-names-values: 第1引数がリストの場合は、残りの引数をキーワードとしてshow-name-valueに渡す様に更新。
更新履歴のHTMLの誤りと、利用例(kmpublic)の誤字を修正。
2021年6月19日 kmpublic: Ver.1.2.3.20200523
copy-array: simple-vectorが普通のvectorになるバグを回避するため、make-array :displaced-tocopy-seqを同時に使はない様に修正。
copy-function: docstringに「引数に引用符は不要」と明記。
reverse-lines: 最終行が改行のみでない場合、改行が増えるバグを修正。
2021年9月7日 kmpublic: Ver.1.2.4.20210907
open-file-with-windows: xdoc2txt経由で開いたファイルもWindowsで開ける様に修正。
randomize-list類、utf8-to-internal類を追加。
vdoc, fdoc, msgbox-variablesを追加。
使用方法(kmpublic)show-names-values, randomize-listを追加。