Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Audiokopplung zweier Computer (https://www.delphipraxis.net/142466-audiokopplung-zweier-computer.html)

Nicolai1234 28. Okt 2009 18:11


Audiokopplung zweier Computer
 
Hallo,

ich bin auf der Suche nach einer Möglichkeit, zwei Computer über die Soundkarten miteinander zu verbinden. Hier geht es nicht um rasend hohe Geschwindigkeiten, sondern nur um die Möglichkeit, geringe Datenmengen auszutauschen.
Auf beiden Rechnern soll ein Programm von mir laufen. Die Computer sind jeweils vom Line-Out zum Line-In und umgekehrt verkabelt.
Ein Programm soll dann also Töne ausgeben und das Programm auf der anderen Seite soll die dann jeweils richtig erkennen und interpretieren. Dabei würden mir zwei verschiedene Töne ausreichen, Ziel ist es nur, so einfach wie möglich eine Reihe von Nullen und Einsen zu übertragen.

Leider habe ich mich noch nie wirklich mit der Programmierung mit solchen Schnittstellen beschäftigt, da dies eigentlich nicht im Vordergrund der Arbeit stehen soll.
Mir geht es also um das Ausgeben und das Einlesen einfacher Töne.
Wie fange ich da am Besten an? Wie könnte man das am einfachsten umsetzen?

Vielen Dank im Voraus,
Nicolai

alleinherrscher 28. Okt 2009 19:12

Re: Audiokopplung zweier Computer
 
Hm jetzt einfach mal so spontan: Töne generieren könntest du mit windows.beep(frequenz, laenge);

Die Seite, die den Ton interpretieren soll, ist etwas komplizierter. Dort musst du das Signal aufnehmen (sollte Bass.dll leisten) und anschließend eine Fourier-Analyse Hier im Forum suchenFFT drüberlaufen lassen. Dies kann dir aus dem Signal die Frequenz ermitteln. imho sollte das auch mit Bass.dll gehen, allerdings habe ich die noch nie verwendet, weshalb ich über die entsprechenden Funktionen und Prozeduren nichts sagen kann.

//edit: Windows.Beep gibt glaube ich Töne nur über den PC-Speaker aus, richtig? :gruebel: Dann müsste man sowas hier nehmen:
http://www.delphi-fundgrube.de/faq13.htm#topic1307

Aber wie gesagt, das größere Problem ist die FFT Analyse ;)

OldGrumpy 28. Okt 2009 19:14

Re: Audiokopplung zweier Computer
 
Frei nach einer alten Radiowerbung: "Gibt's schon." :mrgreen: Denkbare Lösungen: a) Akustikkoppler b) DTMF-Töne - aber ob sich der rein zeitliche Aufwand lohnt... jede serielle Schnittstelle ist da schneller. Achja, der C64 benutzte damals so ein System zur Aufzeichnung der Programme und Daten auf normale Musikkassetten. Google nach "Datasette". Aber auch da wurde nicht das analoge Signal selber vom Computer verarbeitet sondern ein kleiner Schaltkreis bereitete den Sound vom Tape zu Nullen und Einsen auf.


//Edith sagt: C-64 ist kein PC im heutigen Sinne, daher lieber "Computer" geschrieben. Achja, und Tippfehler :)

haentschman 28. Okt 2009 19:14

Re: Audiokopplung zweier Computer
 
Guten Abend,

über das analoge Audiosignal Daten zu übertragen halte ich für sehr fehleranfällig. Das das noch niemand gemacht hat (PC zu PC) spricht wahrscheinlich für sich.
Früher gab´s mal für LapLink RS232 "Crossover" Kabel. Bemühe einfach mal Google. Ich denke daß der Datenaustausch über RS232 schneller und besser geht.

Nur so aus Neugier: Warum hast du dich für die Audioübertragung entschieden ? Hat das einen tieferen Sinn ?

:hi:

edit: Gott war ich wieder langsam :roll:

Tryer 28. Okt 2009 19:23

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von haentschman
über das analoge Audiosignal Daten zu übertragen halte ich für sehr fehleranfällig. Das das noch niemand gemacht hat (PC zu PC) spricht wahrscheinlich für sich.

Jetzt verstehe ich endlich wie das mit dem Faxen funktioniert.. Das Gepiepse ist der Wecker für den telepathiebegabten Kobold.. :mrgreen:
Die Übertragung per Analogmodem hat lange Zeit ziemlich gut funktioniert, die Ansprüche sind nur höher geworden.

haentschman 28. Okt 2009 19:26

Re: Audiokopplung zweier Computer
 
Zitat:

Jetzt verstehe ich endlich wie das mit dem Faxen funktioniert.. Das Gepiepse ist der Wecker für den telepathiebegabten Kobold.. Mr. Green
Die Übertragung per Analogmodem hat lange Zeit ziemlich gut funktioniert, die Ansprüche sind nur höher geworden.
nun ja... nur gab es an jedem Ende der Leitung keine Soundkarte. Das hat die Hardware direkt umgesetzt. Da liegen immer noch Welten dazwischen. :zwinker:

alleinherrscher 28. Okt 2009 19:28

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von Tryer
Jetzt verstehe ich endlich wie das mit dem Faxen funktioniert.. Das Gepiepse ist der Wecker für den telepathiebegabten Kobold.. :mrgreen:
Die Übertragung per Analogmodem hat lange Zeit ziemlich gut funktioniert, die Ansprüche sind nur höher geworden.

:) DSL ist doch auch nix anderes, nur auf höheren Frequenzen. Und man erinnere sich an die Zeit, als das Modem noch Akustik-Koppler hieß.

Aber haentschman bezog sich jetzt ausschließlich auf den Datenaustausch von PC zu PC über die Soundkarte und er hat recht: Störgeräusche (z.B. Windows Sounds) können nur schwer unterbunden werden außerdem hat man schlimmstenfalls Brummschleifen bei so einer Übertragung.

Aber ein interessantes Experiment - für den, der zu viel Zeit hat - wäre es allemal ;)

haentschman 28. Okt 2009 19:32

Re: Audiokopplung zweier Computer
 
OT
Zitat:

Aber ein interessantes Experiment - für den, der zu viel Zeit hat - wäre es allemal
als Jugendlicher habe ich mit einem Freund experimentiert Musik per Infrarot Licht zu übertragen. Wir haben nach Wochen / Monaten es geschafft 150 Meter in perfekter Qualität zu überbrücken.

Es kostet halt Zeit und Mühe.
/OT

himitsu 28. Okt 2009 19:38

Re: Audiokopplung zweier Computer
 
Blöder Weise ist der PC geerdet :cry:
und bei vorallem größerer Entfernung kann es passieren, daß beide PCs ein anderes Potential haben.
Die Folge sind Ausgleichsströme über dein Audiokabel und mit großer Sicherheit mindestens ein 50 und/oder 100 Hz-Rauschen.


Nja, Windows.Beep ( MSDN-Library durchsuchenBeep ) geht bei mir über die Soundkarte
und ein "einfaches" Ton an ... Ton aus-Morsesignal bekommt man bestimmt auch ohne FFT entschlüsselt :)

Spaßig wird es mit gleichzeitiger Übertragung über mehrere Frequenzen :stupid:

Alternativen
- LAN
- RS232 (wurde ja schon genannt)
- LPT (ja, das ginge auch)



also mit 'ner sehr fein abgestimmten und schnellen Mehrfrequenztonanalyse und 5.1 Souround-Sound sollte man bestimmt reichlich Daten rüberbekommen :lol:


oder "schnurlos" via Lautsprecher und Micro :nerd:

alleinherrscher 28. Okt 2009 19:43

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von himitsu
Blöder Weise ist der PC geerdet :cry:
und bei vorallem größerer entfernung kann es passieren, daß beide PCs ein anderes Potential haben.
Folge sind ausgleichsströme über dein Audiokabel und mit großer Sicherheit mindestens ein 50 und/oder 100 Hz-Rauschen.


Nja, Windows.Beep ( MSDN-Library durchsuchenBeep ) geht bei mir über die Soundkarte
und ein "einfaches" Ton an ... Ton aus-Morsesignal bekommt man bestimmt auch ohne FFT entschlüsselt :)

Spaßig wird es mit gleichzeitiger Übertragung über mehrere Frequenzen :stupid:

Alternativen
- LAN
- RS232 (wurde ja schon genannt)
- LPT (ja, das ginge auch)



also mit 'ner sehr fein abgestimmten und schnellen Mehrfrequenztonanalyse und 5.1 Souround-Sound sollte man bestimmt reichlich Daten rüberbekommen :lol:

Und das beste: Das ganze geht auch Wireless, wenn man einen guten Verstärker, nen Mirkofon und geräuschresistente Nachbarn hat :D
Das 50Hz/100Hz Rauschen meinte ich mit Brummschleifen ;-)

Und wie willst du unterscheiden, ob gerade ein Signal anliegt oder nicht? (Morsen) Mit FFT würde ich das sofort sehen, ob bei der eingestellten Frequenz ein Ausschlag ist oder nicht ;-)

himitsu 28. Okt 2009 19:45

Re: Audiokopplung zweier Computer
 
das mit dem Micro hatte ich auch grad dazueditiert :lol:

joar, am Einfachsten Laut=1 und Leise/Stumm=0

Nicolai1234 28. Okt 2009 20:03

Re: Audiokopplung zweier Computer
 
Die Frage ist nur, wie man das ganze schnell erledigen kann. Es muss ja nicht live sein.. Ich könnte ja auch erstmal 5 Sekunden Ton ausnehmen und dann schnell analysieren.. Es müssen ja nicht gleich Gigabyte sein, die da übertragen werden sollen... Wenn ich das so durchrechne - es soll ja ein Textchat werden - würden mir ja 140 Zeichen - also Byte - in angemessener Geschwindigkeit reichen. Würde allerdings bedeuten, dass man rund 50 Byte pro Sekunde, also doch ganze 400 Bit schaffen müsste.. Ich habe das Gefühl, dass das mit simplen Ton da/Ton weg nicht möglich ist..
Habt ihr weitere Ideen? Euro Diskussion sieht ja schon sehr gut aus. Ich finde sowas total interessant :D


Edit:
In meinem jugendlichen Leichtsinn hatte ich gehofft, eine Methode zu finden, die sowas aus meiner Soundkarte aufzeichnen kann:
http://schniko.com/gallery2/index.1....028-210710.jpg
Ein "einfaches" Abbild der Töne/Frequenzen, die man dann in aller Seelenruhe analysieren kann. (Bildanalyse finde ich auch greifbarer und vor allem ist es nicht so schwer mit Delphi)
Andersrum braucht man natürlich noch etwas, das aus einem solchen "Bild" wieder den passenden Sound zur Ausgabe macht..
Gibt es da etwas, das in die Richtung geht? Das Rad möchte ich ja nicht neu erfinden, wenn es nicht sein muss :wink:

alleinherrscher 28. Okt 2009 20:11

Re: Audiokopplung zweier Computer
 
Wie gesagt, das schöne ist, dass dir ganz viele "Kanäle" gleichzeitig zur verfügung stehen...jede Frequenz, die deine Soundkarte physikalisch Auflösen kann, kannst du quasi als separaten Kanal für die Übertragung verwenden, wenn du eine FFT durchführst. Nur "mal eben schnell" wirst du diese Aufgabe sicher nicht gelöst bekommen - egal wie...

zu deinem Edit: Ein Abbild der Frequenzen ist doch eine FFT - genau darum gehts :P

Das was du da zeigst ist ein reines Lausstärkeprofil, das halte ich für ungeeignet um sauber Daten zu übertragen, man denke nur dran, wenn die Lautstärke auf PC A mal falsch eingestellt ist, dann versteht PC B ihn nicht mehr.

turboPASCAL 28. Okt 2009 20:12

Re: Audiokopplung zweier Computer
 
Ach ich liebe diesen Sound: http://de.wikipedia.org/wiki/Datei:Datasette.ogg
Vor allem wenn die Übertragung klappte.

Das Senden der Tonimpulse ist dabei wohl das kleinste Problem.
Das empfangen und decodieren wird da etwas Aufwendiger ausfallen,
da man ja zB. fünf aufeinander folgende Nullen oder Einsen unterscheiden
können müsste.

BUG 28. Okt 2009 20:13

Re: Audiokopplung zweier Computer
 
Line-In/Out ist doch Stereo, dh. man kann durch den einen Kanal ein Taktungssignal schicken und durch den anderen das Nutzsignal. Dann spart man sich jegliche komplexe Analysen und da kein Lautsprecher im Spiel ist muss das ganze ja nicht gut klingen: also ganz primitiv.

Wenn man das ganze robust gestaltet und relativ langsam taktet, warum nicht?

Überlegung: -1 <= Wert <= 1

Links:
Wert >0.75 bedeutet 1.
Wert <-0.75 bedeutet 0

Rechts:
1. Wenn bestimmter Wert überschritten (positiv) wird, dann wird ein Bit aus Links eingelesen.
2. Wenn bestimmter Wert unterschritten (negativ) wird, dann wird ein Bit aus Links eingelesen.
3. Mache bei 1. weiter.


MfG,
Bug

Nicolai1234 28. Okt 2009 20:19

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von BUG
Überlegung: -1 <= Wert <= 1

Links:
Wert >0.75 bedeutet 1.
Wert <-0.75 bedeutet 0

Rechts:
1. Wenn bestimmter Wert überschritten (positiv) wird, dann wird ein Bit aus Links eingelesen.
2. Wenn bestimmter Wert unterschritten (negativ) wird, dann wird ein Bit aus Links eingelesen.
3. Mache bei 1. weiter.

Genau so stell ich mir das vor :thumb:

Mir geht's aber vor allem um den technischen Aspekt, wie ich diese Analogdaten jetzt in mein Programm bekomme... Ansonsten seh ich das, wie du: Erstmal langsam anfangen und nicht gleich HighSpeed haben wollen, dann sollte es auch klappen.

alleinherrscher 28. Okt 2009 20:20

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von BUG
1. Wenn bestimmter Wert überschritten (positiv) wird, dann wird ein Bit aus Links eingelesen.
2. Wenn bestimmter Wert unterschritten (negativ) wird, dann wird ein Bit aus Links eingelesen.
3. Mache bei 1. weiter.

Wie wollt ihr alle aus einem Audio-Stream irgendwas "einlesen"? Das ist erstmal nichts weiter als eine Überlagerung von Schwingungsmoden? Ohne eine Transformation der Schwingung in den Frequenzraum könnt ihr daran gar nix sehen? Oder denke ich als Physiker wieder zu kompliziert??? :gruebel:

igel457 28. Okt 2009 20:29

Re: Audiokopplung zweier Computer
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe vor einiger Zeit mal ein Programm geschrieben, das Morsecodes, die über ein Mikrofon aufgenommen werden, dekodiert.

Achtung: Das Programm läuft nur unter Windows <= XP, bei Vista und Windows 7 ist die verwendete Version der bass.dll nicht in der Lage das Aufnahmegerät zu initialisieren.

Ich hoffe, das hilft dir irgendwie weiter.

BUG 28. Okt 2009 20:34

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von alleinherrscher
Oder denke ich als Physiker wieder zu kompliziert??? :gruebel:

Ja. Mit Wert meine ich hier die aktuelle Auslenkung der Stromstärke (oder ist es da die Spannung?) auf dem Kabel, mit der Soundkarte gemessen.
EDIT: Das Signal muss ja keinen Ton ergeben.


MfG,
Bug

alleinherrscher 28. Okt 2009 21:40

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von BUG
Zitat:

Zitat von alleinherrscher
Oder denke ich als Physiker wieder zu kompliziert??? :gruebel:

Ja. Mit Wert meine ich hier die aktuelle Auslenkung der Stromstärke (oder ist es da die Spannung?) auf dem Kabel, mit der Soundkarte gemessen.
EDIT: Das Signal muss ja keinen Ton ergeben.


MfG,
Bug

Wie soll ich denn bitte die aktuelle Amplitude (Auslenkung) messen? Ich glaube nicht, dass das mit irgendeiner API geht. Zumal die sich, wie du ja sicher weißt, teils im Kilohertz Bereich befindet. Selbst hinter einem VU Meter, welches der ein oder andere Mediaplayer anzeigen kannt steckt imho eine FFT.

divBy0 28. Okt 2009 22:10

Re: Audiokopplung zweier Computer
 
Die Amplitude müsste messbar sein. Jede Soundkarte hat ja eine bestimmte Bittiefe, was die möglichen Lautstärkeeinheiten ergibt.

Ein Line-Eingang an einer Soundkarte müsste eigentlich bei -10dBV Eingangssignal intern 0dB ergeben. -10dBV müssten ca. Vss=0,9 Volt sein.

himitsu 28. Okt 2009 22:24

Re: Audiokopplung zweier Computer
 
als WAV aufgenommen und mit hoher Abtastrate kann man doch schön einzelne Werte auslesen

genauso kann man sich ja eine WAV erstellen und somit auch sein Signalmußter

man muß nur aufpassen, da ein "hartes" Rechtecksignal garantiert nicht mehr ganz rechteckig drüben ankommt.

alleinherrscher 28. Okt 2009 22:29

Re: Audiokopplung zweier Computer
 
Okay, stimmt, ich hab mal ein bisschen gelesen. himitsus Vorschlag müsste gehen, unabhängig davon, ob man in echtzeit auf die Amplitude zugreifen kann oder nicht.

BUG 28. Okt 2009 22:35

Re: Audiokopplung zweier Computer
 
Habe hier (bei mir leider gerade nur über Google-Cache erreichbar) geguckt.
Zumindest Gleichspannung über Soundkarte sollte kompliziert werden, da anscheinend ein Kondensator zum Mikrofoneingang parallel geschaltet ist. Wie das mit dem Line-In ist, weiß ich nicht.

Ein Kondensator würde die Auswertung auf jeden Fall erschweren.

MfG,
Bug

OldGrumpy 28. Okt 2009 22:49

Re: Audiokopplung zweier Computer
 
Wenn überhaupt, dann gibt es zwei Möglichkeiten:

a) Laut/Leise zur Unterscheidung verwenden: Lauter Ton gibt höhere Amplituden (die einzelnen Maximum-/Minimumwerte liegen weiter auseinander) als leiser Ton.

b) Zwei verschiedene Frequenzen verwenden, niedriger Ton gleich Null-Bit, hoher Ton gleich Eins-Bit.

Bei beiden Methoden bleibt das Problem der Kalibrierung und der Zuverlässigkeit. Man muss also einen gewissen Aufwand für die Aufbereitung treiben.

Medium 29. Okt 2009 00:19

Re: Audiokopplung zweier Computer
 
http://www.youtube.com/watch?v=s1eNjUgaB-g

Hab für das Wavefile von dem Kerl mal einen "Interpreter" als Winamp Plugin zusammengeschustert. Man kann durchaus über Lautstärkelevel Informationen übertragen (Amplituten-Modulation anyone?), nur ist es mit sicherheit deutlich Fehleranfälliger und schmalbandiger (verhält sich gegensätzlich zueinander). Und ein VU-Meter braucht ganz sicher keine FFT. Was es braucht ist Trägheit beim abfallen, damit es nicht wild zappelt und dadurch für das Menschliche Auge eine brauchbare Information wiedergibt.

alleinherrscher 29. Okt 2009 00:52

Re: Audiokopplung zweier Computer
 
Zitat:

Zitat von Medium
http://www.youtube.com/watch?v=s1eNjUgaB-g

Hab für das Wavefile von dem Kerl mal einen "Interpreter" als Winamp Plugin zusammengeschustert. Man kann durchaus über Lautstärkelevel Informationen übertragen (Amplituten-Modulation anyone?), nur ist es mit sicherheit deutlich Fehleranfälliger und schmalbandiger (verhält sich gegensätzlich zueinander). Und ein VU-Meter braucht ganz sicher keine FFT. Was es braucht ist Trägheit beim abfallen, damit es nicht wild zappelt und dadurch für das Menschliche Auge eine brauchbare Information wiedergibt.


Nettes Video. Wie gesagt, ihr habt Recht. :thumb: Für ein VU Meter, reichts quasi, sich die aktuelle Amplitude anzusehen. Ich habe übrigens ein nettes Beispielprojekt von turboPascal gefunden, das demonstriert, wie leicht man an die von der Soundkarte digitalisierten Werte der Amplitude kommt:

http://www.delphipraxis.net/internal...t.php?t=131207

hathor 29. Okt 2009 12:47

Re: Audiokopplung zweier Computer
 
Im vorigen Jahrtausend - kurz nach dem Aussterben der Dinosaurier - gab es SUPERTAPE:
.
ftp://ftp.heise.de/pub/ct/listings/0410-022.zip


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