Pyxel サウンドクラスの音程一覧

サウンドクラスの音程指定について

 Pyxelのリソース「サウンド」で音程をコード内で設定するときは文字列で指定しますが,リソースファイル内では数値で扱われます。文字列と数値の一覧表を掲載しますので,コード作成やファイル編集の参考にしてください。

 ※本記事のエディタ画面はpyxel 1.9版のものです。

 
※ドレミファソラシの音はCDEFGABとも表記されます。Pyxelのプログラムからset()命令で指定するときもこのアルファベット表記を使います。

音程一覧表

ソース欄:プログラムでset()命令で指定するときの文字列
リソースファイル欄:データファイルの記載値

※計算式で確認したい方は,Pyxelのコードを参照してください。
 pyxel/sound.rs at main · kitao/pyxel · GitHub
  set_notes()内の処理で文字列から数値変換

 

ソースコードでの指定

 【公式サンプル サウンド API
 デモ https://kitao.github.io/pyxel/wasm/examples/04_sound_api.html
 サンプルコード pyxel/04_sound_api.py at main · kitao/pyxel · GitHub

サウンドクラス
set(notes, tones, volumes, effects, speed)
文字列で音程、音色、音量、エフェクトを設定します。音色、音量、エフェクトの長さが音程より短い場合は、先頭から繰り返されます。

※公式APIリファレンス サウンドクラスの最初の「notes,tones,volumes,effects,speed」はプログラムから読み出しはできますが直接値の書き込みはできません リストの代入ができません。set()命令を使用しましょう。

04_sound_api.py のset()例

pyxel.sound(0).set(
    "e2e2c2g1 g1g1c2e2 d2d2d2g2 g2g2rr" "c2c2a1e1 e1e1a1c2 b1b1b1e2 e2e2rr",
    "p",
    "6",
    "vffn fnff vffs vfnn",
    25,
)

pyxel.sound(サウンド番号).set() で指定番号のサウンドに音が設定されます。

sound(snd).set(note,tone,volume,effect,speed)

・note :[CDEFGAB] + [#-] + [0-4] or [R]
  「ド (低い) c0 c1 c2 c3 c4 (高い)」
 「ファのシャープ f#0 f#1 f#2 f#3 f#4」「シのフラット b-0 b-1 b-2 b-3 b-4」
 「休符 r」

・tone :[T]riangle [S]quare [P]ulse [N]oise
・volume:[0-7]
・effect:[N]one [S]lide [V]ibrato [F]adeOut
 音色,音量,エフェクトの文字列の長さが音程より短い場合は、先頭から繰り返されます。
・speed
 再生速度。1 が一番速く、数値が大きいほど再生速度は遅くなります。120 で 1 音の長さが 1 秒になります。

※speedだけ数値一つで指定。他は文字列で指定(大文字小文字どちらでも可,空白は無視)します。
 

リソースファイル内のファイル

 ※公式に推奨される操作内容ではありません

 Pyxelのリソースファイルの拡張子は .pyxres ですが,構造はzipファイルのフォーマットで作成されています。リソースファイルの拡張子を .zip に変更すると展開して内容を確認できます。
 例)sampl.pyxres の展開内容

pyxel_resourceフォルダ
 image0
 image1
 music0  ← ミュージック0のデータファイル
 sound00  ← サウンド0のデータファイル
 sound01  ← サウンド1のデータファイル
 sound02  ← サウンド2のデータファイル
 sound03  ← サウンド3のデータファイル
 sound04  ← サウンド4のデータファイル
 tilemap0
 tilemap1
 version

 サウンド番号とファイル名の関連が把握できれば,サウンドを複製したり,他のリソースファイルで作成したサウンドのデータファイルを取り込んでzipファイルを作成してリソースファイルに戻すこともできます。

サウンドのデータファイルの内容

sound00

1c1c18131313181c1a1a1a1f1f1fffff18181510101015181717171c1c1cffff
2
6
2330303323312300
25

1行目:音程のリスト(16進数 休符はff)
2行目:音色 (0:Triangle / 1:Square / 2:Pulse / 3:Noise) のリスト
3行目:音量 (0-7) のリスト
4行目:エフェクト (0:None / 1:Slide / 2:Vibrato / 3:FadeOut) のリスト
5行名:再生速度(10進数) 1 が一番速く、数値が大きいほど再生速度は遅くなります。120 で 1 音の長さが 1 秒になります。

ミュージックのデータファイルの内容

music0

0001
0203
04
none

1行目:チャンネル0の再生リスト
2行目:チャンネル1の再生リスト
3行目:チャンネル2の再生リスト
4行目:チャンネル3の再生リスト

 

関連記事

kinutani.hateblo.jp