sfx


Freebasic sfx library is cross-platform and comes for Windows, Linux, Dos
Author: angros47
Download link: https://sourceforge.net/projects/freebasic-sfx-library/files/
Forum link: https://freebasic.net/forum/viewtopic.php?f=17&t=26256

Compile Library: all the necessary scripts are in the archive, you just need to substitute the correct path to the compiler in them

A brief description of the main (not all) functions:

1) SoundmidiSet - setting mode midi (needed for function PLAY)
2) SoundSet - setting mode PCM sound (needed for functions SOUND , PlayWave)
1) PLAY - command is for playing musical notes, octave *.
2) SOUND - command produces sound of a specific frequency for a specific duration
3) LoadMidi - load midi from file, returns a pointer MidiSequence ptr
4) PlayMidi - play midi, in parameters you need to pass pointer MidiSequence ptr
5) CreateMidi - creates MidiSequence ptr, then you can use the pointer using PLAY to write data , and then save in the file
6) SaveMidi - save data MidiSequence ptr in file, in format .mid
7) LoadWave - loads a file into memory WAV (supported only WAVE_FORMAT_PCM), returns a pointer WaveHeaderType ptr
8) PlayWave - play wav , in parameters you need to pass pointer WaveHeaderType ptr

* The command PLAY can play more than one note at time: it supports chords, by grouping notes inside curly brackets, and it allows to play up to 16 channels at the same time. For more information see also command QBASICs play.

Description of all functions is in the file readme.txt (in archive)

Examples:

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


Back to External Library Table of Contents

Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode