ma2のblog - わんくま版(仮)

うどん、より、そば

目次

Blog 利用状況

ニュース

Xbox360ゲーマータグ

リンク

ブログ内検索

書庫

日記カテゴリ

fmod APIを使ったサウンドプログラム - 初期化/終了とBGM再生/停止

fmod APIを使用したプログラムについて解説します。
今回から具体的なAPIを使用したプログラミングに入ります。

Win32のプロジェクトなので要点以外のコードがとても多かったり、先にソースを読んでおいて解説と並行したいという方もいると思います。
ということで出来上がったものをこちらにあらかじめ用意しました。


# 料理講座っぽく言ってみたかっただけです

このプロジェクトでは、次の処理を行っています。

  • fmodシステムの初期化(InitMusicStream関数)
  • BGMとして使用するオーディオファイルの読み込み(PlayMusicStream関数)
  • fmodシステムの終了処理(ReleaseMusicStream関数)

これらの処理は、それぞれ関数化してWinMain.cppで呼び出すようにしています。
カッコ内の関数名はfmodTest.cpp内で定義されています。

fmodTest.cpp内の解説に移ります。
このソースファイルには、3個のグローバル変数があります。

FMOD_SYSTEM*    fmodsystem = NULL;
FMOD_SOUND*     fmodsound = NULL;
FMOD_CHANNEL*   fmodchannel = NULL;

このFMOD_SYSTEM、FMOD_SOUND、FMOD_CHANNELはそれぞれオーディオシステム全体、再生する楽曲/効果音データ、データ再生時チャンネルのハンドルです。
ヘッダファイル(fmod.h)内では、それぞれ構造体として定義されていますが、メンバまでは記述されていません。
現時点ではこれらの情報を追求する必要はないので「こういうもの」という程度にとどめておいてください。

次にInitMusicStream関数内で呼び出しているAPIの解説です。

API名 FMOD_System_Create
構文 FMOD_RESULT FMOD_System_Create( FMOD_SYSTEM* system );
引数
system FMOD_SYSTEMのポインタです。
処理が成功した場合、生成されたFMODシステムのアドレスが返されます。
返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 FMOD_SYSTEMオブジェクトを生成します。
FMOD_SYSTEMオブジェクトは、生成しただけでは使用できないので返されたsystemをFMOD_System_Initに渡し、初期設定を行う必要があります。

API名 FMOD_System_Init
構文 FMOD_RESULT FMOD_System_Init( FMOD_SYSTEM* system, int maxchannels, FMOD_INITFLAGS flags, void* extradriverdata );
引数
system FMOD_SYSTEMのポインタです。
FMOD_System_Createで生成したものを使います。
maxchannels FMODで使用されるチャンネルの最大数です。
通常は100もあれば困ることはありません。
flags 拡張機能を合わせて初期化するためのフラグです。
特に必要がなければFMOD_INIT_NORMALだけを指定します。
FMOD_INIT_NORMAL以外のFMOD_INITFLAGS定数については、ヘッダファイルもしくはリファレンスマニュアルを参照してください。
extradriverdata サウンドデバイスのドライバに渡すデータがある場合に使用する引数です。
渡すデータがない場合は、NULLを渡します。
返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 systemで指定したFMOD_SYSTEMオブジェクトの初期設定を行います。
設定できる内容はmaxchannelsとflagsの解説を参照してください。

API名

FMOD_System_CreateStream

構文

FMOD_RESULT FMOD_System_CreateStream( FMOD_SYSTEM* system, const char* name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO* exinfo, FMOD_SOUND** sound );

引数
system FMOD_SYSTEMのポインタです。
FMOD_System_Createで生成したものを使います。

name_or_data

再生するオーディオデータのパスもしくはURLです。
音楽CDを再生する場合はドライブレターを指定します(例、Eドライブの場合は"E:")。
ファイルパスはマルチバイト文字列で指定します。UNICODEビルドをした場合でもワイド文字列は使用できません。
mode ファイルを開く際に指定する条件のフラグです。
特に必要がなければFMOD_DEFAULTだけを指定します。FMOD_DEFAULT以外のFMOD_MODE定数については、ヘッダファイルもしくはリファレンスマニュアルを参照してください。

exinfo

開いたファイルに関する情報(FMOD_CREATESOUNDEXINFO構造体)です。
取得できる情報については、ヘッダファイルもしくはリファレンスマニュアルを参照してください。
sound FMOD_SOUNDのポインタをアドレスで渡します(形式上ダブルポインタになる)。
ここで返される値は、FMOD_Sound_* APIを呼び出す際に必要になります。
返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 name_of_dateで指定したパスやファイルを開きます。
オンライン上のURLや音楽CDのドライブを指定することもできます。
このAPIでは指定したパスをストリーム再生(再生をする際に必要なデータを逐次読み込んでいく)する形式で読み込みます。
パスやファイルを開くことができた場合、soundにそのデータのアドレスが返されます。

リファレンスがたくさん出てきましたが、初期化処理で指定する値は特殊環境でなければデフォルト推奨値でよいと思います。
FMOD_System_CreateとFMOD_System_InitがFMODシステムの生成と初期化処理で、次にFMOD_System_CreateStreamでBGMに使用するファイルを開きます。
ここまでが初期化処理(とファイルオープン処理)になります。

次にPlayMusicStream関数内で呼び出されているAPIの説明です。

API名 FMOD_System_PlaySound
構文 FMOD_RESULT FMOD_System_PlaySound( FMOD_SYSTEM* system, FMOD_CHANNELINDEX channelid, FMOD_SOUND* sound, FMOD_BOOL paused, FMOD_CHANNEL** channel );
引数
system FMOD_SYSTEMのポインタです。
FMOD_System_Createで生成したものを使います。
channelid 再生の際に使用するチャンネルを指定します。
FMOD_CHANNEL_FREE(-1)を指定すると空いているチャンネルに自動割り当てされます。
特定のチャンネルを指定する場合は、ゼロ以上の値を指定します。
sound 再生するデータのFMOD_SOUNDのポインタ。
FMOD_System_CreateStreamで作成したものを使います。
paused API呼び出し直後に再生を進めるかを指定します。
TRUEを指定した場合、一時停止状態になります。
一時停止の解除は、FMOD_Channel_SetPaused APIを使用します。
(このエントリでは解説しません)
channel 再生を行うチャンネル(FMOD_CHANNEL)のポインタです。
再生中のBGMや効果音に対する操作/設定をするAPIで必要になります。
返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 soundに指定したFMOD_SOUNDを再生します。
呼び出しが成功した場合、channelに再生チャンネルのハンドルが返され、再生が始まります(ただし、pausedによる一時停止設定など例外もあります)。

PlayMusicStream関数が呼び出され、FMOD_System_PlaySound APIが呼び出されれば、演奏が始まります。

最後に、プログラム終了時に行うFMODシステムの終了処理のAPIを解説します。

API名 FMOD_Channel_Stop
構文 FMOD_RESULT FMOD_Channel_Stop( FMOD_CHANNEL* channel );
引数
channel データ再生をしているチャンネルのハンドルです。
FMOD_System_PlaySound等の呼び出しで取得したものを指定します。
返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 channelで指定したチャンネルの演奏を停止します。

API名 FMOD_Sound_Release
構文 FMOD_RESULT FMOD_Sound_Release( FMOD_SOUND* sound );
引数
sound

再生のためにオープン(ストリーム)もしくは読み込んでいるデータのハンドルです。
FMOD_System_CreateStream等で取得したものを使用します。

返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 soundで指定したデータを開放します。

API名 FMOD_System_Close
構文 FMOD_RESULT FMOD_System_Close( FMOD_SYSTEM* system );
引数
system

FMOD_SYSTEMのポインタです。
FMOD_System_Createで生成したものを使います。

返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 systemで指定したFMODシステムを使用できないようにします。
このAPIを呼び出す前にFMODシステムに関連するリソースは開放するようにしてください。

API名 FMOD_System_Release
構文 FMOD_RESULT FMOD_System_Release( FMOD_SYSTEM* system );
引数
system

FMOD_SYSTEMのポインタです。
FMOD_System_Createで生成したものを使います。

返り値 FMOD_RESULT(FMOD_OKであれば成功、それ以外は各種エラーコード)
解説 systemで指定したFMODシステムを開放します。
このAPIでシステムを開放する場合、事前にFMOD_System_Closeを呼ぶ必要はありません。

リファレンスによれば、FMOD_System_ReleaseすればFMOD_System_Closeは省いてよいようですが、念のためサンプルではClose→Releaseと呼び出しています。

以上が、fmod APIの初期化/終了の処理と最低限のBGM再生を行うための解説です。
ここまでの処理ができれば、後は素材を揃えてAPIで遊ぶことができます。

最後に、サンプルを動かすための注意をいくつか。

  • fmodex.dllをコピーしてください。
    このサンプルはfmodex.dllが読み込めないと動作しません。
    SDKをインストールしたフォルダの「./api」フォルダにfmodex.dllというファイルがあります。
    これをサンプルのプロジェクトファイルがあるフォルダにコピーしてください。
    また、VisualStudio上から実行した場合と、ビルドしてできたexeファイルを直接呼び出す場合では、dllの配置場所を変えないといけません。
    VisualStudioから実行する場合は、プロジェクトファイルがあるフォルダに置いてください。
    exeファイルを直接実行する場合は、exeファイルと同じ場所に置いてください。
  • music.oggを用意してください。
    このサンプルでは、music.oggというファイルを読み込んで再生しています。
    オーディオファイルは、mp3やwavでもよいのですが、サンプルで指定しているものと名前が一致するようにしてください。
    fmodのSDKには、サンプルとしていくつかのoggファイルがインストールの時点で作成されます。
    インストールフォルダ配下の「.\fmoddesignerapi\examples\media\music」からファイルをコピーして名前を変更して使うこともできます。
    music.oggはサンプルに同梱していません。
    # excited.oggやrelaxed.oggは演奏時間が長いです

以上が、fmod APIを使った簡単なサンプルになります。

投稿日時 : 2008年11月10日 15:14

コメントを追加

# fmod APIを使ったサウンドプログラム - 楽曲のループと繰返し範囲 2008/11/12 23:38 ma2のblog - わんくま版(仮)

fmod APIを使ったサウンドプログラム - 楽曲のループと繰返し範囲

# openframeworks, fmod???????????? « my favorite things 2009/03/29 18:02 Pingback/TrackBack

openframeworks, fmod???????????? « my favorite things

# Good day! I could have sworn I've been to this website before but after browsing through some of the posts I realized it's new to me. Anyhow, I'm definitely pleased I discovered it and I'll be bookmarking it and checking back regularly! 2021/08/31 17:01 Good day! I could have sworn I've been to this we

Good day! I could have sworn I've been to this website before but after browsing
through some of the posts I realized it's new to me. Anyhow, I'm
definitely pleased I discovered it and I'll be bookmarking it and checking back regularly!

# Good day! I could have sworn I've been to this website before but after browsing through some of the posts I realized it's new to me. Anyhow, I'm definitely pleased I discovered it and I'll be bookmarking it and checking back regularly! 2021/08/31 17:02 Good day! I could have sworn I've been to this we

Good day! I could have sworn I've been to this website before but after browsing
through some of the posts I realized it's new to me. Anyhow, I'm
definitely pleased I discovered it and I'll be bookmarking it and checking back regularly!

# Good day! I could have sworn I've been to this website before but after browsing through some of the posts I realized it's new to me. Anyhow, I'm definitely pleased I discovered it and I'll be bookmarking it and checking back regularly! 2021/08/31 17:03 Good day! I could have sworn I've been to this we

Good day! I could have sworn I've been to this website before but after browsing
through some of the posts I realized it's new to me. Anyhow, I'm
definitely pleased I discovered it and I'll be bookmarking it and checking back regularly!

# Good day! I could have sworn I've been to this website before but after browsing through some of the posts I realized it's new to me. Anyhow, I'm definitely pleased I discovered it and I'll be bookmarking it and checking back regularly! 2021/08/31 17:04 Good day! I could have sworn I've been to this we

Good day! I could have sworn I've been to this website before but after browsing
through some of the posts I realized it's new to me. Anyhow, I'm
definitely pleased I discovered it and I'll be bookmarking it and checking back regularly!

# Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed. There was a hermit crab inside 2021/09/03 18:38 Today, I went to the beachfront with my kids. I fo

Today, I went to the beachfront with my kids.
I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed.
There was a hermit crab inside and it pinched her
ear. She never wants to go back! LoL I know this is entirely off topic but
I had to tell someone!

# Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed. There was a hermit crab inside 2021/09/03 18:39 Today, I went to the beachfront with my kids. I fo

Today, I went to the beachfront with my kids.
I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed.
There was a hermit crab inside and it pinched her
ear. She never wants to go back! LoL I know this is entirely off topic but
I had to tell someone!

# Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed. There was a hermit crab inside 2021/09/03 18:40 Today, I went to the beachfront with my kids. I fo

Today, I went to the beachfront with my kids.
I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed.
There was a hermit crab inside and it pinched her
ear. She never wants to go back! LoL I know this is entirely off topic but
I had to tell someone!

# Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed. There was a hermit crab inside 2021/09/03 18:41 Today, I went to the beachfront with my kids. I fo

Today, I went to the beachfront with my kids.
I found a sea shell and gave it to my 4 year old daughter and said "You can hear the ocean if you put this to your ear." She placed the shell to her ear and screamed.
There was a hermit crab inside and it pinched her
ear. She never wants to go back! LoL I know this is entirely off topic but
I had to tell someone!

# I don't even know how I ended up here, but I thought this post was great. I don't know who you are but certainly you're going to a famous blogger if you aren't already ;) Cheers! 2021/09/04 9:59 I don't even know how I ended up here, but I thoug

I don't even know how I ended up here, but I thought this post was
great. I don't know who you are but certainly you're going to
a famous blogger if you aren't already ;) Cheers!

# I don't even know how I ended up here, but I thought this post was great. I don't know who you are but certainly you're going to a famous blogger if you aren't already ;) Cheers! 2021/09/04 10:00 I don't even know how I ended up here, but I thoug

I don't even know how I ended up here, but I thought this post was
great. I don't know who you are but certainly you're going to
a famous blogger if you aren't already ;) Cheers!

# I don't even know how I ended up here, but I thought this post was great. I don't know who you are but certainly you're going to a famous blogger if you aren't already ;) Cheers! 2021/09/04 10:01 I don't even know how I ended up here, but I thoug

I don't even know how I ended up here, but I thought this post was
great. I don't know who you are but certainly you're going to
a famous blogger if you aren't already ;) Cheers!

# I don't even know how I ended up here, but I thought this post was great. I don't know who you are but certainly you're going to a famous blogger if you aren't already ;) Cheers! 2021/09/04 10:02 I don't even know how I ended up here, but I thoug

I don't even know how I ended up here, but I thought this post was
great. I don't know who you are but certainly you're going to
a famous blogger if you aren't already ;) Cheers!

# Hello there I am so happy I found your website, I really found you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now and would just like to say many thanks for a marvelous post and a all round thrilling blog (I also love 2021/09/06 13:25 Hello there I am so happy I found your website, I

Hello there I am so happy I found your website, I really found
you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now
and would just like to say many thanks for a marvelous post and a all round thrilling blog
(I also love the theme/design), I don't have time to look
over it all at the moment but I have bookmarked it and also added in your RSS
feeds, so when I have time I will be back to read a great
deal more, Please do keep up the excellent work.

# Hello there I am so happy I found your website, I really found you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now and would just like to say many thanks for a marvelous post and a all round thrilling blog (I also love 2021/09/06 13:26 Hello there I am so happy I found your website, I

Hello there I am so happy I found your website, I really found
you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now
and would just like to say many thanks for a marvelous post and a all round thrilling blog
(I also love the theme/design), I don't have time to look
over it all at the moment but I have bookmarked it and also added in your RSS
feeds, so when I have time I will be back to read a great
deal more, Please do keep up the excellent work.

# Hello there I am so happy I found your website, I really found you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now and would just like to say many thanks for a marvelous post and a all round thrilling blog (I also love 2021/09/06 13:27 Hello there I am so happy I found your website, I

Hello there I am so happy I found your website, I really found
you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now
and would just like to say many thanks for a marvelous post and a all round thrilling blog
(I also love the theme/design), I don't have time to look
over it all at the moment but I have bookmarked it and also added in your RSS
feeds, so when I have time I will be back to read a great
deal more, Please do keep up the excellent work.

# Hello there I am so happy I found your website, I really found you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now and would just like to say many thanks for a marvelous post and a all round thrilling blog (I also love 2021/09/06 13:28 Hello there I am so happy I found your website, I

Hello there I am so happy I found your website, I really found
you by mistake, while I was looking on Yahoo for something else, Anyhow I am here now
and would just like to say many thanks for a marvelous post and a all round thrilling blog
(I also love the theme/design), I don't have time to look
over it all at the moment but I have bookmarked it and also added in your RSS
feeds, so when I have time I will be back to read a great
deal more, Please do keep up the excellent work.

# What's up, I wish for to subscribe for this blog to get most up-to-date updates, so where can i do it please help. quest bars http://bitly.com/3jZgEA2 quest bars 2021/09/10 13:54 What's up, I wish for to subscribe for this blog

What's up, I wish for to subscribe for this blog to get most up-to-date updates,
so where can i do it please help. quest bars http://bitly.com/3jZgEA2 quest bars

# I do trust all of the ideas you've introduced to your post. They are very convincing and can definitely work. Nonetheless, the posts are too quick for newbies. May just you please extend them a little from next time? Thanks for the post. 2021/10/26 19:31 I do trust all of the ideas you've introduced to y

I do trust all of the ideas you've introduced to your post.
They are very convincing and can definitely
work. Nonetheless, the posts are too quick for newbies.
May just you please extend them a little from next time?
Thanks for the post.

# I do trust all of the ideas you've introduced to your post. They are very convincing and can definitely work. Nonetheless, the posts are too quick for newbies. May just you please extend them a little from next time? Thanks for the post. 2021/10/26 19:32 I do trust all of the ideas you've introduced to y

I do trust all of the ideas you've introduced to your post.
They are very convincing and can definitely
work. Nonetheless, the posts are too quick for newbies.
May just you please extend them a little from next time?
Thanks for the post.

# I do trust all of the ideas you've introduced to your post. They are very convincing and can definitely work. Nonetheless, the posts are too quick for newbies. May just you please extend them a little from next time? Thanks for the post. 2021/10/26 19:33 I do trust all of the ideas you've introduced to y

I do trust all of the ideas you've introduced to your post.
They are very convincing and can definitely
work. Nonetheless, the posts are too quick for newbies.
May just you please extend them a little from next time?
Thanks for the post.

# I do trust all of the ideas you've introduced to your post. They are very convincing and can definitely work. Nonetheless, the posts are too quick for newbies. May just you please extend them a little from next time? Thanks for the post. 2021/10/26 19:34 I do trust all of the ideas you've introduced to y

I do trust all of the ideas you've introduced to your post.
They are very convincing and can definitely
work. Nonetheless, the posts are too quick for newbies.
May just you please extend them a little from next time?
Thanks for the post.

# stromectol drug http://stromectolabc.com/
ivermectin where to buy for humans 2022/02/07 17:48 Busjdhj

stromectol drug http://stromectolabc.com/
ivermectin where to buy for humans

# ivermectin tablets uk http://stromectolabc.com/
ivermectin lotion price 2022/02/08 3:40 Busjdhj

ivermectin tablets uk http://stromectolabc.com/
ivermectin lotion price

# doxycycline hyc https://doxycyline1st.com/
doxycycline hydrochloride 100mg 2022/02/26 9:43 Doxycycline

doxycycline hyc https://doxycyline1st.com/
doxycycline hydrochloride 100mg

# top rated ed pills https://erectionpills.best/
pills for ed 2022/06/28 11:05 ErectionPills

top rated ed pills https://erectionpills.best/
pills for ed

# re: fmod APIを使ったサウンドプログラム - 初期化/終了とBGM再生/停止 2022/10/16 16:05 Denon AVR-S750H Black Friday

There are several speakers in the market, but it is difficult to choose the right one for you as you have to consider many things like the size of the room, the distance from the speaker to the listener, and the placement of the speaker.

If you have a small living room, a Denon AVR-S750H Speaker can be the perfect choice. It is compact and has a sleek design. It is easy to set up and operate, and it has a powerful sound quality.

# online apotheke gГјnstig 2023/09/26 14:21 Williamreomo

http://onlineapotheke.tech/# versandapotheke versandkostenfrei
gГ?nstige online apotheke

# internet apotheke 2023/09/26 23:30 Williamreomo

http://onlineapotheke.tech/# п»?online apotheke
gГ?nstige online apotheke

# online apotheke preisvergleich 2023/09/26 23:58 Williamreomo

http://onlineapotheke.tech/# online apotheke preisvergleich
online apotheke gГ?nstig

# versandapotheke deutschland 2023/09/27 0:27 Williamreomo

http://onlineapotheke.tech/# online apotheke deutschland
versandapotheke deutschland

# п»їonline apotheke 2023/09/27 2:52 Williamreomo

http://onlineapotheke.tech/# online apotheke versandkostenfrei
versandapotheke deutschland

# п»їonline apotheke 2023/09/27 10:27 Williamreomo

http://onlineapotheke.tech/# п»?online apotheke
online apotheke deutschland

# farmaci senza ricetta elenco 2023/09/27 20:28 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# gГјnstige online apotheke 2023/09/27 21:41 Terrywef

acheter sildenafil 100mg sans ordonnance

# farmacia online piГ№ conveniente 2023/09/27 22:22 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# online canadian pharmacies 2023/10/16 13:54 Dannyhealm

They provide global solutions to local health challenges. https://mexicanpharmonline.com/# mexican border pharmacies shipping to usa

# canadian pharmcy 2023/10/16 21:45 Dannyhealm

I'm always impressed with their efficient system. http://mexicanpharmonline.shop/# mexican rx online

# pharm store canada 2023/10/16 23:38 Dannyhealm

Always professional, whether dealing domestically or internationally. https://mexicanpharmonline.com/# pharmacies in mexico that ship to usa

# mail order pharmacies canada 2023/10/17 2:57 Dannyhealm

Their cross-border services are unmatched. http://mexicanpharmonline.com/# mexico drug stores pharmacies

# best online indian pharmacies 2023/10/17 5:04 Dannyhealm

They provide peace of mind with their secure international deliveries. https://mexicanpharmonline.shop/# mexico drug stores pharmacies

# canadian prescriptions in usa 2023/10/17 11:50 Dannyhealm

Cautions. http://mexicanpharmonline.com/# mexico drug stores pharmacies

# best online canadian pharmacies 2023/10/17 18:38 Dannyhealm

Their multilingual support team is a blessing. http://mexicanpharmonline.shop/# mexican mail order pharmacies

# buy medications without prescriptions 2023/10/18 4:49 Dannyhealm

Their patient education resources are top-tier. https://mexicanpharmonline.shop/# mexican rx online

# canadian online rx 2023/10/18 11:50 Dannyhealm

The drive-thru option is a lifesaver. https://mexicanpharmonline.shop/# mexico drug stores pharmacies

# generic plavix https://plavix.guru/ antiplatelet drug 2023/10/24 3:37 Plavixxx

generic plavix https://plavix.guru/ antiplatelet drug

# amoxil generic 2023/11/14 14:16 JamesKnoft

https://clomid.sbs/# how can i get cheap clomid for sale

# discount prescriptions 2023/11/30 0:19 MichaelBum

https://claritin.icu/# ventolin rx

# paxlovid cost without insurance 2023/12/01 7:10 Mathewhip

paxlovid for sale https://paxlovid.club/# paxlovid price

# canadian pharmaceutical companies that ship to usa 2023/12/02 13:00 MichaelBum

https://paxlovid.club/# п»?paxlovid

# farmacia 24h 2023/12/07 17:35 RonnieCag

https://farmacia.best/# farmacia online barata

# farmacia online envío gratis 2023/12/08 9:00 RonnieCag

http://tadalafilo.pro/# farmacia online madrid

# farmacia envíos internacionales 2023/12/08 14:36 RonnieCag

https://farmacia.best/# farmacias online baratas

# farmacia online 24 horas 2023/12/08 20:44 RonnieCag

https://tadalafilo.pro/# farmacia online envío gratis

# farmacias online seguras 2023/12/10 8:25 RonnieCag

http://vardenafilo.icu/# farmacia online

# ï»¿farmacia online 2023/12/10 11:20 RonnieCag

https://farmacia.best/# farmacia online

# farmacia barata 2023/12/11 23:24 RonnieCag

http://tadalafilo.pro/# farmacia online envío gratis

# farmacias baratas online envío gratis 2023/12/12 18:45 RonnieCag

https://vardenafilo.icu/# farmacia barata

# ï»¿farmacia online 2023/12/13 1:44 RonnieCag

http://tadalafilo.pro/# farmacias online seguras

# farmacia envíos internacionales 2023/12/13 11:51 RonnieCag

https://farmacia.best/# farmacia online madrid

# Pharmacie en ligne fiable 2023/12/13 18:08 Larryedump

http://pharmacieenligne.guru/# Acheter médicaments sans ordonnance sur internet

# acheter medicament a l etranger sans ordonnance 2023/12/14 1:29 Larryedump

http://pharmacieenligne.guru/# pharmacie ouverte

# Pharmacie en ligne sans ordonnance 2023/12/15 18:41 Larryedump

http://pharmacieenligne.guru/# Acheter médicaments sans ordonnance sur internet

# Pharmacies en ligne certifiées 2023/12/16 1:48 Larryedump

https://pharmacieenligne.guru/# Pharmacie en ligne livraison gratuite

# п»їonline apotheke 2023/12/17 13:50 FrankTic

http://apotheke.company/# online apotheke preisvergleich

# п»їonline apotheke 2023/12/19 3:03 FrankTic

http://apotheke.company/# versandapotheke

# paxlovid india 2023/12/27 5:35 Brianmooda

https://clomid.site/# can i purchase generic clomid online

# doxycycline hyclate 100 mg cap 2024/01/06 5:26 BobbyHef

http://cytotec.icu/# purchase cytotec

# cheapest ed pills 2024/01/10 10:01 CharlesDioky

https://sildenafildelivery.pro/# sildenafil tablets 100mg

# farmacie online sicure 2024/01/15 20:30 Wendellglaks

https://tadalafilitalia.pro/# farmacia online

# farmacie online autorizzate elenco 2024/01/17 0:15 Wendellglaks

http://tadalafilitalia.pro/# farmaci senza ricetta elenco

# can i get generic clomid 2024/01/20 17:05 AnthonyAnoth

http://cytotec.directory/# order cytotec online

# buying cheap clomid online 2024/01/21 9:11 AnthonyAnoth

http://clomidpharm.shop/# can you get generic clomid

# buy clomid without rx 2024/01/22 11:48 LarryVoP

Professional, courteous, and attentive в?“ every time http://cytotec.directory/# buy cytotec pills

# arimidex vs tamoxifen bodybuilding 2024/01/22 14:19 Normantug

https://cytotec.directory/# buy cytotec in usa

# top rated online canadian pharmacies 2024/01/23 14:52 Stevenhex

http://edpills.bid/# over the counter erectile dysfunction pills

# stromectol where to buy 2024/01/30 12:09 Andrewamabs

http://prednisonetablets.shop/# prednisone 40 mg price

# stromectol cvs 2024/01/31 5:03 Andrewamabs

http://prednisonetablets.shop/# prednisone uk price

# top 10 pharmacies in india 2024/02/03 12:29 Jerrysoicy

http://mexicanpharm.shop/# mexico drug stores pharmacies mexicanpharm.shop

# dating sites without registering 2024/03/08 9:38 HowardBox

usa free dating sites: http://sweetiefox.pro/# sweetie fox

# dating games 2024/03/10 0:36 HowardBox

daiting online: https://lanarhoades.pro/# lana rhoades pics

# aplicativo de aposta 2024/03/12 1:21 Robertcog

http://aviatorghana.pro/# aviator game

# site de apostas 2024/03/13 1:58 Robertcog

http://jogodeaposta.fun/# jogos que dao dinheiro

# gates of olympus oyna demo 2024/03/28 0:24 KeithNaf

https://gatesofolympus.auction/# gates of olympus s?rlar?

# gates of olympus oyna ucretsiz 2024/03/28 12:56 KeithNaf

https://sweetbonanza.bid/# sweet bonanza mostbet

# Buy Tadalafil 20mg 2024/04/06 4:34 JohnnieZet

http://tadalafiliq.com/# Buy Tadalafil 10mg

# where can i get doxycycline 2024/04/13 16:39 Archiewef

http://doxycyclinest.pro/# buy doxycycline cheap

# buy doxycycline online 2024/04/14 12:21 Archiewef

https://diflucan.icu/# diflucan tablet price in india

# diflucan tabs 2024/04/14 15:51 Josephfep

http://clomida.pro/# how can i get generic clomid without insurance

タイトル
名前
URL
コメント