FreeBASIC ExtLibsfx
目次→その他→ライブラリ・ヘッダー索引→Libsfx←オリジナル・サイト
目次→FreeBASIC のハッキング→FreeBASIC でのハッキングのための情報→外部ライブラリ索引→Libsfx←オリジナル・サイト
sfx
Freebasic sfx ライブラリはクロスプラットフォームで、Windows、Linux、Dosに対応しています。
作者: angros47
ダウンロード: https://sourceforge.net/projects/freebasic-sfx-library/files/
フォーラム: https://freebasic.net/forum/viewtopic.php?f=17&t=26256
ライブラリのコンパイル:必要なすべてのスクリプトがアーカイブにあります。
スクリプトのコンパイラへのパスを置き換えるだけで使えます。
主な(すべてではない)機能の簡単な説明:
1) SoundmidiSet - midi モードの設定(PLAY 機能に必要)
2) SoundSet - PCM サウンド モードの設定(SOUND、PlayWave 機能に必要)
1) PLAY - このコマンドは音符、オクターブを再生 *
2) SOUND - このコマンドは、特定の周波数の特定の持続音を生成
3) LoadMidi - ファイルから midi をロードし、ポインタ MidiSequence ptr を返す
4) PlayMidi - MIDI を再生。パラメーターで、ポインター MidiSequence ptr を渡す必要があります。
5) CreateMidi - MidiSequence ptr を作成し、PLAY のポインターを使ってデータを書き込み、ファイルに保存できます。
6) SaveMidi - データ MidiSequence ptr を .mid 形式のファイルに保存します
7) LoadWave - ファイルをメモリ WAV(WAVE_FORMAT_PCM のみサポート)にロードし、ポインタ WaveHeaderType ptr を返します
8) PlayWave - wav を再生。パラメーターで、ポインターWaveHeaderType ptr を渡す必要があります
* コマンド PLAY は、一度に複数の音符を再生できます:
中括弧で囲んで音符をグループ化することで和音をサポートし、同時に最大16チャンネルを再生できます。 詳細については、コマンドQBASI Csplay も参照ください。
すべての機能の説明は、ファイル readme.txt(アーカイブ内)にあります。
例:
Example Play
#include "sfx.bi"
#inclib "fbsfx"
SoundmidiSet ()
PLAY "a4e4g4a4g4e4c2f4f4f2d4d4d2"
Example Play wih thread
#include "sfx.bi"
#inclib "fbsfx"
Dim
Shared As Any Ptr mutex
mutex = MutexCreate
Dim Shared
As Long iMusicExit
Dim As Double dTimer
Sub
procThread(p As Any
Ptr)
SoundmidiSet ()
PLAY "a4e4g4a4g4e4c2f4f4f2d4d4d2"
MutexLock(mutex)
iMusicExit =
1
MutexUnlock(mutex)
End Sub
dTimer = Timer
ThreadCreate(@procThread)
Do
? Timer - dTimer
MutexLock(mutex)
If iMusicExit
Then
Exit
Do
EndIf
MutexUnlock(mutex)
Loop
Example CreateMidi, SaveMidi
#include "sfx.bi"
#inclib "fbsfx"
SoundmidiSet ()
Dim
As Any Ptr Midi=CreateMidi()
PLAY Midi,"a4e4g4a4g4e4c2f4f4f2d4d4d2"
SaveMidi
"music.mid", Midi
Example LoadMidi, PlayMidi
#include "sfx.bi"
#inclib "fbsfx"
SoundmidiSet ()
Dim
As Any Ptr Midi=LoadMidi("music.mid")
PlayMidi(Midi,
1)
Sleep
Example Sound
#include "sfx.bi"
#inclib "fbsfx"
SoundSet (44100,1,16)
sound SineWave(2000), 1 ' sine 2
kHz
sound NoiseWave(), 1 '
noise
Sleep
Example LoadWave, PlayWave
#include "sfx.bi"
#inclib "fbsfx"
Dim
As WaveHeaderType Ptr
pWave
SoundSet (44100,2,16)
pWave = LoadWave("1.wav")
If pWave = 0 Then
Print
"pWave = 0" : End
End If
PlayWave(pWave)
Sleep
ページ歴史:2021-02-07 16:44:53
日本語翻訳:WATANABE Makoto、原文著作者:badidea