loopsound - kein echter loop

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Guru Sebastian

Betreff: loopsound - kein echter loop

BeitragSa, Okt 01, 2005 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi. Ich habe eine mp3 erstellt. Sie ist ein echter Loop, d. h. in Cubase hört man vom Ende hin zum Anfang keine Pause.
Allerdings ist das nicht so in BB+. Wenn die Datei geloopt wird, dann hört man leider ziemlich deutlich eine Pause, was wirklich nicht sein soll. Wie kann ich das umgehen?

Vielen Dank für eure Mühe!
Alles Gute,
Sebastian
 

#Reaper

Newsposter

BeitragSo, Okt 02, 2005 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich würde es mal mit ChannelPlaying() versuchen. Eine IF abfrage machen, und wenn ChannelPlaying() 0 zurück gibt, wird der sound einfach wieder mit PlaySound() Abgespielt... Very Happy


Btw: ich weis jetzt nicht, ob es die Befehle auch in B+ gibt Wink
(müsste es doch geben, kenne mich aber damit nochnicht so aus Wink )


Mfg
#Reaper
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Guru Sebastian

BeitragSo, Okt 02, 2005 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, das Ergebnis ist das selbe. Das Programm stellt die Musik dann auch mit einer Pause dar.


BlitzBasic: [AUSKLAPPEN]

; ORIGINALCODE
Graphics 640,480,0,2
musik = LoadSound (\"./dvdtitle.mp3\")


LoopSound musik
PlaySound musik
WaitKey()
End


;MODIFIZIERTER CODE

Graphics 640,480,0,2

musik = LoadSound (\"./dvdtitle.mp3\")

channel =PlaySound (musik)
Repeat

If ChannelPlaying (channel) = 0 Then
channel = PlaySound (musik)
EndIf
Until KeyHit (1)

End


In beiden Fällen das selbe Problem.
Was ist zu tun ?
Alles Gute,
Sebastian

simi

BeitragSo, Okt 02, 2005 10:42
Antworten mit Zitat
Benutzer-Profile anzeigen
also, ich würde das mit einem timer machen:

wenn du den sound startest, speicherst du die zeit (millisecs())... Jetzt musst du wissen, wie lange der sound ist... und wenn dann z.B 1 Minute vergangen ist, startet der sound neu..... Wink So solltest du es perfekt hinbringen, ist einfach ein bisschen kompliziert Smile

cu simi

Guru Sebastian

BeitragSo, Okt 02, 2005 11:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, klar. Mit dem Millisecs() zählen klappt es natürlich. Aber wozu dann noch der loopsound befehl, wenn der gar nicht klappt ?
Gibt es denn keine elegantere Lösung ?

Mein jetziger Code :
BlitzBasic: [AUSKLAPPEN]

Graphics 640,480,0,2

time1 = MilliSecs()
time2 = 4200
musik = LoadSound (\"./dvdtitle.mp3\")
PlaySound musik
playing = 1
Repeat
time1 = MilliSecs()
If playing = 1
time2 = MilliSecs() +42700
playing = 0
EndIf

If time1 = time2 Then
PlaySound (musik)
playing = 1
EndIf
Until KeyHit (1)

End

Alles Gute,
Sebastian

BtbN

BeitragSo, Okt 02, 2005 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde sage, es liegt schlicht daran, das der Sound am Ende/Anfang ne kleine Pause hat, diese werden addiert, und dann kommt diese lücke zusatnde!
War bei mir auch so!
Im MediaPlayer/WinAmp fällt das nicht auf, da diese Tote bereiche am Anfang/Ende schlicht wegschneiden.
Ich hab den Sound dann im Nero-Sound-Editor zurechtgeschnitten, danach gings!

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Okt 02, 2005 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Zuschneiden wäre die einfache Lösung!

deinen Code mit Millisecs hab ich mal in eine Function gepackt...BlitzBasic: [AUSKLAPPEN]
Graphics 800 ,600,16,2
SetBuffer BackBuffer ()
Global musik_timer_1 ; Zeit
Global musik_PlayStatus_1 = 1 ; Ein/Aus Schalter
Global musik_1 = LoadSound (\"./dvdtitle.mp3\")

While Not KeyDown (1)
LoopMusik_1 ()
;...
Flip
Cls
Wend
End

Function LoopMusik_1 ()
If musik_PlayStatus_1 Then
If musik_timer_1 < MilliSecs () Then
PlaySound (musik_1)
musik_timer_1 = MilliSecs () + 4200
End If
End If
End Function

und etwas eleganter geschrieben!
nicht5 getestet aber sollte gehen!
den EinAus Schalter kannste natürlich noch weglassen
[BB2D | BB3D | BB+]

x-pressive

BeitragMo, Okt 03, 2005 7:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso sagt ihm niemand, daß Blitz viele MP3-Formate nicht korrekt loopen kann? Wenn Blitz ein MP3-File unsauber loopt, einfach mit Goldwave oder einem anderen Editor als .OGG abspeichern. Ist übrigens auch so ein sehr gutes Format in Bezug auf Dateigröße und Qualität. Dann funktioniert das einwandfrei mit LoopSound() -ohne, daß man wieder mal alles verkomplizieren muss Very Happy
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

BlitzBasic303

Betreff: RE:

BeitragMo, Okt 03, 2005 8:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach den loop in Wav. manche mp3 exporter machen automatisch eine Pause an den Anfang und das Ende.(War bei mir auch so)

Mfg

BlitzBasic303

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group