-
Notifications
You must be signed in to change notification settings - Fork 0
sert-uw/SoundReappearance
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
SoundReappearanceは 倍音、減衰などを考慮して 48のsin波を重ね合わせることで ピアノ音を再現するプログラムです。 上記の再現した音を用いて楽曲を演奏することも可能です。 datファイルが楽譜になります。 以下演奏させてみた楽曲 ・ねこふんじゃった neko.datファイル http://tmbox.net/pl/476600 ・FFより 闘う者たち Fighting.dat http://tmbox.net/pl/476611 ・プログラムの使用方法 1、datファイルを用意します(記述形式は後述) 2、Main.javaの22行目 FileNameをdatファイルのファイル名に書き換えます 3、実行します(データによっては数分かかります AudioInputStreamが遅い?) 4、datファイルと同名のwavファイルが生成されます ・datファイルの記述形式 ・音階の記述 オクターブ値,音階名,音の長さ(ms),1つ前のデータとの開始時間差(ms) (例1) 基本オクターブ(3オクターブ)のドを0msから3000msの間鳴らす場合 3, ド, 3000, 0 または 3, C, 3000, 0 (例2) 基本オクターブのドレミファソラシ を500ms間隔でそれぞれ1500ms間鳴らす場合 3, ド, 1500, 0 3, レ, 1500, 500 3, ミ, 1500, 1000 3, ファ, 1500, 1500 3, ソ, 1500, 2000 3, ラ, 1500, 2500 3, シ, 1500, 3000 または 3, C, 1500, 0 3, D, 1500, 500 3, E, 1500, 1000 3, F, 1500, 1500 3, G, 1500, 2000 3, A, 1500, 2500 3, B, 1500, 3000 (例3) 基本オクターブのラと1オクターブ高い(4オクターブ)ラを1つ前のデータから1000ms後に1500msの間、同時に鳴らす場合 3, ラ, 1500, 1000 4, ラ, 1500, 0 または 3, A, 1500, 1000 4, A, 1500, 0 *#とbについて 例えば、レ# = ミb でプログラムに記述してあるので、どちらで指定しても同じです ・楽譜の上段と下段の入力について まずは上記記述法で上段を入力します。その後 reset とだけ記述した行を挟んで下段を入力していきます。 その際開始時間がリセットされているので下段のデータで 開始時間を0としたデータは上段で開始時間を0としたデータと 同時に再生されます ・p, mp, mf, f, ffとクレッシェンド、デクレッシェンドの設定 楽曲の音量をコントロールするこれらの設定は以下のように記述します level, 変更後の値, 変化目標値, 分割数 p, mp, mf, f, ffのように以降の音量を一意に定める場合は 変更後の値、変化目標値を同じにし、分割数を1にします (例1) mfを1.0とし、p(0.8)に変更する場合 level, 0.8, 0.8, 1 (例2) mfを1.0とし、ff(1.2)に変更する場合 level, 1.2, 1.2, 1 クレッシェンド、デクレッシェンドの徐々に大きく、または徐々に小さくする (例) pからfまで変化させる場合 変化させる間にあるデータ数(ただし同時に鳴らす音は含まない)が4個のとき level, 0.8, 1.1, 4 3, ド, 1500, 0 4, ド, 1500, 0 3, レ, 1500, 500 4, レ, 1500, 0 3, ミ, 1500, 1000 4, ミ, 1500, 0 3, ファ, 1500, 1500 4, ファ, 1500, 0 上記のように記述することでドからファまで奏でる間に音量がpからfまで上がります datファイルの記述形式は以上です Fighting.datを参考にしてみてください
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published