Web Audio API で、Sidechain Compressor を試作
Web Audio API で、左右チャネルを入れ替えて再生
Web Audio API で, チャネルの抜き挿しを試してみました.
抜き挿しそれぞれ,
抜き : ChannelSplitter
挿し : ChannelMerger
を.createXXXXすると,
.connect時の引数で抜き差しするチャネルを選択できるようだ.
作ってみたのが↓こちら.
File1はそのまま, File2は左右入れ替え, playで同時再生です.
JavaScript および Web Audio API のはてなブログへの埋め込み
前回、コードを地の文に貼っていたわけでして、
埋め込む方法を探してきました。
埋め込んだのが、こちら。
ローカルで動かした時より、再生にもたつきを感じます。
いたしかたなし也。
ローカルの音データをWebAudio APIで開く
ローカルの音データをWebAudio APIで開いてみました.
二つの音データを一つのplayボタンで, 同時に再生開始します.
ブラウザは, Google Chromeで製作しています.
<input id="audio_file2" accept="audio/*" type="file" /> <audio id="audio_player2"></audio>
<button id="play">play</button>
<script type="text/javascript">
var context1 = new AudioContext();
var mediaSourceNode1 = context1.createMediaElementSource(document.getElementById("audio_player1"));
mediaSourceNode1.connect(context1.destination);
var mediaSourceNode2 = context1.createMediaElementSource(document.getElementById("audio_player2"));
mediaSourceNode2.connect(context1.destination);
audio_file1.onchange = function(){
var files = this.files;
var file = URL.createObjectURL(files[0]);
audio_player1.src = file;
};
audio_file2.onchange = function(){
var files = this.files;
var file = URL.createObjectURL(files[0]);
audio_player2.src = file;
};
function play(){
var files1 = audio_file1.files;
var file1 = URL.createObjectURL(files1[0]);
audio_player1.src = file1;
audio_player1.play();
var files2 = audio_file2.files;
var file2 = URL.createObjectURL(files2[0]);
audio_player2.src = file2;
audio_player2.play();
}
<参考にした記事>
Using local file for Web Audio API in Javascript
WebAudio APIによるWebブラウザ上のDJ Mixer
ローカルのファイルを開く例が意外にも少なかったのです...
このページ自体にどう実装できるかは、今のところ謎です...
ボタンは出ましたが、再生には至らないようで...
Simutransで, 特定の車種を一括変換
<欲望>
筆者は, 鉄道経営シミュレーションが好きである.
Simutrans(http://japanese.simutrans.com)は, 素晴らしい.
Simutransの保存データへの編集を試みる.
今回は, 特定の車種を一括変換する.
<Simutransのバージョン>
pak64のpak.japanで実験
Version 112.3 May 20 2013 r6520
OSは, Mac OS X Yosemite
<設定いじり>
セーブデータをxmlで書き出す設定にしておく.
simutrans/config/simuconf.tab の,
saveformat = bzip2
を
saveformat = xml
に書き換え
<例>
変換前の車種 : JNR_Class_DC_04(Diesel_Regular)
変換後の車種 : JNR_Class_DC_04(Original)
変換前のファイル名 : hoge.svg
変換後のファイル名 : fuga.svg
上書きしないよう, 変更前後のファイル名は異とするべき.
1. コンソールでセーブデータがあるディレクトリに移動
2. 以下のコマンドを実行
less hoge.sve | sed -e 's/<![CDATA[JNR\_Class\_DC\_04(Diesel\_Regular)]]>/<![CDATA[JNR\_Class\_DC\_04(Original)]]>/g' > fuga.sve
コマンドであるから,
・改行を入れず, 一続きで打ち込む
・エスケープ・シーケンスに気をつける
<問題点>
車種と連動して, 編成名も一括変換になる
整数の逆数、その2進数表現
1から16までの整数の逆数を、2進数で表現してみた.
<ソースコード>
digits=16; max=2^(digits-1); for hoge=1:16 disp([num2str(hoge,'%02d') ' ' dec2bin(hoge,digits) ' ' dec2bin(round(max/hoge),digits)]); end
<算出結果>
01 0000000000000001 1000000000000000 02 0000000000000010 0100000000000000 03 0000000000000011 0010101010101011 04 0000000000000100 0010000000000000 05 0000000000000101 0001100110011010 06 0000000000000110 0001010101010101 07 0000000000000111 0001001001001001 08 0000000000001000 0001000000000000 09 0000000000001001 0000111000111001 10 0000000000001010 0000110011001101 11 0000000000001011 0000101110100011 12 0000000000001100 0000101010101011 13 0000000000001101 0000100111011001 14 0000000000001110 0000100100100101 15 0000000000001111 0000100010001001 16 0000000000010000 0000100000000000