AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte The Old-Style-Music-PLAY-Function
Thema durchsuchen
Ansicht
Themen-Optionen

The Old-Style-Music-PLAY-Function

Ein Thema von himitsu · begonnen am 11. Nov 2009 · letzter Beitrag vom 19. Nov 2009
 
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#1

The Old-Style-Music-PLAY-Function

  Alt 11. Nov 2009, 10:05
Hiiiiihooo,

wer von euch kennt denn noch das gute alte DOS und vorallem das wunderschöne QBasic?

Okey, Okey, jetzt nur nicht so stürmisch die Hände heben.


Nja, in Zeiten, wo es mit Delphi langsam zu Ende geht, da muß man sich ja Alternativen suchen *hust*.




Oder man holt sich die Funktionen von dort in die Moderne.

Hier hätten wir also eine nette Sound-(Play)-Funktion:
Es geht eigentlich recht einfach und jeder, der Musik hatte und mit Noten umgehn kann, kommt vermutlich damit zurecht ... ansonsten kann man ja auch einfach so damit rumspielen.
Delphi-Quellcode:
// das Nibbles-Startlied
Play('T200o3L8CDEDCDL4ECC');

// und eine einfache Tonleiter (klettert mir bloß nicht zu hoch, es geht tief runter)
Play('MS L8 o1CDEFGABH o2CDEFGABH o3CDEFGABH o4CDEFGABH o5CDEFGABH');
Gut, es ist jetzt vielleicht nicht gerade eine super High-Tech-Funktion,
aber vorallem Anfänger sollten damit sehr leicht ein bissl Ton in ihre Spiele/Programme reinbekommen können.


Der Befehlssatz ist auch recht übersichtlich.
Und selbst wenn man nicht gut komponieren kann,
dann sollte es nicht schwer sein sich was aus irgendeinem Notenblatt abzuschreiben.
Code:
Oktaven- and Ton-Befehle:
  Ox        setzt die Oktave (0 - 8 : Standard = 4)
                0 = Kontra-Oktave
                1 = Große Oktave
                2 = Kleine Oktave
                3 = Eingestrichene Oktave
                8 = Sechsgestrichene Oktave
  < oder >  setzt die aktuelle Oktave um 1 herab oder herauf
  A - H     spielt die angegebene Note in der aktuellen Oktave
  Nx        spielt die angegebene Note im gesamten Oktavenraum
                0=O0C  4=O0G  7=O0H  56=O7C  63=O7H
  Xx        spielt die angegebene Frequenz (37 - 32767)

Dauer- und Tempo-Befehle:
  Lx        Setzt die Länge der Noten (1 - 64 : Standard = 4)
                1 = ganze Note
                2 = halbe Note
                64 = 64-tel Note
  Mx        setzt die musikalische Vortragsanweisung auf Legato (ML),
                Normal (MN : Standard) oder Staccato (MS)
  Px        definiert eine Pause (siehe Lx)
  Tx        setzt das Tempo auf viertel Noten pro Minute (32 - 255 : Standard = 120)

Abspiel-Modus:
  Mx        spielt die Musik im Vordergrund (MF = synchron : Standard)
                oder Hintergrund (MB = asynchron) ab

Zusatzbefehle:
  # or +     setzt die vorhergehende Note um einen halben Ton herauf
  -          setzt die vorhergehende Note um einen halben Ton herab
  .         spielt die vorhergehende Note um 3/2 (1.5x) länger, als angegeben
Hier ist also praktisch alles drinnen, was QBasic auch schon konnte.

OK, der Background-Modus ist (noch) nicht integriert,
aber mal sehn, vielleicht gibt es irgendwann auch 'ne Version, welche über die Soundkarte läuft.


[edit] der Befehl X wurde noch schnell eingefügt (gibt es zwar in QBasic nicht, aber kann bestimmt spaßig sein)

[edit2] Demo hinzugefügt
Angehängte Dateien
Dateityp: dpr playproject_341.dpr (5,9 KB, 50x aufgerufen)
Dateityp: exe playproject_856.exe (43,0 KB, 66x aufgerufen)
Dateityp: exe demo_459.exe (20,0 KB, 70x aufgerufen)
Dateityp: zip play_106.zip (62,1 KB, 58x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz