FreeBASIC マニュアルのトップに戻る

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

ホームページのトップに戻る

表示-非営利-継承