Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 18.02.2007, 00:16 Titel: Fragen zu fmod |
|
|
Hallo, ich arbeite mit Fmod und habe 2 Fragen:
1. Wenn ich einen sample in einer Do:Loop schleife abspielen will, wird der sample erst wiederholt, wenn er vorher korrekt zuende abgespielt wurde. Wie kann ich ein "überlappen" ermöglichen ?
2. Wenn ich im hintergrund einen einen sample im loop laufen lasse und noch einen anderen sample einzeln gleizeitig abspielen lassen möchte, wie kann ich die den unterschiedlichen samples UNTERSCHIEDLICHE lautstärken zuweisen? Bzw. welche Channles stehen mir zur verfügung ?
Ich bekomme sie immer nur gleichlaut hin.
Ich hoffe hier kann mir jemand helfen, im englischen Forumen antwortet mir keiner  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.02.2007, 00:24 Titel: |
|
|
1: FMOD_FREE oder so ähnlich musst du benutzen, um einen freien kanal asuzuwählen (dafür müssen natürlich genügend kanäle freigeschaltet sein!)
2: dafür habe ich mir folgende Subs geschrieben:
Code: |
Sub PlaySound (FXnum, Panning)
Static ChanCyl As Short 'Nächster Kanal, bitte!
If AudioEnabled=0 Then Exit Sub
If FXvol = 0 Then Exit Sub
'FXvol=16'32
If FXnum < 1 Then Exit Sub
Do
Ready=1
ChanCyl += 1: If ChanCyl > SoundChannels - 1 Then ChanCyl = 1
For C=0 To NumMusicChannels -1
If ChanCyl = FMUSIC_Getrealchannel(MusicHandle,C) Then Ready=0
Next
Loop Until Ready=1
Volume = FXvol
If FXnum = 7 Then Volume = Volume * .6
PlaySample ChanCyl, FXnum, 0, Volume, Panning
End Sub
Sub PlaySample (Channel As Short, Sample As Integer, Freq As Long,Volume As Integer,Panning As Integer)
If AudioEnabled=0 Then Exit Sub
If Channel=(-1) Then Channel=FSOUND_FREE
Chn&=FSOUND_PlaySound (Channel,SoundHandle(Sample))
If Panning>255 Then Panning=255
If Panning<0 Then Panning=0
FSOUND_SetPan Chn&,Panning'*17
'Vol=Volume*4:if Vol>255 then Vol=255
FSOUND_SetVolume Chn&,Volume
If Freq>0 Then FSOUND_SetFrequency Chn&,Freq
Priority=255
If Sample = 10 Then Priority=32
FSOUND_SetPriority Chn&,Priority
End Sub
|
ohne anpassung aus fruit battle übernommen, ich hoffe du findest was passendes  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 18.02.2007, 00:32 Titel: |
|
|
Jojo hat Folgendes geschrieben: | (dafür müssen natürlich genügend kanäle freigeschaltet sein!) |
Wie mach ich sowas? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.02.2007, 00:35 Titel: |
|
|
hast du überhaupt die fmod-hilfedatei?
Code: | FSOUND_Init(44100, SoundChannels, 0) |
SoundChannels gibt den wert der verwendeten kanäle an, am besten irgendwas über 16. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 18.02.2007, 01:03 Titel: |
|
|
Jojo hat Folgendes geschrieben: | hast du überhaupt die fmod-hilfedatei? | ..wenn du das fragst, unterstellst du imho, daß nicht..
..deshalb hier der Link auf FMod-Homepage: http://www.fmod.org
Da Till ja englisch kann, erwähne ich nicht, daß die Hilfedatei in englisch ist  _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 18.02.2007, 10:48 Titel: |
|
|
ytwinky hat Folgendes geschrieben: |
Da Till ja englisch kann, erwähne ich nicht, daß die Hilfedatei in englisch ist  |
Machst du dich hier über meine "schlechten" Englischkenntnisse lustig (bzw. über meine Threads im engilschen Forum) oder wie soll ich das verstehen  |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 18.02.2007, 11:58 Titel: |
|
|
Quatsch, dann hätte ich einen anderen Smilie genommen
Ich wollte nur durchblicken lassen, daß ich im englischen Forum nachgesehen habe,
nicht, um deine Aussage zu überprüfen, sondern, weil ich was verwechselt habe:
FMod und FBMod(oder wie das Programm dieses anderen Forenbetreibers heißt ) [Edit]Es heißt FBSound..
Wenn ich mich über die Englischkenntnisse von Forenbenutzern lustig mache,
dann sieht das anders aus
Nfu
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 19.02.2007, 16:47 Titel: |
|
|
Also ich hab das mit der Lautstärke durch unterschieliche Channels gelöst (und nicht mit einer "komischen und verwirrenden" Sub (sorry^^) wie es mir vorgeschlagen wurde.) Allerdings bekomme ich das mit dem "überlappen" nicht durch channels hin. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.02.2007, 17:11 Titel: |
|
|
Code: |
FSOUND_SetVolume Chn,Volume
|
Was ist daran bitteschön verwirrend? Ich erwarte eigentlich, dass du in der lage bist, das für dich wichite aus der Sub rauszuholen...
voila, direkt aus der hilfe von fmod:
Hilfedatei hat Folgendes geschrieben: |
#define FMOD_CHANNEL_FREE -1
|
Wenn du diese konstante als kanal angibst, wird ein freier kanal gesucht. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 19.02.2007, 19:48 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Code: |
FSOUND_SetVolume Chn,Volume
|
Was ist daran bitteschön verwirrend? Ich erwarte eigentlich, dass du in der lage bist, das für dich wichite aus der Sub rauszuholen...
|
Genau diesen Befehl habe ich auch genommen. Und es tut mir leid das ich durch deine Sub nicht durchgestiegen bin, ich entsculdige mich vielmals
Aber egal, darum geht es mir garnicht mehr, wie erwähnt mein Problem ist ein anderes.....
P.S.: Wegen dem überlappen, da hab ich in der Schleife FB schon mitgeteilt das er sich immer einen freien kanal suchen soll. Es wird trozdem das Soundfile nur einmal abgespielt und erst wiederholt wenn es vorher beendet wurde... |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.02.2007, 20:30 Titel: |
|
|
Naja, meines ist halt eine all-in-one Sub
Hast du auch schon mit
Code: |
SoundChannels = 32
FSOUND_Init(44100, SoundChannels, 0)
|
genügend Kanäle freigeschaltet? Wenn ja, zeig mir mal bitte deinen sourcecode... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 19.02.2007, 21:01 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Naja, meines ist halt eine all-in-one Sub
Hast du auch schon mit
Code: |
SoundChannels = 32
FSOUND_Init(44100, SoundChannels, 0)
|
genügend Kanäle freigeschaltet? Wenn ja, zeig mir mal bitte deinen sourcecode... |
Ja habe ich und auch mit 900 Kanälen geht es nicht.....
hier mein code (nur die schleife, den channelkram habe ich weiter forne im code)
Code: |
1:
zahl=INT (RND*9)
IF zahl=zvorher THEN GOTO 1
CLS
?
?" Druecke ";zahl;"
?
taste=str$(zahl)
zvorher=zahl
Do
SLEEP 1
IF INKEY=taste AND soundan=1 THEN FSOUND_Stream_Play( FSOUND_FREE, testsound ):points=points+1:zahl= INT (RND*9):GOTO 1
IF INKEY=taste THEN points=points+1:zahl= INT (RND*9):GOTO 1
Loop until points=5 OR TIMER>zeit+5
|
Ich hoffe mal auch eine Vernüntige Antwort und nicht nur "wääääh GOTO ist scheiße"  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.02.2007, 21:10 Titel: |
|
|
Schau mal bitte, ob es mit FSOUND_PlaySound funktioniert... Musst dann den Sound als SAMPLE und nicht als STREAM laden. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
masterherpo
Anmeldungsdatum: 22.01.2006 Beiträge: 102
|
Verfasst am: 19.02.2007, 21:49 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Schau mal bitte, ob es mit FSOUND_PlaySound funktioniert... Musst dann den Sound als SAMPLE und nicht als STREAM laden. |
Juhu das klappt
Danke für die Hilfe.
Und die Anmerkung mit GOTO war nicht angreifend für dich gemeint sondern sollte an alle in diesem Formen gehen. Denn kaum postet man was mit GOTO heißt es ja gleich wieder "es ist veraltet" etc... |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 19.02.2007, 22:45 Titel: |
|
|
Goto is cool!
Code: | Goto nextthread
End |
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.02.2007, 22:54 Titel: |
|
|
masterherpo hat Folgendes geschrieben: | Jojo hat Folgendes geschrieben: | Schau mal bitte, ob es mit FSOUND_PlaySound funktioniert... Musst dann den Sound als SAMPLE und nicht als STREAM laden. |
Juhu das klappt
Danke für die Hilfe.
Und die Anmerkung mit GOTO war nicht angreifend für dich gemeint sondern sollte an alle in diesem Formen gehen. Denn kaum postet man was mit GOTO heißt es ja gleich wieder "es ist veraltet" etc... |
oooooooookay, jetzt kümmern wir uns um deinen sourcecode spaß... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 20.02.2007, 15:05 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Goto is cool!
Code: | Goto nextthread
End |
|
#undef goto
#undef gosub _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
|