Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Beta (https://www.delphipraxis.net/147390-audorra-digitale-3d-audiobibliothek-version-0-5-0-beta.html)

igel457 7. Feb 2010 13:47


Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Beta
 
http://audorra.sourceforge.net/images/icon128.png

Audorra - Digitale 3D Audiobibliothek

AKTUELLE VERSION: 0.5.0 BETA

Zum Download der neusten Version: https://sourceforge.net/projects/audorra/files/

Was ist das, bzw. was wird es werden?
Audorra ist eine Cross Plattform Audiobibliothek für Pascal, 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 2D und zu meiner Medienbibliothek Acinerella gesehen werden. Außerdem ist für Pascal abgesehen von ACS (welches keinen 3D Sound unterstützt und dessen Entwicklung anscheinend eingestellt ist) keine OpenSource Audiobibliothek vorhanden, oftmals wird FMOD oder die BASS verwendet - ein Misstand, der schleunigst behoben werden sollte.

Unterstützte Betriebsysteme/Compiler:
-Windows 2000, XP, Vista, 7
-Linux (momentan nur über OpenAL)
-Delphi 7 (?), 2005 (?), Turbo Delphi 2006, 2007 (?), 2009 (?), 2010 (?)
-Freepascal/Lazarus (aktuelle Version)

Features/Todo:
  • Streaming von Audiodaten and die Soundkarte über ein modulares Pluginsystem (fertig)
    • Win32-WaveOut Treiber (fertig)
    • Win32-DirectSound Treiber (fertig)
    • Win32-WASAPI Treiber (Vista, 7) (fertig)
    • OpenAL Treiber (eigentlich fertig, verfügt aber nicht über den benötigten Mehrkanalton)
    • libao Treiber (fertig)
    • PulseAudio Treiber (geplant)
  • Filtergraph-System (fertig)
  • Protokollklassen Pluginsystem (fertig)
    • VCL/LCL TStreamWrapper (fertig)
    • HTTP-Stream Client (verwendet angepasste Version von Synapse) (fertig)
    • CD-Audio (fertig)
  • Visualisierungen
    • FFT-Analyse (fertig)
    • Peak-Meter (fertig)
    • Oszilloskop (fertig)
  • Ansteuern mehrerer Geräte (fertig)
  • Mehrkanalton und High-Definition Audio (24 und 32 Bit) (work in progress)
  • Decodieren verschiedenster Audioformate (fertig)
    • Nativ:
      • PCM WAV (fertig)
      • AIFF (geplant)
    • MPEG123:
      • MP1, MP2, MP3 (fertig)
    • libvorbisfile:
      • OGG Vorbis(fertig)
    • Acinerella:
      • WAV, AIFF, MP1, MP2, MP3, OGG, WMA, FLAC, ACC, AC3, MPC (fertig)
      • Wiedergabe aus Videocontainern (fertig)
  • 3D-Audioausgabe über einen mächtigen aber schnellen Softwarerenderer (work in progress)
    • Einfügen theoretisch unbegrenzt vieler Audioquellen (fertig)
    • Anpassen von Gain (Lautstärke) und Pitch (Wiedergabegeschwindigkeit) (fertig)
    • Automatische Samplerate-Conversion (fertig)
    • Positionsabhängige Ausgabe aus verschiedensten Lautsprecheranordnungen (fertig)
    • Wiedergabe von "Globalen-Sounds"... (fertig)
    • ...und manuelles Mapping der Ausgabelautsprecher (geplant)
    • Einfügen von virtuellen Mauern zur Dämpfung des Audiosignals (geplant)
    • Dopplereffekt/Phasenverschiebung (fertig)
    • Automatische Echoberechnung (geplant)
    • Virtuelle Sensoren (für Gegner-KI etc.) (geplant)

Download:
Binary-Paket mit vorkompilierten Demos und allen (optionalen) DLLs:
https://sourceforge.net/projects/aud...A.zip/download (ca. 3MB)

Source-Paket:
https://sourceforge.net/projects/aud...A.zip/download (ca. 400kb)

Website:
Mehr Infos und aktuelle Neuigkeiten, sowie einen Link auf das SVN-Repository, findet ihr auf der offiziellen Audorra Website:

http://audorra.sourceforge.net/

Um den Sourcecode aus dem SVN-Repository zu compilieren wird zudem eine aktuelle Version der Andorra Commons benötigt aus dessen SVN-Repository benötigt:
http://sourceforge.net/projects/andorracommons/develop

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

Verwendete 3rd-Party Bibliotheken/Header:
OpenAL-Header von Noeska
FFT-Analyse von Nils Haeck
Synapse-Netzwerkbibliothek
DirectX-Header von Clootie

Dokumentation:
Die Dokumentation zu diesem Projekt kann hier gefunden werden:
https://sourceforge.net/apps/mediawi...?title=Audorra
Jeder der im Wiki mithelfen will, benötigt einen SF-Useraccount uns muss sich dann bei mir melden.

Viel Spaß damit, ich bin auf eure Reaktionen gespannt,
Andreas

toms 8. Feb 2010 20:16

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Hallo Andreas

1) Lade ich mit soundlist.exe eine mp3 Datei, erhalte diese Fehlermeldung:

---------------------------
Audorra Soundlist Demo
---------------------------
Zugriffsverletzung bei Adresse 00477E25 in Modul 'soundlist.exe'. Lesen von Adresse 00000010.
---------------------------
OK
---------------------------


2) Öffne ich mit simple.exe eine mp3 Datei, ist der Play-Button deaktiviert.


3) Beim Hinzufügen einer Mp3 im soundscape.exe Demo, kommt diese Fehlermeldung:

---------------------------
Audorra Soundscape
---------------------------
Zugriffsverletzung bei Adresse 75EA9BBD in Modul 'msvcrt.dll'. Lesen von Adresse 00000000.
---------------------------
OK
---------------------------

Getestet unter Vista 32

igel457 9. Feb 2010 16:56

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Hm, seltsam, bei mir läuft das Out-of-the box ohne Probleme - kannst du mal noch genauer sagen, welches Betriebsystem du verwendest?

toms 9. Feb 2010 18:51

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Zitat:

Zitat von igel457
Hm, seltsam, bei mir läuft das Out-of-the box ohne Probleme - kannst du mal noch genauer sagen, welches Betriebsystem du verwendest?

Hab's mit Vista 32 Home getestet..

PS: Man könnte auch z.B. madExcept verwenden, um sinnvollere Fehlermeldungen zu erhalten und vielleicht sogar die Zeile im Code, wo der Fehler auftritt...

igel457 9. Feb 2010 21:03

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Versuche vielleicht mal noch die "wasapi_interface.dll" zu löschen. Diese ist vermutlich für die Abhängigkeit zur msvcrt.dll zuständig. Wenn das nicht hilt, dann wäre es nett, wenn du die Programme mal selbst kompilieren könntest (alle benötigten Units etc. liegen bei, alle (Such-)Pfade sind in den Demos bereits richtig eingestellt) und mir sagst, wo der Fehler auftritt.

angos 14. Mai 2010 08:05

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Hi,

ich wollte mir das gerne einmal anschauen. Nur leider bekomme ich das unter D7 nicht ans Laufen.

In der Unit acSyncObjs läßt sich folgender Part nicht kompilieren (TMutex ist nirgendwo deklariert):
Delphi-Quellcode:
 {$ELSE}
    TAcMutex = TMutex;
  {$ENDIF}
Kann ich da etwas machen um Audorra trotzdem nutzen zu können?

Gruß
angos

mkinzler 14. Mai 2010 08:11

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Hast du SyncObjs eingebunden?
http://docwiki.embarcadero.com/VCL/d...TMutex_Members

angos 14. Mai 2010 09:01

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Ja, die sind in der acSyncObjs von Igel457 eingebunden, aber TMUtex ist in der mir vorliegenden SyncObjs auch gar nicht definiert.

Gruß

angos

mkinzler 14. Mai 2010 09:02

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Dann wurde dies wohl erst ab D7 eingeführt

igel457 14. Mai 2010 16:55

Re: Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Be
 
Hallo, gut zu wissen, dass es TMutex auch in Delphi noch nicht so lange gibt... Wie du im Code gesehen haben musst, ist über dem "{$ELSE}" eine eigene Implementation von TMutex zu finden. Einfach den oberen Codepfad aktivieren (entsprechend auch im Implementation Teil).

Edit:
So, habs jetzt mal gescheit eingebaut: Einfach in der AcSyncObjs den Code folgendermaßen anpassen:
Delphi-Quellcode:
[...]
interface

{$INCLUDE andorra.inc}

//Determine whether the mutex object is available
{$DEFINE HAS_MUTEX}
{$IFDEF FPC}
  {$UNDEF HAS_MUTEX}
{$ENDIF}
{$IFDEF DELPHI_5_DOWN}
  {$UNDEF HAS_MUTEX}
{$ENDIF}
{$IFDEF VER140}
  {$UNDEF HAS_MUTEX}
{$ENDIF}
{$IFDEF VER150}
  {$UNDEF HAS_MUTEX}
{$ENDIF}

uses
  SysUtils, SyncObjs;

type
  TAcCriticalSection = TCriticalSection;
  {$IFNDEF HAS_MUTEX} //<< Wichtig
  TAcMutex = class(TSynchroObject)
    private

[...]

implementation

{$IFNDEF HAS_MUTEX} //<< Wichtig!

uses
  AcSysUtils;

[...]


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr.
Seite 1 von 2  1 2      

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