AGB  ·  Datenschutz  ·  Impressum  







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

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 4 von 6   « Erste     234 56   
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, 187x 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 igel457
igel457

 
FreePascal / Lazarus
 
#31
  Alt 18. Apr 2009, 15:42
Das Memoryleak ist mir bekannt - ich habe aber noch nicht aktiv danach gesucht. Liegt vermutlich irgendwo in Acinerella. Ein Rauschen kann ich nicht bestätigen - nur, dass die Wiedergabe übersteuert (bei der letzten Version konnte man nicht so laut Reglen)
Andreas
  Mit Zitat antworten Zitat
TurboMartin

 
Turbo Delphi für Win32
 
#32
  Alt 18. Apr 2009, 16:05
Ich habs gerade erst gesehen, super Arbeit die Du da leistest.

Zitat von mleyen:
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.
Ich kann das ganze nur bestätigen, dass beginnt bei mir bei 4db schwach bei tiefen Tönen, ab 5db hört man es schon deutlich raus, da es schon bei mittleren Tönen beginnt. Mein Test-OS ist Win7
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#33
  Alt 18. Apr 2009, 16:10
Zitat von TurboMartin:
Ich habs gerade erst gesehen, super Arbeit die Du da leistest.
Danke!

Zitat von TurboMartin:
Ich kann das ganze nur bestätigen, dass beginnt bei mir bei 4db schwach bei tiefen Tönen, ab 5db hört man es schon deutlich raus, da es schon bei mittleren Tönen beginnt. Mein Test-OS ist Win7
Wie gesagt - das Audiosignal ist übersteuert. Wenn die Lautstärkeregelung bei 0dB ist, kommt das Signal unverändert an die Soundkarte. Bei höheren Werten wird das Signal verstärkt - jedoch ist der Pegel begrenzt. Siehe auch: http://de.wikipedia.org/wiki/%C3%9Cbersteuern_(Signalverarbeitung). Ich werde wie in VLC noch einen Limiter-Filter einbauen, der das Audiosignal nur an leisen Stellen verstärkt.
Andreas
  Mit Zitat antworten Zitat
TurboMartin

 
Turbo Delphi für Win32
 
#34
  Alt 18. Apr 2009, 16:16
Ich hab grad och was entdeckt, wenn auch nicht so wichtig.

Wenn ich bei deinem Beispiel etwas wiedergebe und gleichzeitig im WMP12, und die beiden Programme nebeneinander in der Taskbar liegen, wenn man dann mit der Maus immer zwischen den Einträten bewegt, kommt ein knacken aus den Lautsprechern
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#35
  Alt 18. Apr 2009, 16:29
Kann gut sein - Hängt mit der Kernelauslastung zusammen. Da unter Windows >= Vista die Audiodaten sowieso erstmal im Kernel gemixt werden und keine Soundhardwareunterstützung mehr vorliegt, ist das Ganze sowieso schlimmer. Du kann nur mal versuchen die soft_oal.dll zu löschen. Dann wird WaveOut und nicht OpenAL (DirectSound) verwendet.
Andreas
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#36
  Alt 20. Apr 2009, 16:50
Hallo,

irgendwie ist das nich wirklich sinnvoll mit mehreren TAuPlayern. Die Player brauchen so lange zum Laden, dass die Sounds teilweise nicht mal mehr abgespielt werden (bei sehr kurzen Sounds). Zudem kommt es manchmal dazu, dass sich das Programm aufhängt, was allerdings auch an meinem Code liegen kann.
Das Problem ist, dass ich das ganze für ein Billardspiel brauche, bei dem nun gerade der Zusammenstoß zweier Kugeln akustisch dargestellt werden soll, also ein kurzer Klicksound.
Wie könnte ich den Umweg über den TAuPlayer vermeiden, und das ganze "direkt" angehen?

Habe mal meinen stümperhaften Versuch angehängt.
Angehängte Dateien
Dateityp: 7z soundtest_137.7z (1,08 MB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#37
  Alt 20. Apr 2009, 17:16
Wie gesagt - für kurze Sounds ist der TAuPlayer nicht geeignet - dafür wird es Später ein extra Sound Objekt geben.

EDIT: Ich kann deinen Sound auch mit anderen Playern nicht richtig abspielen. MP3 ist für Sounds auch nicht richtig geeignet.
Andreas
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#38
  Alt 20. Apr 2009, 17:36
Zitat von igel457:
EDIT: Ich kann deinen Sound auch mit anderen Playern nicht richtig abspielen. MP3 ist für Sounds auch nicht richtig geeignet.
Also mit Foobar2000 lässt sich der Sound abspielen.
Wie auch immer, ich werde dann wohl erstmal den hässlichen Weg über PlaySound gehen

Trotzdem Danke und viel Erfolg mit deinem Projekt
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#39
  Alt 20. Apr 2009, 17:38
Ich höre Sound mit Foobar2000 nicht - damit habe ich es ja getestet.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#40
  Alt 26. Apr 2009, 16:32
Ich habe eine neue Version hochgeladen. Geändert habe ich folgendes:

Changelog:
- Synchronisierung der Visualisierung mit der Soundkarte
- Hinzufügen des "Analyzer"-Klassenkonstrukts
- Hinzufügen von zwei neuen Events zur "TAuPlayer" Klasse (OnStateChange und OnStop)
- Hinzufügen einer Playlist zur Demo
- Hinzufügen von zwei neuen Visualisierungen zur Demo (umschalten durch klicken auf die Visualisierung)

Bekannte "Bugs":
- Memoryleaks in Acinerella (werden beim Beenden angezeigt)
- Probleme mit sehr kurzen Dateien
- Das Demoprogramm für Lazarus hat noch keine Funktionalität!

Wie immer bin ich gespannt auf euer Feedback, Downloads und aktualisierten Screenshot gibt es im ersten Post,
Andreas
Andreas
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf