Beep und die damit unglücklich passierten Musikstücke

Übersicht BlitzBasic DLLs und Userlibs

Neue Antwort erstellen

Xenon

Betreff: Beep und die damit unglücklich passierten Musikstücke

BeitragMi, März 17, 2004 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich weis die Play Funktion lässt sehr viel Verbessern, so dass sie zB nur 1 String braucht und man 5-Zeichen Töne alla "4C#2." übergeben kann, aber für den Anfang reichte das und dann wollt ich schon nimma Smile

Here die Userlib:
Code: [AUSKLAPPEN]
.lib "kernel32.dll"
Beep%(Freq, Duration)


Here der Code:
Code: [AUSKLAPPEN]
Const C = 261
Const D = 293
Const E = 329
Const F = 349
Const G = 391
Const A = 440
Const H = 493


Play("CDEFGGAAAAGAAAAGFFFFEEDDDDC", "444422444414444144442244441", 240) ; Alle meine Entchen
Play("FFGGFDFFGGFD", "444422444422", 240); Ringel, ringel, Reihe
Play("GEEFDDCDEFGGGGEEFDDCEGGCDDDDDEFEEEEEFGGEEFDDCEGGC", "4424424444442442442444414444442444444244244244441", 240) ; Hänschen klein
Play("CFFGAAFGGEFCFFGAAFGGEFCFFGAAFGGEFCFFGAAFGGEF", "44444444442444444444424444444444244444444442", 240) ; Es war eine Mutter
Play("GEFGECDDDECGPPEFGECDDDECPCDDDEFDDEEEFGPPGEFGECDDDEC", "244244444424424424444442444444244444424424424444442", 240) ; Hänsel und Grätel
End

Function Play(tones$, lens$, speed)
   viertelms = 240/speed
   If Len(tones$) <> Len(lens$) Then Return 0
   For i=1 To Len(tones$)
      time = 0
      tone = 0
      Select Mid$(tones$, i, 1)
      Case "A"
         tone = A
      Case "H"
         tone = B
      Case "C"
         tone = C
      Case "D"
         tone = D
      Case "E"
         tone = E
      Case "F"
         tone = F
      Case "G"
         tone = G
      Case "P"
         Delay viertelms
      End Select
      Select Mid$(lens$, i, 1)
      Case "1"
         time = 4*viertelms
      Case "2"
         time = 2*viertelms
      Case "4"
         time = viertelms
      Case "8"
         time = viertelms/2
      Case "3"
         time = viertelms*4/3
      End Select
      If tone <> 0 And time <> 0 Then Beep tone, time
   Next
End Function


Viel Spass, Xenon/Skate

Vertex

BeitragMi, März 17, 2004 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Function Beep(Freq, Duration)
   Freq = 1193180 / Freq
   WritePort $43, 182
   WritePort $42, Freq And $FF
   WritePort $42, (Freq And $FF00)/$100
   Value = ReadPort($61) Or %00000011
   WritePort $61, Value
   Delay Duration
   Value = ReadPort($61) And %11111100
   WritePort $61, Value
End Function


Für die Leute die kein WIn2K oder neuer haben.
Zitat:

.lib "io.dll"
WritePort(Address,Value) : "WritePort"
ReadPort%(Address) : "ReadPort"
vertex.dreamfall.at | GitHub

Artemis

BeitragSa, Feb 05, 2005 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es auch ne Möglichkeit, verschieden hohe Töne zu Produzieren??
Also nicht nur von Code: [AUSKLAPPEN]
C' - H'
sonder auch vonCode: [AUSKLAPPEN]
kleines C - C'''
??
[EDIT]
Wie krieg ich die frequenz für die töne heraus??
[/EDIT]
Dank für Antworten

Vertex

BeitragSo, Feb 06, 2005 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal http://emulazione.multiplayer....4/6581.pdf hier auf Seite 10, da stehen alle Frequenzen.

Du kannst also mit dem Kammerton A mit 461 Hz alle anderen Töne berechnen.

mfg olli
vertex.dreamfall.at | GitHub
 

Hallosager

BeitragMi, Jul 06, 2005 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man Musik(Klingeltöne oder so) machen, ohne irgendwelche Sounddateien mit ins Spiel zu laden?

Artemis

BeitragDo, Jul 07, 2005 8:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja kann man; aber nur wenn man BlitzPlus Blitz3D oder BMax hat.

paul-graf

BeitragDo, Jul 07, 2005 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
geht nicht bei mir kommt: "EXPECTING end-of-file"

Artemis

BeitragFr, Jul 08, 2005 10:44
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst auch die entsprechende decls einrichten
 

RGR

BeitragDi, Jul 26, 2005 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir ist das ganze in 'ner knappen 1/10 bis 1/ 100 Sekunde komplett durchgenudelt.

erst wenn ich dies ändere:
viertelms = 100000/speed
dann ists zeitlich im Rahmen

und die erste Pause PP in Hänsel und Gretel muß vor dem G und nicht nach dem G kommen

Ansonsten : Oh wie schön, mal wieder an längst vergangene Zeiten erinnert zu werden.

Hagbard

BeitragSa, Sep 03, 2005 10:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Wollt nur noch mal was posten:

a = 440 Hz ;ist der Grundton
a * (2^1/12)^x ; x = die Anzahl der Halbtonschritte von a bis zum
; gewollten Ton

Beispiel:
e = 440 Hz * (2^1/12)^7

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group