AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Beta

Audorra - Digitale 3D Audiobibliothek - Version 0.5.0 Beta

Ein Thema von igel457 · begonnen am 7. Feb 2010 · letzter Beitrag vom 10. Aug 2010
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von igel457
igel457
Registriert seit: 31. Aug 2005
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
"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 toms
toms

 
Delphi XE Professional
 
#2
  Alt 8. Feb 2010, 20:16
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
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#3
  Alt 9. Feb 2010, 16:56
Hm, seltsam, bei mir läuft das Out-of-the box ohne Probleme - kannst du mal noch genauer sagen, welches Betriebsystem du verwendest?
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#4
  Alt 9. Feb 2010, 18:51
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...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#5
  Alt 9. Feb 2010, 21:03
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.
Andreas
  Mit Zitat antworten Zitat
angos

 
Delphi 10.4 Sydney
 
#6
  Alt 14. Mai 2010, 08:05
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
Ansgar
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 10.4 Sydney
 
#7
  Alt 14. Mai 2010, 08:11
Hast du SyncObjs eingebunden?
http://docwiki.embarcadero.com/VCL/d...TMutex_Members
Markus Kinzler
  Mit Zitat antworten Zitat
angos

 
Delphi 10.4 Sydney
 
#8
  Alt 14. Mai 2010, 09:01
Ja, die sind in der acSyncObjs von Igel457 eingebunden, aber TMUtex ist in der mir vorliegenden SyncObjs auch gar nicht definiert.

Gruß

angos
Ansgar
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 10.4 Sydney
 
#9
  Alt 14. Mai 2010, 09:02
Dann wurde dies wohl erst ab D7 eingeführt
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#10
  Alt 14. Mai 2010, 16:55
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;

[...]
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 20:57 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