🌸 「なでしこ」
>
🍯 「貯蔵庫」
🍯 プログラム貯蔵庫
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
ログイン
していません。
[
📌文法
] [
🎨命令一覧
]
[編集モード] メトロノーム
タイマー機能を用いたメトロノームです。
プログラム:
(→大)
(→textarea)
(→左右に配置)
●(VALUEをSIZEに)整数バイナリ化とは 変数の結果は空。 位置とは変数。 位置で0から(SIZE-1)まで繰り返す。 結果は結果にCHR(AND(SHIFT_R(VALUE,8×位置),0xff))を追加。 ここまで。 結果を戻す。 ここまで。 ●(HZでSECの)WAV作成とは 定数のサンプリング周波数は44100。 定数のサンプル数はサンプリング周波数にSECを掛けて四捨五入。 定数の周期はサンプリング周波数をHZで割る。 定数のサンプル配列は空配列。 位置とは変数。 # 正弦波を作る 位置で0から(サンプル数-1)まで繰り返す サンプル配列@位置はSIN(2×PI×位置÷周期)。 ここまで。 # 最後をフェードアウトさせる サンプリング周波数に0.01を掛けて四捨五入してサンプル数とMIN。 定数のフェードアウト長はそれ。 位置で(サンプル数-フェードアウト長)から(サンプル数-1)まで繰り返す 定数のフェードアウト係数はサンプル数から位置を引いてフェードアウト長で割る。 サンプル配列@位置はサンプル配列@位置にフェードアウト係数を掛ける。 ここまで。 # WAVデータに変換する サンプル配列に配列マップには(値) 値に0x7fffを掛けて2に整数バイナリ化して戻す。 ここまで。 定数のサンプルデータはそれを配列只結合。 定数のフォーマット情報は[ 1を2に整数バイナリ化, # 音声フォーマット 1を2に整数バイナリ化, # チャンネル数 サンプリング周波数を4に整数バイナリ化, サンプリング周波数に2を掛けて4に整数バイナリ化, 2を2に整数バイナリ化, # ブロックサイズ 16を2に整数バイナリ化, # サンプルのビット数 ]を配列只結合。 定数のdataチャンクは「data」と(サンプルデータの文字数を4に整数バイナリ化)とサンプルデータを連結。 定数のfmtチャンクは「fmt 」と(フォーマット情報の文字数を4に整数バイナリ化)とフォーマット情報を連結。 定数のRIFFデータは「WAVE」とfmtチャンクとdataチャンクを連結。 定数のwavファイルは「RIFF」と(RIFFデータの文字数を4に整数バイナリ化)とRIFFデータを連結。 wavファイルを戻す。 ここまで。 ●(HZでSECの)オーディオ作成とは HZでSECのWAV作成。 「btoa」を[それ]でJS関数実行。 「data:audio/wav;base64,{それ}」のオーディオ開いて戻す。 ここまで。 通常音は400で0.05のオーディオ作成。 区切り音は3000で0.05のオーディオ作成。 「BPM:」のラベル作成。 BPM欄は「120」のエディタ作成。 それの「type」に「number」をDOM属性設定。 それの「min」に「1」をDOM属性設定。 改行作成。 「拍子:」のラベル作成。 拍子欄は「4」のエディタ作成。 それの「type」に「number」をDOM属性設定。 それの「min」に「2」をDOM属性設定。 拍子無効チェックは「使わない」のチェックボックス作成。 2回、改行作成。 開始ボタンは「開始」のボタン作成。 停止ボタンは「停止」のボタン作成。 それにオフをDOM有効設定。 再生中インジケータは「▶再生中」のラベル作成。 それにオフをDOM可視設定。 タイマーIDはNULL。 カウントは0。 拍子は0。 ●拍子反映とは もし、拍子無効チェック$選択状態ならば 拍子欄にオフをDOM有効設定。 拍子は0。 違えば 拍子欄にオンをDOM有効設定。 定数の新拍子は拍子欄のテキスト取得して整数変換。 もし、(新拍子をNAN判定)または(新拍子が0未満)ならば 拍子は0。 違えば 拍子は新拍子。 ここまで。 ここまで。 ここまで。 拍子反映。 {関数}拍子反映で拍子欄の変更された時。 {関数}拍子反映で拍子無効チェックの変更された時。 ●メトロノーム開始とは メトロノーム停止。 定数のBPMはBPM欄のテキスト取得して実数変換。 もし、(BPMをNAN判定)または(BPMが0以下)ならば、空を戻す。 (60÷BPM)秒毎には 変数の鳴らす音は通常音。 もし、拍子が0でなければ カウントはカウントに1を足して拍子で割った余り。 もし、カウントが0ならば、鳴らす音は区切り音。 ここまで。 鳴らす音をオーディオ再生。 ここまで。 タイマーIDはそれ。 ここまで。 ●メトロノーム停止とは もし、タイマーIDがNULLでなければ タイマーIDのタイマー停止。 タイマーIDはNULL。 ここまで。 ここまで。 BPM欄の変更された時には もし、タイマーIDがNULLでなければ メトロノーム開始。 ここまで。 ここまで。 開始ボタンのクリックされた時には メトロノーム開始。 開始ボタンにオフをDOM有効設定。 停止ボタンにオンをDOM有効設定。 再生中インジケータにオンをDOM可視設定。 ここまで。 停止ボタンのクリックされた時には メトロノーム停止。 開始ボタンにオンをDOM有効設定。 停止ボタンにオフをDOM有効設定。 再生中インジケータにオフをDOM可視設定。 カウントは0。 ここまで。
▶ 実 行 [F9]
クリア
一時保存
デバッグ
ブレイクポイント:
→ 再開
↓ 一行次へ
×
キャンバス: 幅
× 高
ee9f5a69d043aa89659086789172d3f0
3141
上書き保存
表示ページ
→直前に実行(または一時保存)した内容を復元
なでしこバージョン: v
素材のアップロード
ログイン
するとファイルをアップロードできます。