Monthly Archives: 2月 2012

UTAU 周波数表フォーマットメモ

先頭からのバイト数 サイズ 説明
0 char[8] 8 フォーマット識別子 FREQ0003
8 int 4 データ間隔(サンプル単位) デフォルトは 256
12 double 8 キーの周波数
20 不明 16 おそらく未使用
36 int 4 周波数データの数
以下の項目を周波数データの数だけ繰り返し
40 double 8 周波数(55.0 でピッチなし)
48 double 8 振幅

REAPER プロジェクトファイルメモ

すっごく頑健で優しい REPEAR プロジェクトファイル!

記入しなかった項目は自動で補ってくれるみたいで、作成する側は必要なところだけ埋めれば大丈夫です。少しずつ追記します。

最小ファイル

<REAPER_PROJECT
>

WAVEファイル読み込み

TRACK タグと ITEM タグが必要で、ITEM タグには POSITION と LENGTH と SOURCE WAVE が必要です。POSITION と LENGTH の単位は秒です。

1つだけWAVEファイルを読み込む

<REAPER_PROJECT
 <TRACK
  <ITEM
   POSITION 0.00000000000000
   LENGTH 2.50000000000000
   <SOURCE WAVE
    FILE "WAVEファイルパス"
   >
  >
 >
>

2つのWAVEファイルを読み込む

<REAPER_PROJECT
 <TRACK
  <ITEM
   POSITION 0.00000000000000
   LENGTH 2.50000000000000
   <SOURCE WAVE
    FILE "WAVEファイルパス"
   >
  >
  <ITEM
   POSITION 3.00000000000000
   LENGTH 2.50000000000000
   <SOURCE WAVE
    FILE "WAVEファイルパス"
   >
  >
 >
>

テイクのピッチ

<REAPER_PROJECT
 <TRACK
  <ITEM
   POSITION 0.00000000000000
   LENGTH 2.50000000000000
   <SOURCE WAVE
    FILE "WAVEファイルパス"
   >
   <PITCHENV
     PT 0.000000 1.596958 0
     PT 1.500000 2.874525 0
     PT 2.000000 0.319392 0 0 1
   >
  >
 >
>

放課後ちょこかっぷ (café mix) + カラオケ投票

新曲アップしました!

新曲アップいたしました!放課後ちょこかっぷ (café mix) でございます!

YouTube Preview Image

みこみこ・ぱみゅ・みく・りん の4人でバレンタインの曲を歌ってもらいました!
ろりぃので、よかったら聴いてくださいな!

カラオケ投票

私の曲が数曲カラオケ投票開始しました!

よかったら、この順番に入曲されるように、投票していただけるとうれしいです!
どうぞよろしくお願いいたします。

ReaScript in Python3

備忘録として ReaScript を Python3 で書く時に躓いたところをメモしておきます。

これらの動作は Reaper のバージョンによっても変わりますのでご注意下さい。

REAPER 64bit 版なら Python3 も 64bit 版を

当たり前ですが、忘れがちなので、 OS に合わせて Python3 も変更して下さい。

最初に呼び出されるファイルのエンコードはシステム既定に

ReaScript として実行するファイルは、システム既定のエンコード(日本語版 Windows だと CP932 / Shift JIS) である必要があります。通常 Python3 で使用するように UTF-8 でエンコードされたソースは、たとえ日本語がコメントに含まれる程度であっても実行できません。ファイルのエンコードは CP932 / Shift JIS を使用するか、文字の使用を ASCII の範囲内に留めておくのが安心でしょう。

ただし、自作のモジュールなど import される側には、制限がありません。ただし、import される側のファイルではエンコードの指定が必要ですので、1行目に、例えば以下のように、マジックコメントを書いておきましょう。くわしくは PEP0263 参照。

# -*- coding: utf8 -*-

自作のモジュールを import をするときに必要なこと

上記の coding 指定の他に、REAPER の関数を使用する場合には、reaper_python モジュールの import が必要です。よって、自作のモジュールは通常以下の文ではじまります。

# -*- coding: utf8 -*-
from reaper_python import *

sys.argv は取得できない

おそらく REAPER の内部でスクリプトが実行されるため、 sys.argv を取得することができません。そのため、スクリプト本体の位置を取得する方法が存在しません。os.getcwd() で取得できるカレントディレクトリもスクリプトの位置ではないため、注意が必要です(ただし、スクリプト位置基準の相対指定の import は使用出来ます)。

tkinter は使用出来ない

上記の sys.argv と関連し、それを使用するモジュール、たとえば tkinter はエラーが出て使用出来ませんでした。

print() は使用出来ない

コンソールが存在しないので、代わりに RPR_ShowConsoleMsg() を使用して下さい。

quit() や exit() は使用出来ない

REAPER ごと落ちるので、使わないで下さい。

めんどくさい or 他のプログラムを活用したい or 他の言語が良い

他の人の環境で使うときにはパスの指定など、一手間かかってしまいますが、REAPER の関数を使用しない部分を、パイプなどを使用して外部に任せるのをおすすめします。たとえば以下のようにします。

import subprocess
data = subprocess.check_output([r"c:\python\python.exe", r"c:\script.py"]).decode("sjis")

こうすると script.py のなかで print() されたもの sys.stdout.write() されたものが返ってきます。たとえば、dict() に適当なものを詰め込んで repr() して返して、受け取った側で eval(data) すればばっちりです。

REAPER の関数リファレンスは?

私もよくしらないので、ヘルプのHTMLリストの ReaScript の説明を見るか、REAPER 上で以下のアクションを実行してください。

[developer] Write C++ API functions header

そこで出てきた関数名に、RPR_ を付ければ Python から使用出来ます。

REAPER 上のコマンドの実行方法は?

アクション一覧から、アクションの番号を調べて、 RPR_Main_OnCommand() を実行して下さい。

RPR_Main_OnCommand(アクション番号, 0)

日本語情報は?

ほぼないので、何かに躓いたら Twitter で私に聞いてみてください。(答えられないことの方がたぶんおおいです)

ここは何?

プログラムや音楽を作っている、「ちえ」の作った物を公開しています。例えば

  • 音楽
    • ささの葉さらら
    • ロケット宅宙便
    • ハッピーマリッジイエロー
    • りんごとキャロル
  • ソフトウェア・パッチ
    • UTAU 全ウィンドウ同時再生プラグイン / ReaSing / poton / sfzSplit
    • REAPER 日本語化パッチ

イベント情報

4月28日と29日、ニコニコ超会議内で行われる、超ボーマス20内のプチオンリー、ウタマス6に参加します!
スペースは H32 みこぺろ で二日間待ってます!リョータイもどっちかには参加予定です!
今回は和風コンセプトミニアルバム「星桜」を制作して持って行く予定です。詳しくはまたお知らせします!

カラオケ投票中です!

 

ページ移行中です

posterous から wordpress への移行中です。
過去のファイルについては http://chiepomme.posterous.com/ から見て下さい。