AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Preview: Audorra Digital Audio Library (23.08.09)
Thema durchsuchen
Ansicht
Themen-Optionen

Preview: Audorra Digital Audio Library (23.08.09)

Ein Thema von igel457 · begonnen am 20. Mär 2009 · letzter Beitrag vom 7. Feb 2010
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von igel457
igel457
Registriert seit: 31. Aug 2005
Audorra - eine OpenSource Audiobibliothek für Spiele

Was ist das, bzw. was wird es werden?
Audorra ist eine Cross Plattform Audiobibliothek, die es ermöglicht Musik und Soundeffekte in Spielen (oder anderen Audio-Anwendungen) wiederzugeben. Dabei liegt volle Unterstützung für 3D-Surround Sound und Positionierung von Audioquellen im 3D-Raum vor. Audorra ist modular aufgebaut: Sowohl die Ausgabebibliothek ("driver", also z.B. WaveOut, DirectSound oder OpenAL) als auch die Decoder können über ein Pluginsystem statisch oder dynamisch gelinkt werden.

Warum dieses Projekt?
Audorra soll als Ergänzung zu meiner 2D-Grafikbibliothek Andorra und zu meiner Medienbibliothek Acinerella gesehen werden. Außerdem ist für Pascal abgesehen von ACS (welches keinen 3D Sound unterstützt) keine OpenSource Audiobibliothek vorhanden, oftmals wird FMOD oder die BASS verwendet - ein Misstand, der schleunigst behoben werden sollte.

Wie weit ist es?
Tja, da liegt der Haken bei der ganzen Sache: Das Projekt fliegt in seinem jetzigen Status schon seit gut zwei/drei Monaten auf meiner Platte rum. Jedoch habe ich momentan Aufgrund anderer Aktivitäten keine Zeit daran (und auch an Andorra) großartig weiter zu entwickeln. Das wird sich erst in den Sommerferien (hoffentlich) wieder ändern.
Um trotzdem meine bisherige Arbeit zu präsentieren (Wiedergabe von Musik mittels funktionierendem Filtergraphsystem über Waveout unter Verwendung eines nativen WAV-"Decoders" und Acinerella), habe ich mich entschlossen diesen Thread hier zu öffnen und das Projekt mit einem kleinen Demoprogramm hochzuladen.

Unterstützte Audioformate:
  • Nativ:
    • PCM WAVE
    Acinerella:
    • Audio: AIFF, MP3, FLAC, MPC, OGG VORBIS
      Video-Container: AVI, MPEG (VOB), FLV, OGG

Systemanforderungen:
Prozessor: Erfolgreich getestet auf einem 900Mhz Pentium III,
Speicher: braucht ca. 1MB RAM pro Stream.
Betriebsystem: Windows 2000 oder höher, Linux (MacOS sollte auch funktionieren - mangels MacOS aber noch nicht getestet)
IDE: Delphi >=6 oder Lazarus

Lizenz:
Das ganze Projekt ist unter der MPL lizenziert. Die GPL oder die LGPL dürfen aber ebenfalls verwendet werden.


Es wäre schön wenn jemand das angehängte Testprogramm (im Ordner "bin") testen könnte. Wenn ihr irgendwo noch einen uralt PC stehen habt, dann würde mich interessieren, ob es auch darauf läuft, besonders wenn die CPU-Auslastung auf 100% getrieben wird.

Update 1 - 21.03.09: Probleme bei der Wiedergabe unter Windows Vista behoben
Update 2 - 18.04.09: OpenAL und Linux Unterstützung hinzugefügt, neue Version von Acinerella
Update 3 - 26.04.09: Verbesserung der Demo, hinzufügen von "Analyzern" und Events in TAuPlayer
Update 4 - 23.08.09: Viele kleine Verbesserungen

Viel Spaß damit, ich bin auf eure Reaktionen gespannt,
Andreas
Miniaturansicht angehängter Grafiken
simple_demo2_171.png  
Angehängte Dateien
Dateityp: zip audorra_996.zip (2,12 MB, 189x aufgerufen)
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
 
Benutzerbild von Mithrandir
Mithrandir
 
#21
  Alt 21. Mär 2009, 16:37
Ah ok,

Sowas wollte ich hören.

Dann viel Erfolg, bist aufm guten Weg.
米斯蘭迪爾
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#22
  Alt 21. Mär 2009, 17:23
Was spricht gegen ACS?
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#23
  Alt 21. Mär 2009, 17:25
Siehe erster Post: keine 3D-Sound und Surround Unterstüzung.

Außerdem habe ich vor einige Teile aus ACS zu verwenden (auch wenn der Quellcode größtenteils nicht oder nur äußerst mau kommentiert ist und zudem teilweise seltsam verschachtelt (inc-Dateien etc.)).
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

 
Delphi 7 Personal
 
#24
  Alt 26. Mär 2009, 17:23
Wunderschön!
Demo funktiniert einwandfrei, das selbst Benutzen ist ein bisschen schwierig, weil der Beispielcode nicht kommentiert ist, aber das meiste erklärt sich ja, vielleicht könntest Du trotzdem ein kleines Tutorial für die Initialisation schreiben wenn du ein bisschen Zeit findest.

Coole Sache, auf sowas hat die Welt gewartet !

Gruß Spiderpig
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#25
  Alt 26. Mär 2009, 18:38
Das meiste ist noch nicht kommentiert, da ich mit der Schnittstellenimplementierung teilweise nicht so zufrieden bin - die wird sich also noch ändern. Bevor es also noch kein offizielles Release gibt, wird es auch keine Dokumentation geben.

Ich habe übrigens Acinerella mit FFMpeg 0.5 kompiliert und kann jetzt auch (wieder) WMA, WMV und AC3 problemlos wiedergeben. Außerdem baue ich das Filtergraphsystem auf 32-Fließkommazahlen um, da die dauernde Konvertierung innerhalb der einzelnen Filtergraphblöcke sowohl Leistung als auch Qualität frisst.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

 
Delphi 7 Personal
 
#26
  Alt 26. Mär 2009, 20:08
Ok, dann warte ich geduldig
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#27
  Alt 18. Apr 2009, 01:59
Hi Igel,

ich könnte deine Audiobibliothek gerade wirklich gebrauchen! Ich hatte zuerst vor, die Bass.dll zu benutzen, mit der ich schon mal vor längerer Zeit was gemacht hatte, habe dann aber gemerkt, dass ich sie wegen der Lizenz abhaken kann.

Mir ist klar dass dein Projekt noch am Anfang steht, meine Anforderungen sind jedoch nicht sehr groß. Eigentlich geht es mir nur darum, mehrere Sounds gleichzeitig abspielen zu können. Leider werde ich aus den Sourcen nicht ganz schlau. TAuPlayer kann ja anscheinend immer nur einen Sound abspielen, wenn ich das richtig sehe. Muss ich dann für jeden Sound einen einzelnen TAuPlayer erzeugen, oder gibt es da eine andere Möglichkeit?

Bei der Bass.dll kann man mehrere Channels erzeugen, um mehrere Streams gleichzeitig abzuspielen. Was ist das Äquivalent dazu bei Audorra?

Vielen Dank schon mal
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#28
  Alt 18. Apr 2009, 09:56
Hallo, du hast glück, dass ich gestern ein bisschen an Audorra gebastelt habe - dazu nachher mehr.

Momentan existiert nur eine Klasse zum Abspielen von Streams (TAuPlayer) - davon kannst du mehrere erzeugen. Einzelne Sounds werden noch nicht - so doof das klingt - von der Anwendungs-Abstrahierungsebene unterstützt.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#29
  Alt 18. Apr 2009, 14:14
Also, ich habe mal eine neue Version hochgeladen (siehe erster Post) - neu daran ist:

Changelog:
- 32-Bit Genauigkeit im Filtergraphsystem
- OpenAL Unterstützung (eine OpenAL Bibliothek für Windows liegt bei)
- Verwendung verschiedener Devices in die Demo eingebaut
- Läuft mit Linux
- Verwendet Acinerella 1.2

Im Anhang ist ein kleines Bild von Audorra unter Linux. Wenn ihr die Demo(s) mit "WaveOut" verwenden wollt, löscht einfach die "soft_oal.dll" aus dem "bin" Ordner.

Um die Bibliothek mit Linux zu verwenden, muss auch dort OpenAL installiert sein (in /lib/ oder /usr/lib/ sollte eine "libopenal.so" liegen - wenn nur eine "libopenal-1.so" oder so ähnlich vorhanden ist, mit ln eine Verknüfung darauf erstellen). Acinerella lässt sich einfach kompilieren, sobald FFMpeg unter Linux installiert ist.

Wie immer bin ich auf eure Kommentare gespannt,
Andreas
Miniaturansicht angehängter Grafiken
audorra_demo_265.png  
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

 
FreePascal / Lazarus
 
#30
  Alt 18. Apr 2009, 15:23
Mal gut das du den ReportMemoryLeaksOnShutdown anhast
Code:
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The sizes of unexpected leaked medium and large blocks are: 9260


---------------------------
OK  
---------------------------
Und dabei hab ich nur die bin gestartet -> einen Track geöffnet -> Programm geschlossen.
Du findest wahrscheinlich schneller das fehlende free als ich.

Edit:
Hmm wenn ich jetzt während des Liedes lauter stelle kommt bei +5db bis +10db ein immer lauteres rauschen.
Das war in deiner alten Version nicht so.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


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 00:55 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