![]() |
OpenSiv3D
v0.6.5
C++20 framework for creative coding
|
オーディオ More...
#include <Audio.hpp>
Inherits s3d::AssetHandle< Audio >.
Inherited by s3d::AudioAsset.
Classes | |
struct | FileStreaming |
ストリーミング再生を指定するフラグ | |
Public Member Functions | |
SIV3D_NODISCARD_CXX20 | Audio () |
デフォルトコンストラクタ More... | |
SIV3D_NODISCARD_CXX20 | Audio (Wave &&wave) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (Wave &&wave, const Loop loop) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (Wave &&wave, Arg::loopBegin_< uint64 > loopBegin) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (Wave &&wave, Arg::loopBegin_< uint64 > loopBegin, Arg::loopEnd_< uint64 > loopEnd) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (Wave &&wave, Arg::loopBegin_< Duration > loopBegin) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (Wave &&wave, Arg::loopBegin_< Duration > loopBegin, Arg::loopEnd_< Duration > loopEnd) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (Wave &&wave, const Optional< AudioLoopTiming > &loop) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const Wave &wave) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const Wave &wave, const Loop loop) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const Wave &wave, Arg::loopBegin_< uint64 > loopBegin) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const Wave &wave, Arg::loopBegin_< uint64 > loopBegin, Arg::loopEnd_< uint64 > loopEnd) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const Wave &wave, Arg::loopBegin_< Duration > loopBegin) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const Wave &wave, Arg::loopBegin_< Duration > loopBegin, Arg::loopEnd_< Duration > loopEnd) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const Wave &wave, const Optional< AudioLoopTiming > &loop) |
Wave からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FilePathView path) |
オーディオファイルをロードしてオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FilePathView path, const Loop loop) |
オーディオファイルをロードしてオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FilePathView path, Arg::loopBegin_< uint64 > loopBegin) |
オーディオファイルをロードしてオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FilePathView path, Arg::loopBegin_< uint64 > loopBegin, Arg::loopEnd_< uint64 > loopEnd) |
オーディオファイルをロードしてオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FilePathView path, Arg::loopBegin_< Duration > loopBegin) |
オーディオファイルをロードしてオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FilePathView path, Arg::loopBegin_< Duration > loopBegin, Arg::loopEnd_< Duration > loopEnd) |
オーディオファイルをロードしてオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FilePathView path, const Optional< AudioLoopTiming > &loop) |
オーディオファイルをロードしてオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FileStreaming, FilePathView path) |
オーディオファイルからストリーミング形式でロードするオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FileStreaming, FilePathView path, Loop loop) |
オーディオファイルからストリーミング形式でロードするオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (FileStreaming, FilePathView path, Arg::loopBegin_< uint64 > loopBegin) |
オーディオファイルからストリーミング形式でロードするオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (GMInstrument instrument, uint8 key, const Duration &duration, double velocity=1.0, Arg::sampleRate_< uint32 > sampleRate=Wave::DefaultSampleRate) |
楽器の音のオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (GMInstrument instrument, uint8 key, const Duration ¬eOn, const Duration ¬eOff, double velocity=1.0, Arg::sampleRate_< uint32 > sampleRate=Wave::DefaultSampleRate) |
楽器の音のオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (IReader &&reader, AudioFormat format=AudioFormat::Unspecified) |
IReader からオーディオを作成します。 More... | |
SIV3D_NODISCARD_CXX20 | Audio (const std::shared_ptr< IAudioStream > &pAudioStream, Arg::sampleRate_< uint32 > sampleRate=Wave::DefaultSampleRate) |
virtual | ~Audio () |
デストラクタ More... | |
bool | isStreaming () const |
ストリーミングオーディオであるかを返します。 More... | |
uint32 | sampleRate () const |
オーディオのサンプリングレートを返します。 More... | |
size_t | samples () const |
オーディオの長さ(サンプル)を返します。 More... | |
double | lengthSec () const |
オーディオの長さ(秒)を返します。 More... | |
int64 | samplesPlayed () const |
ループを含め再生したサンプル数の累計を返します。 More... | |
bool | isActive () const |
オーディオがアクティブであるかを返します。 More... | |
bool | isPlaying () const |
オーディオが再生中であるかを返します。 More... | |
bool | isPaused () const |
オーディオが一時停止中であるかを返します。 More... | |
bool | isLoop () const |
新しく再生したときにループが有効になるかを返します。 More... | |
AudioLoopTiming | getLoopTiming () const |
ループ再生する場合のループ範囲を返します。 More... | |
void | setLoop (bool loop) const |
新しく再生するときのループの有無を設定します。 More... | |
void | setLoopPoint (uint64 loopBegin) const |
新しくループ再生するときのループ開始位置(サンプル)を設定します。 More... | |
void | setLoopPoint (const Duration &loopBegin) const |
新しくループ再生するときのループ開始位置(秒)を設定します。 More... | |
void | play (MixBus busIndex=MixBus0) const |
オーディオを指定したバスで再生するか、一時停止中の場合は再生を再開します。 More... | |
void | play (const Duration &fadeTime, MixBus busIndex=MixBus0) const |
オーディオを指定したバスで再生するか、一時停止中の場合は再生を再開します。 More... | |
void | play (MixBus busIndex, const Duration &fadeTime) const |
オーディオを指定したバスで再生するか、一時停止中の場合は再生を再開します。 More... | |
void | pause () const |
再生中のオーディオを一時停止します。 More... | |
void | pause (const Duration &fadeTime) const |
指定した時間をかけて音量をフェードアウトさせたのち一時停止します。 More... | |
void | stop () const |
オーディオを即座に停止し、非アクティブにします。 More... | |
void | stop (const Duration &fadeTime) const |
指定した時間をかけて音量をフェードアウトさせたのち停止します。 More... | |
void | playOneShot (double volume=1.0, double pan=0.0, double speed=1.0, MixBus=MixBus0) const |
オーディオを重複可能にして一度だけ再生します。 More... | |
void | playOneShot (MixBus busIndex, double volume=1.0, double pan=0.0, double speed=1.0) const |
オーディオを重複可能にして一度だけ再生します。 More... | |
void | pauseAllShots () const |
playOneShot() で再生中のすべてのオーディオを一時停止します More... | |
void | pauseAllShots (const Duration &fadeTime) const |
playOneShot() で再生中のすべてのオーディオを、指定した時間をかけて音量をフェードアウトさせたのち一時停止します More... | |
void | resumeAllShots () const |
playOneShot() 後に一時停止されたオーディオを再開します More... | |
void | resumeAllShots (const Duration &fadeTime) const |
playOneShot() 後に一時停止されたすべてのオーディオを、指定した時間をかけて音量をフェードインさせながら再開します More... | |
void | stopAllShots () const |
playOneShot() で再生中のすべてのオーディオをすべて停止します More... | |
void | stopAllShots (const Duration &fadeTime) const |
playOneShot() で再生中のすべてのオーディオを、指定した時間をかけて音量をフェードアウトさせたのち停止します More... | |
int64 | posSample () const |
再生位置(サンプル)を返します。 More... | |
double | posSec () const |
再生位置(秒)を返します。 More... | |
void | seekSamples (size_t posSample) const |
再生位置を指定した位置(サンプル)に設定します。 More... | |
void | seekTime (double posSec) const |
再生位置を指定した位置(秒)に設定します。 More... | |
void | seekTime (const Duration &pos) const |
再生位置を指定した位置に設定します。 More... | |
size_t | loopCount () const |
ループ再生された回数を返します。 More... | |
double | getVolume () const |
音量の設定 [0.0, 1.0] を返します。 More... | |
const Audio & | setVolume (double volume) const |
音量 [0.0, 1.0] を設定します。 More... | |
const Audio & | fadeVolume (double volume, const Duration &fadeTime) const |
指定した時間をかけて目標の音量に変更します。 More... | |
double | getPan () const |
パンの設定 [-1.0, 1.0] を返します。 More... | |
const Audio & | setPan (double pan) const |
パン [-1.0, 1.0] を設定します。 More... | |
const Audio & | fadePan (double pan, const Duration &fadeTime) const |
指定した時間をかけて目標のパンに変更します。 More... | |
double | getSpeed () const |
スピードの設定を返します。 More... | |
const Audio & | setSpeed (double speed) const |
スピード(再生速度の倍率)を設定します。 More... | |
const Audio & | fadeSpeed (double speed, const Duration &fadeTime) const |
指定した時間をかけて目標のスピード(再生速度の倍率)に変更します。 More... | |
const Audio & | setSpeedBySemitone (int32 semitone) const |
半音単位で音階が変わるようスピード(再生速度の倍率)を設定します。 More... | |
const Audio & | fadeSpeedBySemitone (int32 semitone, const Duration &fadeTime) const |
定した時間をかけて、半音単位で音階が変わるようスピード(再生速度の倍率)を設定します。 More... | |
const float * | getSamples (size_t channel) const |
音声波形のサンプルデータにアクセスします。 More... | |
void | swap (Audio &other) noexcept |
オーディオを入れ替えます。 More... | |
![]() | |
SIV3D_NODISCARD_CXX20 | AssetHandle () |
SIV3D_NODISCARD_CXX20 | AssetHandle (std::shared_ptr< AssetIDWrapperType > &&id) |
IDType | id () const noexcept |
アセットの内部管理 ID を返します。 More... | |
bool | isEmpty () const noexcept |
アセットが空であるかを返します。 More... | |
operator bool () const noexcept | |
アセットが空でないかを返します。 More... | |
bool | operator== (const AssetHandle &other) const noexcept |
2 つのアセットが同じオブジェクトであるかを返します。 More... | |
bool | operator!= (const AssetHandle &other) const noexcept |
2 つのアセットが異なるオブジェクトであるかを返します。 More... | |
void | release () |
このハンドルが管理するアセットを解放します。 More... | |
Static Public Attributes | |
static constexpr struct s3d::Audio::FileStreaming | Stream |
static constexpr size_t | MaxBusCount = 4 |
バスの最大数 More... | |
static constexpr size_t | MaxFilterCount = 8 |
フィルターの最大数 More... | |
Additional Inherited Members | |
![]() | |
using | AssetIDWrapperType = AssetIDWrapper< AssetHandle > |
アセット ID ラッパー型 More... | |
using | IDType = typename AssetIDWrapperType::IDType |
アセット ID 型 More... | |
![]() | |
std::shared_ptr< AssetIDWrapperType > | m_handle |
オーディオ
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | ) |
デフォルトコンストラクタ
|
explicit |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | Wave && | wave, |
const Optional< AudioLoopTiming > & | loop | ||
) |
|
explicit |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | const Wave & | wave, |
const Optional< AudioLoopTiming > & | loop | ||
) |
|
explicit |
オーディオファイルをロードしてオーディオを作成します。
path | ファイルパス |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FilePathView | path, |
const Loop | loop | ||
) |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FilePathView | path, |
Arg::loopBegin_< uint64 > | loopBegin | ||
) |
オーディオファイルをロードしてオーディオを作成します。
path | |
loopBegin |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FilePathView | path, |
Arg::loopBegin_< uint64 > | loopBegin, | ||
Arg::loopEnd_< uint64 > | loopEnd | ||
) |
オーディオファイルをロードしてオーディオを作成します。
path | |
loopBegin | |
loopEnd |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FilePathView | path, |
Arg::loopBegin_< Duration > | loopBegin | ||
) |
オーディオファイルをロードしてオーディオを作成します。
path | |
loopBegin |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FilePathView | path, |
Arg::loopBegin_< Duration > | loopBegin, | ||
Arg::loopEnd_< Duration > | loopEnd | ||
) |
オーディオファイルをロードしてオーディオを作成します。
path | |
loopBegin | |
loopEnd |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FilePathView | path, |
const Optional< AudioLoopTiming > & | loop | ||
) |
オーディオファイルをロードしてオーディオを作成します。
path | |
loop |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FileStreaming | , |
FilePathView | path | ||
) |
オーディオファイルからストリーミング形式でロードするオーディオを作成します。
<br> | |
path |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FileStreaming | , |
FilePathView | path, | ||
Loop | loop | ||
) |
オーディオファイルからストリーミング形式でロードするオーディオを作成します。
<br> | |
path | |
loop |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | FileStreaming | , |
FilePathView | path, | ||
Arg::loopBegin_< uint64 > | loopBegin | ||
) |
オーディオファイルからストリーミング形式でロードするオーディオを作成します。
<br> | |
path | |
loopBegin |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | GMInstrument | instrument, |
uint8 | key, | ||
const Duration & | duration, | ||
double | velocity = 1.0 , |
||
Arg::sampleRate_< uint32 > | sampleRate = Wave::DefaultSampleRate |
||
) |
楽器の音のオーディオを作成します。
instrument | 楽器 |
key | 音階 |
duration | ノートオンの時間 |
velocity | ベロシティ |
sampleRate | サンプルレート (Hz) |
SIV3D_NODISCARD_CXX20 s3d::Audio::Audio | ( | GMInstrument | instrument, |
uint8 | key, | ||
const Duration & | noteOn, | ||
const Duration & | noteOff, | ||
double | velocity = 1.0 , |
||
Arg::sampleRate_< uint32 > | sampleRate = Wave::DefaultSampleRate |
||
) |
楽器の音のオーディオを作成します。
instrument | 楽器 |
key | 音階 |
noteOn | ノートオンの時間 |
noteOff | ノートオフの時間 |
velocity | ベロシティ |
sampleRate | サンプルレート (Hz) |
|
explicit |
IReader からオーディオを作成します。
reader | |
format |
|
explicit |
|
virtual |
デストラクタ
指定した時間をかけて目標のパンに変更します。
pan | パン [-1.0, 1.0]. -1.0 が左、0.0 が中央、1.0 が右 |
fadeTime | フェード時間 |
指定した時間をかけて目標のスピード(再生速度の倍率)に変更します。
speed | スピード(再生速度の倍率) |
fadeTime | フェード時間 |
定した時間をかけて、半音単位で音階が変わるようスピード(再生速度の倍率)を設定します。
semitone | 目標の半音単位 |
fadeTime | フェード時間 |
fadeSpeed(std::exp2(semitone / 12.0), fadeTime)
と同じです。 指定した時間をかけて目標の音量に変更します。
volume | 目標の音量 [0.0, 1.0] |
fadeTime | フェード時間 |
AudioLoopTiming s3d::Audio::getLoopTiming | ( | ) | const |
ループ再生する場合のループ範囲を返します。
double s3d::Audio::getPan | ( | ) | const |
パンの設定 [-1.0, 1.0] を返します。
const float* s3d::Audio::getSamples | ( | size_t | channel | ) | const |
音声波形のサンプルデータにアクセスします。
channel | 左チャンネルの場合 0, 右チャンネルの場合 1 |
double s3d::Audio::getSpeed | ( | ) | const |
スピードの設定を返します。
double s3d::Audio::getVolume | ( | ) | const |
音量の設定 [0.0, 1.0] を返します。
bool s3d::Audio::isActive | ( | ) | const |
オーディオがアクティブであるかを返します。
bool s3d::Audio::isLoop | ( | ) | const |
新しく再生したときにループが有効になるかを返します。
bool s3d::Audio::isPaused | ( | ) | const |
オーディオが一時停止中であるかを返します。
bool s3d::Audio::isPlaying | ( | ) | const |
オーディオが再生中であるかを返します。
bool s3d::Audio::isStreaming | ( | ) | const |
ストリーミングオーディオであるかを返します。
double s3d::Audio::lengthSec | ( | ) | const |
オーディオの長さ(秒)を返します。
size_t s3d::Audio::loopCount | ( | ) | const |
ループ再生された回数を返します。
void s3d::Audio::pause | ( | ) | const |
再生中のオーディオを一時停止します。
void s3d::Audio::pause | ( | const Duration & | fadeTime | ) | const |
指定した時間をかけて音量をフェードアウトさせたのち一時停止します。
fadeTime | フェードアウト時間 |
void s3d::Audio::pauseAllShots | ( | ) | const |
playOneShot()
で再生中のすべてのオーディオを一時停止します
fadeTime |
void s3d::Audio::pauseAllShots | ( | const Duration & | fadeTime | ) | const |
playOneShot()
で再生中のすべてのオーディオを、指定した時間をかけて音量をフェードアウトさせたのち一時停止します
fadeTime | フェードアウト時間 |
オーディオを指定したバスで再生するか、一時停止中の場合は再生を再開します。
fadeTime | フェードイン時間 |
busIndex | バスのインデックス |
オーディオを指定したバスで再生するか、一時停止中の場合は再生を再開します。
busIndex | バスのインデックス |
fadeTime | フェードイン時間 |
void s3d::Audio::play | ( | MixBus | busIndex = MixBus0 | ) | const |
オーディオを指定したバスで再生するか、一時停止中の場合は再生を再開します。
busIndex | バスのインデックス |
busIndex
を無視して再生を再開します。 void s3d::Audio::playOneShot | ( | double | volume = 1.0 , |
double | pan = 0.0 , |
||
double | speed = 1.0 , |
||
MixBus | = MixBus0 |
||
) | const |
オーディオを重複可能にして一度だけ再生します。
volume | 音量 |
pan | パン |
speed | 再生スピード |
void s3d::Audio::playOneShot | ( | MixBus | busIndex, |
double | volume = 1.0 , |
||
double | pan = 0.0 , |
||
double | speed = 1.0 |
||
) | const |
オーディオを重複可能にして一度だけ再生します。
busIndex | バスのインデックス |
volume | 音量 |
pan | パン |
speed | 再生スピード |
int64 s3d::Audio::posSample | ( | ) | const |
再生位置(サンプル)を返します。
double s3d::Audio::posSec | ( | ) | const |
再生位置(秒)を返します。
void s3d::Audio::resumeAllShots | ( | ) | const |
playOneShot()
後に一時停止されたオーディオを再開します
void s3d::Audio::resumeAllShots | ( | const Duration & | fadeTime | ) | const |
playOneShot()
後に一時停止されたすべてのオーディオを、指定した時間をかけて音量をフェードインさせながら再開します
fadeTime | フェードイン時間 |
uint32 s3d::Audio::sampleRate | ( | ) | const |
オーディオのサンプリングレートを返します。
size_t s3d::Audio::samples | ( | ) | const |
オーディオの長さ(サンプル)を返します。
int64 s3d::Audio::samplesPlayed | ( | ) | const |
ループを含め再生したサンプル数の累計を返します。
void s3d::Audio::seekSamples | ( | size_t | posSample | ) | const |
再生位置を指定した位置(サンプル)に設定します。
posSample | 再生位置(サンプル) |
void s3d::Audio::seekTime | ( | const Duration & | pos | ) | const |
再生位置を指定した位置に設定します。
pos | 再生位置 |
void s3d::Audio::seekTime | ( | double | posSec | ) | const |
再生位置を指定した位置(秒)に設定します。
posSec | 再生位置(秒) |
void s3d::Audio::setLoop | ( | bool | loop | ) | const |
新しく再生するときのループの有無を設定します。
loop | ループの有無 |
void s3d::Audio::setLoopPoint | ( | const Duration & | loopBegin | ) | const |
新しくループ再生するときのループ開始位置(秒)を設定します。
loopBegin | ループ開始位置(秒) |
void s3d::Audio::setLoopPoint | ( | uint64 | loopBegin | ) | const |
新しくループ再生するときのループ開始位置(サンプル)を設定します。
loopBegin | ループ開始位置(サンプル) |
const Audio& s3d::Audio::setPan | ( | double | pan | ) | const |
パン [-1.0, 1.0] を設定します。
pan | パン [-1.0, 1.0]. -1.0 が左、0.0 が中央、1.0 が右 |
const Audio& s3d::Audio::setSpeed | ( | double | speed | ) | const |
スピード(再生速度の倍率)を設定します。
speed | スピード(再生速度の倍率) |
半音単位で音階が変わるようスピード(再生速度の倍率)を設定します。
semitone | 目標の半音単位 |
setSpeed(std::exp2(semitone / 12.0))
と同じです。 const Audio& s3d::Audio::setVolume | ( | double | volume | ) | const |
音量 [0.0, 1.0] を設定します。
volume | 音量 [0.0, 1.0] |
void s3d::Audio::stop | ( | ) | const |
オーディオを即座に停止し、非アクティブにします。
void s3d::Audio::stop | ( | const Duration & | fadeTime | ) | const |
指定した時間をかけて音量をフェードアウトさせたのち停止します。
fadeTime | フェードアウト時間 |
void s3d::Audio::stopAllShots | ( | ) | const |
playOneShot()
で再生中のすべてのオーディオをすべて停止します
void s3d::Audio::stopAllShots | ( | const Duration & | fadeTime | ) | const |
playOneShot()
で再生中のすべてのオーディオを、指定した時間をかけて音量をフェードアウトさせたのち停止します
fadeTime | フェードアウト時間 |
|
noexcept |
オーディオを入れ替えます。
other | 入れ替える先のオーディオ |
|
staticconstexpr |
バスの最大数
|
staticconstexpr |
フィルターの最大数
|
static |