Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Ersatz für Stereomix (https://www.delphipraxis.net/149394-ersatz-fuer-stereomix.html)

BenjaminH 20. Mär 2010 11:27


Ersatz für Stereomix
 
Hi,
auf meinem neuen Sony Laptop gibt's keinen Stereomix Eingang, soweit ich mich informiert habe, kann man den auch nicht aktivieren.
Jetzt ist meine Frage:
Gibt es irgendeine Möglichkeit auf eine andere Art und Weise den Sound, den eine andere Anwendung ausgibt abzufangen? (auf die Software Virtual Audio Cable möchte ich verzichten, da ohne signierte Treiber)

Ich dachte ich hätte irgendwo mal im MSDN was gesehen, finde es aber nicht mehr. Hat jemand eine Idee, was ich meinen könnte?
Vielen Dank,
Benjamin

[Edit]Es scheint wirklich sowas zu geben. Zumindest gibt es Software die sowas anscheinend implementiert: http://stream-recorder.com/forum/aud...39.html?t=5839
im MSDN im Thema Core Audio komme ich im Moment aber auch nicht so ganz klar.

omata 20. Mär 2010 13:39

Re: Ersatz für Stereomix
 
Liste der Anhänge anzeigen (Anzahl: 1)
Der Stereo Mix erlaubt die Aufnahme von genau den Signalen, die man im Lautsprecher hört. Also das Gesamtsignal. Signale einzelner Anwendungen bzw. eben nur eines Audioeingangs aufzuzeichnen sollte kein Problem sein. Wobei das natürlich auch wieder auf die Soundkarte ankommt. Wenn nämlich die Soundkarte nur ein Programm zulässt, geht ein zweiter Zugriff nicht mehr und somit kann auch nicht parallel aufgezeichnet werden (dies sollte aber bei heutigen Soundkarten nicht mehr der Fall sein)

SirThornberry 20. Mär 2010 13:46

Re: Ersatz für Stereomix
 
@Omata: Auch bei heutigen Soundkarten ist es noch so das nur ein Zugriff möglich ist. Nur bekommt dies der Normalverbraucher nicht mit weil niemand mehr direkt die Soundkarte ansteuert sondern alles über die ApiFunktionen genutzt wird und somit der interne Windowsmixer die verschiedensten Signale zu einem zusammen mixt welches dann an die Soundkarte geleitet wird.

BenjaminH 20. Mär 2010 14:08

Re: Ersatz für Stereomix
 
@omata: Ich hab die bass.dll reinkopiert, aber ich bekomme beim start immer einen Integerüberlauf. Wenn ich Zeit hab(morgen oder so) schicke ich dir mal den Aufrufstack.

omata 20. Mär 2010 14:11

Re: Ersatz für Stereomix
 
Es ist keine bass.dll notwendig (die ist in die EXE einkompiliert). Also keine bass.dll in das Verzeichnis kopieren!

BenjaminH 21. Mär 2010 00:16

Re: Ersatz für Stereomix
 
hatte auch ohne nicht funktioniert.

BenjaminH 21. Mär 2010 10:12

Re: Ersatz für Stereomix
 
Der Fehler tritt in DLLLoaderU.InitializeImage auf, Zeile 741:
Delphi-Quellcode:
ImageBaseDelta:=LONGWORD(ImageBase)-ImageNTHeaders.OptionalHeader.ImageBase;

omata 21. Mär 2010 10:51

Re: Ersatz für Stereomix
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein neuer Versuch, der nur noch eine Soundkarte unterstützt...

BenjaminH 21. Mär 2010 11:03

Re: Ersatz für Stereomix
 
Hi,
jo das funktioniert jetzt. Tut aber soweit ich sehe dasselbe wie mein Programm. Es nimmt einen der Eingänge der Soundkarte und nimmt davon auf. Sobald Stereomix als Eingang auf dem PC nicht verfügbar ist, kann man auch nicht aufnehmen, was der PC selbst abspielt. Oder habe ich da was übersehen?
Viele Grüße,
Benjamin
p.s. Ich glaube das was du mit Equiliser meinst ist ein Equalizer.

BenjaminH 21. Mär 2010 20:47

Re: Ersatz für Stereomix
 
So, ich bin fündig geworden.
Unter Windows 7 gibt es die WASAPI. Loopback Recording - MSDN
Hat jemand diese API schonmal in Delphi genutzt?
Ich werde mich über die nächste Woche dann wohl mal auf die Suche nach einer Möglichen implementation machen.
Viele Grüße,
Benjamin
[Edit] Sorry fürs Pushen, im Eifer des Gefechts hab ich das editieren vergessen[/Edit]

arc 16. Apr 2010 18:15

Re: Ersatz für Stereomix
 
Das Thema ist hochinteressant. Ich bin im Moment dabei etwas mit Lichtsteuerung zu arbeiten und möchte mir ein kleines Programm schreiben, das die Stereosumme des PCs mitschneidet und Bass-Schläge erkennt. Ich brauche im Prinzip nur ein Monitoring des Ausgangssignals, ist das mittlerweile irgendwie mit Delphi möglich?

Danke!

BenjaminH 16. Apr 2010 18:24

Re: Ersatz für Stereomix
 
Hi,
geht und ist ganz einfach. Dein Programm muss nur ganz normal das Aufnehmen mit der bass.dll implementieren.
Jetzt ergänzt du entsprechend eines Eintrags im Forum der bass.dll deinen Code um folgendes:
Delphi-Quellcode:
const
  BASS_CONFIG_REC_LOOPBACK   = 28;
  BASS_DEVICE_LOOPBACK      = 8;
//Bevor du irgendwas aufnimmst:
BASS_SetConfig(BASS_CONFIG_REC_LOOPBACK,1);
Damit das funktioniert musst du die unstable Bass.dll verwenden, die in dem Thread verlinkt wird.
Und schon zeigt es dir in der Liste der Aufnahmegeräte auch deine Ausgabegeräte an, von denen du direkt Aufnehmen kannst. Du bekommst also genau das, was auch deine Lautsprecher bekommen.

Das ganze funktioniert aber leider erst ab Vista, davor musst du Stereo-Mix verwenden.

Viele Grüße,
Benjamin
P.S: Dich wird dann wohl auch das interessieren. Dieses Programm macht genau das, was du vorhast.

arc 16. Jun 2010 15:01

AW: Ersatz für Stereomix
 
Ich hoffe, ich darf das Thema nocheinmal anwärmen. Mein Ziel ist es ja eigentlich nur, die Frequenzbänder zu analysieren und daraus eine entsprechende Licht-Show abzuleiten.
Durch Zufall bin ich auf ein Winamp Plugin gestoßen und habe festgestellt, daß mir die Winamp Schnittstelle alles liefert was ich brauche!

http://www.sulaco.co.za/winamp_tut.htm

Nun ergibt sich allerdings ein kleines Problem, ich habe zwar die DLL als Winamp Plugin und kann beliebigen Code ausführen, ich möchte allerdings nicht mein gesamtes Projekt als DLL schreiben.

Vielmehr wäre mein Traum, daß mein Projekt mit der Winamp DLL kommuniziert und diese wiederum ebenfalls als "Plugin" nutzt. Daß ich sozusagen die Informationen die mir Winamp liefert an mein eigentliches Programm über das Plugin weiterreiche. Gibt es hier irgendeine Möglichkeit?

Danke!

H4ndy 16. Jun 2010 15:41

AW: Ersatz für Stereomix
 
AFAIK muss die Winamp-DLL ein SharedMemory-Objekt anlegen oder einen COM-Server erstellen, an den sich dann dein Programm haengt und die Infos abfragt bzw. abholt, die die DLL von Winamp bekommt (sprich die DLL muss von Winamop "befuellt" werden und eien definierte globale Schnittstelle nach aussen bieten, um diese Infos aus anderen Programmen abfragen zu koennen). Oder bin ich jetzt voellig deneben? :gruebel:

BenjaminH 16. Jun 2010 15:54

AW: Ersatz für Stereomix
 
Oder wie wärs direkt aus der DLL das Lichtprogramm zu steuern? Die DMXControl z.b. bietet eine Schnittstelle zur Steuerung über Midi an. Deine DLL muss jetzt nurnoch Midi-Signale senden.

arc 16. Jun 2010 17:12

AW: Ersatz für Stereomix
 
Zitat:

Zitat von BenjaminH (Beitrag 1029415)
Oder wie wärs direkt aus der DLL das Lichtprogramm zu steuern? Die DMXControl z.b. bietet eine Schnittstelle zur Steuerung über Midi an. Deine DLL muss jetzt nurnoch Midi-Signale senden.

Das ist ein interessanter Ansatz! Ich schreibe allerdings die Lichtsteuersoftware selbst. MIDI könnte ich problemlos einbauen, aber das wäre ja irgendwo um 3 Ecken programmiert :spin:

Ich möchte die Steuerung deshalb nicht in das Plugin integrieren, weil ich auch ohne Winamp und dem Plugin in der Lage sein will die Software zu nutzen. Mal schauen.

BenjaminH 16. Jun 2010 18:04

AW: Ersatz für Stereomix
 
Midi hat den Vorteil, dass z.B. DMXControl das für genau so etwas schon verwendet. Also kann
  1. dein Plugin auch mit anderer Software verwendet werden
  2. gleichartige Plugins(z.b. mein BeatDetector) funktionieren mit deiner Software.
Außerdem kann das Programm so, zumindest in der Theorie auch mit echter Lichtsteuerungs-Hardware zusammenarbeiten.

Mittlerweile wird das alles völlig Off-Topic. Vielleicht solltest du dafür einen eigenen Thread erstellen.

arc 16. Jun 2010 18:37

AW: Ersatz für Stereomix
 
Danke! Kann ein Mod vielleicht den Thread abtrennen?

H4ndy 16. Jun 2010 20:21

AW: Ersatz für Stereomix
 
Eroeffne doch einfach einen neuen Thread, ich glaub abgetrennt wurde hier noch nie.
Ubrigens fuer MIDI gibts hier tolle Komponenten: http://www.delphipraxis.net/151718-m...nenten-v7.html *Schleichwerb* :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 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