
echod-ma サウンド再生ライブラリ

Ver0.8.0 by ze-na

[0.7.0] 初期リリース版
[0.7.5] アップデート修正版
[0.7.6] ロールバック修正版
[0.8.0] 波形機能拡張版

Windows10 Proにて動作確認しています。
HSP3.7b9にてサンプルスクリプトを作成しています。

----------
■本ライブラリについて

echod-maは Windows専用のサウンド再生ライブラリです。

HSP3のスクリプトにサウンド再生APIを.dllにて提供します。

アプリやゲームの制作にてHSP3提供や有志のサウンド再生
ライブラリでは少し不便でしたので制作しました。

APIはHSP3向けにカスタマイズしており、
hspoggやovplayをベースに命令を構成しています。

特徴：
・WinMM/DirectSound/WASAPI対応
・wav/mp3/ogg/flac対応
・Chiptuneライク波形機能
・波形機能の簡易MMLによる再生
・miniaudioライブラリベース

----------
■ファイル構成

echod.dll    ・・・ライブラリ本体
echod.as     ・・・定義ファイル
echod_doc.txt・・・このファイルです。
echod_help.txt・・・リファレンス
echod_mml.txt・・・MMLリファレンス

サンプルスクリプト
s01_player.hsp・・・サウンドプレイヤ
s02_loop.hsp・・・ループ再生テスト
s03_group.hsp・・・グループ＆マルチ再生テスト
s04_wave_key.hsp・・・波形キーボード

▼dataフォルダ：
echod_logo.png・・・ロゴ画像
tamadot.png   ・・・HSP3の画像の素材

▼soundフォルダ：
se_*.wav     ・・・HSP3の効果音の素材
se01.wav～se15.wav・・・HSP3の効果音の素材
sel.wav      ・・・HSP3の効果音の素材
bgm*.wav     ・・・HSP3の.mid音楽の編集変換
bgm*.mp3     ・・・HSP3の.mid音楽の編集変換
bgm*.ogg     ・・・HSP3の.mid音楽の編集変換
bgm*.flac    ・・・HSP3の.mid音楽の編集変換

env_rain_loop.wav/mp3/ogg/flac・・・自作音源（環境音）
blessed_d_loop.mp3/ogg・・・自作音源（ドラム音）
metalik_h_loop.mp3/ogg・・・自作音源（シンセ音）

自作音源については素材として自由に使ってください。

----------
■サンプルスクリプト解説

-----
▼s01_player.hsp：サウンドプレイヤ

・音源ファイルのロード、再生、停止、一時停止を行います。
・ロード時のストリーミング再生（同期・非同期）を設定できます。
・音量とパン（ステレオバランス）の設定を変更できます。
・現在の再生中、終了位置、ループ再生、フレーム位置を取得します。
・フレームのスライダにて再生位置変更をマウス操作で行えます。
・音量調整、パン調整をマウス操作で行えます。

-----
▼s02_loop.hsp：ループ再生テスト

・サウンド再生のループ制御と一部の特殊設定を行います。
・ロード時のオフセット音量を設定できます。
・ロード時のストリーミング再生（同期・非同期）を設定できます。
・音量とパン（ステレオバランス）の設定を変更できます。
・ピッチの設定にて再生速度の設定を行います。
・開始フレーム値、終了フレーム値にてループ制御を行います。

-----
▼s03_group.hsp：グループ＆マルチ再生テスト

・グループ機能による同時開始、同時停止、同時音量設定を行います。
グループ0～2は以下としています。

G0：グループ0（音楽：BGM1、BGM2）
G1：グループ1（効果音：SFX1、SFX2）
G2：グループ2（環境音：ENV1、ENV2）

シングル再生(SFX*-S)：１つのインスタンスで再生します。
・メリット：連続再生では多重化しないため音の重ね合わせがなくクリアです。
・デメリット：連続再生では再生が途切れてノイズが乗ったりします。

マルチ再生　(SFX*-M)：複数のインスタンスで多重再生します（上限４）
・メリット：連続再生では最後まで再生されるので途切れはなくなります。
・デメリット：連続再生では重ね合わせが多いと音に特有の丸め誤差が生じます。
LOOPは自動解放されないので無効としています。

REPT：連続再生を行います。
クリックでタイマ計測、再クリックでその時間間隔で再生を行います。
連打により短い間隔で再生を繰り返します。

LOOP：ループ設定を行います。
FADE：フェードアウト（３秒間）を行います。
STOP：再生を停止、連続再生をリセットします。

-----
▼s04_wave_key.hsp：波形キーボード

・波形出力を利用した音源キーボードです。クリックやキー入力で再生します。
・キーボードはピアノ配置としており、オクターブ変更が可能です。
・マスター音量、音量、ピッチ、振り幅を変更できます。
・波形１４種（ピコカキコ配置、２種未対応）の変更が可能です。
・パルス波形（@3、@5）のデューティ比を変更できます。
・エンベロープ（音量カーブ）制御３種＋パターンを変更できます。
・波形メモリ（@10、@13）５種を変更できます（スクリプト内で修正も可能）
・簡易MMLにてキーボード入力の記録、MML構文の再生が出来ます。

音源キーボードの和音は、PC接続のキーボードの性能（Nキーロールーオーバー数）によります。
入力の記録機能は和音未対応なので押した順に記録されます。

----------
■ライブラリ、素材などのライセンス表記

本パッケージでは以下の著作物を利用しております。

HSP3 WebDish素材データ
https://dev.onionsoft.net/seed/webdish_res.html

本パッケージに含まれるサウンド再生ライブラリは
miniaudio（(c)David Reid）を使用しています。
miniaudioは MITライセンスの下で提供されております。
https://github.com/mackron/miniaudio

免責事項
本ライブラリによって生じた、いかなる損害に対しても
作者及び上記の著作権者は一切の責任を負いません。

配布条件
本パッケージに含まれる自作ライブラリ本体（.dll）については、
有償・無償を問わず再配布可能です。
パッケージ全体については、複写物の譲渡を避け、可能な限り
オリジナルサイトより入手してください。
（最小パッケージ配布を予定しています）

----------
■更新履歴
-----
[0.7.0]初期リリース版 2024/09/25

-----
[0.7.5]アップデート修正版 2024/09/28

miniaudioのアップデート（v0.11.22 → v0.11.23）
ec_chkerrの改善、補助APIの公開（ec_mkins,ec_start,ec_udins）
miniaudioの仕様変更によるec_noise_setのタイプ変更の禁止
サンプルスクリプトの追加、リファレンスの修正

-----
[0.7.6]ロールバック修正版 2024/10/03

miniaudioのロールバック（v0.11.23 → v0.11.22）
BROWNIANノイズが出力されない問題へのロールバック対応
ec_chk_recoverの機能追加、エラーコードの追加、APIの仕様変更（ec_load系）
サウンドグループの停止仕様（miniaudio）を一般的なものに修正
音源バッファのサイズ制限がストリーミング再生にも適用されていたので修正
サンプルスクリプトの修正と説明追加

-----
[0.8.0]波形機能拡張版 2024/10/31

miniaudioのアップデート（v0.11.22 → v0.11.23）
ノイズ機能の廃止によりminiaudioの再アップデート対応
波形機能の拡張（Chiptuneライク波形制御、MML再生機能追加）
サンプルスクリプトの修正とリファレンスの追加

-----


