The QBasic / QB64 Discussion Forum      Other Subforums, Links and Downloads
 
Respond to this messageReturn to Index
Original Message
  • musikstückchen
    • Anonymous (no login)
      Posted May 8, 2011 4:37 AM

      '***************************************************************************
      ' MUSIK.BAS = Abspielen diverser Songs u.Soundeffekte mit PLAY und SOUND
      ' =========
      ' Dieses QBasic-Programm laesst diverse Musikstuecke und Soundeffekte
      ' ueber den PC-Speaker erschallen. Mit folgenden PLAY-Strings kann man
      ' zwischen Vordergrund- und Hintergrundmusik umschalten:
      '
      ' PLAY "MF..." = Sound wird im Vordergrund gespielt (das Programm wartet
      ' bis die Musik komplett abgespilet ist)
      ' PLAY "MB..." = bewirkt Spielen im Hintergrund (Background) ohne Warten
      '
      '
      ' \ (c) Thomas Antoni, 2.6.99 - 27.7.05
      ' \ /\ Mailto:thomas@antonis.de
      ' ( ) http://www.antonis.de
      ' .( o ).
      ' ----==== Hottest QBasic Stuff on Earth !!! ====----
      '
      '***************************************************************************
      '
      DECLARE SUB AutoRennen ()
      DECLARE SUB Heller ()
      '
      DO
      CLS
      PRINT "---------========= Waehle das Musikstueck ==========----------"
      PRINT "1 = lange Fanfare aus Nibbles"
      PRINT "2 = kurze Fanfare aus Nibbles"
      PRINT "3 = kurzer Jubel aus Nibbles"
      PRINT "4 = Sterbe-Seufzer/Furz aus Nibbles"
      PRINT "5 = Alle meine Entchen"
      PRINT "6 = Big Ben Gongschlag I"
      PRINT "7 = Big Ben Gongschlag II"
      PRINT "8 = Polizeisirene"
      PRINT "9 = Autorennen"
      PRINT "a = Mini-Sirene, ideal als Ende-Sound"
      PRINT "b = Ein Heller und ein Batzen (Volkslied)"
      PRINT
      PRINT "Esc= Beenden"

      DO
      taste$ = INKEY$
      LOOP WHILE taste$ = ""

      SELECT CASE taste$
      CASE "1": PLAY "MFT160O1L8CDEDCDL4ECC"
      CASE "2": PLAY "MFT160O1>L20CDEDCDL10ECC"
      CASE "3": PLAY "MFO0L16>CCCE"
      CASE "4": PLAY "MFO0L32EFGEFDC"
      CASE "5": PLAY "MFT160O3L8cdefL4ggL8aaaaL2gL8aaaaL2gL8ffffL4eeL8ggggL4c"
      CASE "6": PLAY "MFMLT160O1L2cdecP2fedc"
      CASE "7": PLAY "MFMLT160O1L2gdecP2fedc"
      CASE "8"
      ton = 780
      bereich = 650
      FOR zaehler1 = 0 TO 1
      FOR zaehler2 = bereich TO -bereich STEP -4
      SOUND ton - ABS(zaehler2), .3
      zaehler2 = zaehler2 - 2 / bereich
      NEXT zaehler2
      NEXT zaehler1
      CASE "9": CALL AutoRennen
      CASE "a"
      FOR C% = 1 TO 5
      FOR i% = 550 TO 660 STEP 5
      SOUND i%, i% / 4000
      NEXT
      NEXT
      CASE "b": CALL Heller
      CASE CHR$(27): END 'Beenden mit Esc-Taste
      END SELECT
      LOOP
      END

      '
      SUB AutoRennen
      '****************************************************************************
      ' AutoRennen = QBasic Subroutine, erzeugt Motorengeraeusch und Cockpit-Anzeige
      ' ===========================================================================
      ' Verwendete Befehle: VIEW, SOUND
      '
      ' (c) Thomas Antoni, 31.08.99 (nach einem Programmvorschlag von H.Schumann
      '*****************************************************************************

      SCREEN 11 'VGA 640*480*2

      '--- Tachoskala ---------------------------------------
      FOR i% = 0 TO 4 'Anzeige bis 200 kmh in 50-kmh- Schritten
      LOCATE 18, i% * 15 + 1
      PRINT i% * 50;
      NEXT i%
      PRINT SPC(8); "kmh" '8 Blanks und kmh anzeigen

      '--- G„nge 1 bis 5 durchschalten ----------------------
      FOR gang% = 1 TO 5

      '--- Beschleunigen ------------------------------------
      FOR upm% = 40 TO 90
      frequenz% = upm% + gang% * 20
      SOUND frequenz% + 2, .5
      SOUND frequenz% - 2, .5

      '--- Geschwindigkeit als Balken anzeigen --------------
      LINE (10, 300)-(tacho% + upm% * 2, 310), , BF
      LOCATE 22, 26
      PRINT gang%; ". Gang :"; frequenz% * 40; "UpM"
      NEXT upm%
      tacho% = tacho% + upm%
      SOUND frequenz% - 10, 2
      NEXT gang%
      LOCATE 28, 5: PRINT "Anhalten mit beliebiger Taste"
      DO
      SOUND frequenz% + 2, .5
      SOUND frequenz% - 2, .5
      LOOP UNTIL INKEY$ <> ""

      '--- Bremsen und Anhalten -----------------------------
      VIEW (10, 300)-(550, 400) 'Bildschirmausschnitt fr kmh-Balken definieren
      FOR i% = 55 TO 0 STEP -1
      SOUND 5000, .5
      SOUND i% * 10 + 150, .2
      CLS 'Bildschirmausschnitt fr kmh-Balken l”schen
      LINE (0, 0)-(i% * 10, 10), , BF 'neuer kmh-Balken
      SOUND 500, .2
      LOCATE 22, 26
      gang% = 0
      PRINT gang%; ". Gang :"; i% * 100; " UpM"
      NEXT i%
      '
      '--- Beenden-Dialog -----------------------------------
      LOCATE 28, 5: PRINT "Beenden mit beliebiger Taste"
      DO: LOOP UNTIL INKEY$ <> ""
      SCREEN 0
      CLS
      END SUB

      '
      SUB Heller
      '****************************************************************************
      ' Heller = Subroutine, spielt das Volkslied "Ein Heller und ein Batzen" ab
      ' ======
      ' Verwendete Befehle: Play
      '
      ' (c) Thomas Antoni, 4.5.05 (nach einem Programmvorschlag von H.Mathias
      '*****************************************************************************
      A$ = "O2 T140 L4 CCGEC<B>GG P8 L8 G L2 G P16 L8 AGF L4 EAG"
      ' "Ein Heller und ein Batzen, die waren beide mein"
      B$ = "EFA>CC L2 C L4 <G>C L2 <B P16 L8 AGF"
      ' "Der Heller ward zu Wasser, der Batzen ward zu Wein"
      C$ = "L4 EAG"
      ' "ja Wein"
      D$ = "L2 E P4"
      ' Pause bis zum Refrain
      E$ = "L2 G L4 AGE. L8E L4 E P4 L2 >C L4 DC<A. L8 A L4 A P8. L8 >C"
      E$ = E$ + "L4 <B. L8 G L4 >E. L8 D"
      ' Refrain: "Heidi heido heida, heidi heido heida, heido heido hei-"
      F$ = "L8 C. L16 C L8 <B AGFED"
      ' da haha haha hahaha"
      G$ = "L2 C"
      ' "da"
      PLAY A$ + B$ + C$ + B$ + D$ 'Alles in richtiger Reihenfolge...
      PLAY E$ + F$ + E$ + G$ '... und mit Wiederholungen abspielen
      END SUB

    Login Status
  • You are not logged in
    • Login
      Password
       

      Optional
      Provides additional benefits such as notifications, signatures, and user authentication.


      Create Account
    Your Name
    Your Email
    (Optional)
    Message Title
    Message Text
    Options Also send responses to my email address
          


    Newbies usually go to www.qbasic.com and click on The QBasic Forum
    Forum regulars have their own ways, which include The QBasic Community Forums