BlitzBasic-Community-Tutorial/ Sound

Aus Wikibooks

Beim Sound kann man zwei unterschiedliche Arten unterscheiden: Zum Ersten die meist nur kurzen Sounddaten die als Efekte abgespielt (z.B. wenn man ein PowerUp einsammelt) und zum Zweiten die Hintergrundmusik.

Sounds Laden & Abspielen[Bearbeiten]

Bevor man einen Sound abspielen kann, muss er in den Speicher geladen werden. Das sollte man am Besten am Anfang des Programmes machen. Die möglichen Dateiendungen sind bei der Demo nur .wav. In der Vollversion kommen noch .mp3 und .raw dazu.

SoundId=LoadSound(Soundpfad$)

Später kann man dann den Sound mit PlaySound abspielen:

ChannelId=PlaySound(SoundId)

Mit Hilfe der ChannelId kann man den Sound während der Wiedergabe verändern.(siehe unten)

Während der Wiedergabe eines Sounds kann man die Wiedergabe mit

PauseChannel ChannelId

unterbrechen. Den unterbrochenen Sound kann man mit

ResumeChannel ChannelId

fortsetzten. Wenn man einen Sound nicht unterbrechen sondern richtig Stopen will, sollte man

StopChannel ChannelId

benutzen.
Um einen Sound aus dem Speicher zu löschen kann man

FreeSound SoundId

verwenden (die Wiedergabe muss vorher beendet werden.)

Musik Laden & Abspielen[Bearbeiten]

Das Laden und Abspielen von Musik ist einfacher als das von normalen Sounds. Man benötigt nur einen Befehle um die Musikwiedergabe zu starten:

ChannelId=PlayMusic(Musikpfad$)

Als Dateiformate stehen folgende Endungen zur Verfügung: raw,mod,s3m,xm,it,mid,rmi,wav,mp2,mp3,ogg,wma,asf.

Da man danach auch einen Verweis auf den Wiedergabekanal (ChannelId) hat, kann mit die Befehle von oben zum Anhalten,Fortsetzen usw. verwenden.

Audio CDs abspielen[Bearbeiten]

Die Wiedergabe von Audio Cds ähnelt die Wiedergabe von "normaler" Musik:

ChannelId=PlayCdTrack(LiedNr[,Modus])

LiedNr und ChannelId sollten eigentlich klar sein. Für die Variable Modus gibt es folgende Möglichkeiten:
1 - nur diesen Track einmal abspielen (Standard)
2 - nur diesen Track ständig spielen
3 - bis CD-Ende abspielen

Erweiterte Musikbefehle[Bearbeiten]

Mit Hilfe der erweiterten Musikbefehle hat man die Möglichkeit, auf Parameter des Sounds Einfluss zu nehmen. Dabei kann man zwischen 2 Arten unterscheiden: Ändern der Parameter vor der Wiedergabe und Verändern von Parametern während der Wiedergabe.

Vor der Wiedergabe[Bearbeiten]

Alle nachfolgenden Befehle können erst verwendet werden, wenn ein Sound erfolgreich geladen wurde. (siehe oben) Als Variable für die Id wird in diesen Beispielen immer "SoundId" verwendet.

Ändern der Lautstärke:

SoundVolume SoundId,Volume#

In Volume# gibt man die Lautstärke eines Sounds an. Die möglichen Werte gehen von 0(still)-1(laut)

Ändern der Balance:

SoundPan SoundId,Balance#

In Balance# gibt man die Ausrichtung (Balance) eines Sounds an. Die möglichen Werte gehen von -1(ganz links) über 0(mitte) bis 1(ganz rechts).

Ändern der Sample-Frequenz:

SoundPitch SoundId,Frequenz

Mit Frequenz kann man die Wiedergabegeschwindikeit festlegen. Ist sie kleiner als die Orginalgeschwindigkeit klingt der Sound tiefer. Ist sie größer klingt er höher. Damit kann man einen coolen Efekt für eine gruselige Hintergrundmusik erschaffen: Man nimmt irgendeinen Sound (evt. Stimmen) und spielt den ganz langsam ab.

Einen Sound in die Dauerwiedergabe schalten:

LoopSound SoundId

Wenn man danach den Sound abspielt, wird er immer wiederholt.

Während der Wiedergabe[Bearbeiten]

Alle nachfolgenden Befehle können erst verwendet werden, wenn die Wiedergabe gestartet ist. Viele Befehle ähneln den Befehlen von oben. Jedoch sind sie universeller, da man während der Wiedergabe laufend etwas verändern kann. Als Variable für die Id des Abspielkanals (s.oben) wird in diesen Beispielen immer "ChannelId" verwendet.

Ändern der Lautstärke:

ChannelVolume ChannelId,Volume#

In Volume# gibt man die Lautstärke eines Sounds an. Die möglichen Werte gehen von 0 (still) bis 1 (laut)

Ändern der Balance:

ChannelPan ChannelId,Balance#

In Balance# gibt man die Ausrichtung (Balance) eines Sounds an. Die möglichen Werte gehen von -1 (ganz links) über 0 (mittig) bis 1 (ganz rechts).

Ändern der Sample-Frequenz:

ChannelPitch ChannelId,Frequenz

Mit Frequenz kann man die Wiedergabegeschwindikeit festlegen. Ist sie kleiner als die Orginalgeschwindigkeit, klingt der Sound tiefer. Ist sie größer, klingt er höher. Dieser Befehl funktioniert nicht bei der Wiedergabe von CDs.

Feststellen ob eine Wiedergabe (noch) läuft:

ergebnis=ChannelPlaying (ChannelId)

Ergebnis ist entweder 0 (keine Wiedergabe) oder 1 (Wiedergabe läuft). Dieser Befehl funktioniert nicht bei der Wiedergabe von CDs.