Aktuelle Zeit: 25.01.2020 01:52

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 10.07.2010 10:47 
Offline
Benutzeravatar

Registriert: 13.05.2008 19:55
Hallo,
ich probiere vergeblich, mittels der Bibliothek "port.dll", Sounddaten aus der Soundkarte auszulesen.
Ich habe einen Laptop mit Win7 und einer (vermtl.) Onboard-Soundkarte.
Ich nutze PureBASIC v 4.40

Das Problem besteht schon am Beginn des Programmes, daß mir die Variable Sound_Vorhanden
den Wert -1 anzeigt, also so tut, als wäre im Laptop keine Soundkarte vorhanden. Vermutlich
werden deshalb auch keine Sounddaten in den Speicherbereich geschrieben und in der Console
auch nicht ausgegeben, weil eben keine daten im Speicherbereich drin sind.

Kann mir jemand schreiben, welchen Fehler ich mache? Danke

Gerhard

Anbei der Quelltext und danach die Beschreibung der "PORT.DLL" Soundkartenbefehle:

Code:
;Soundkarte auslesen
InitSound()
OpenConsole()

If OpenLibrary(0,"port.dll")<>0
    Sound_Vorhanden = CallFunction(0,"SOUNDIS");Prüft, ob eine Soundkarte vorhanden ist (0=JA, -1=NEIN)
    MessageRequester("",Str(Sound_Vorhanden))
Else
    MessageRequester("PureFFT Fehler","PORT.DLL nicht gefunden")
EndIf
    *SoundIN = AllocateMemory(44100)
    Ergebnis = CallFunction(0,"SOUNDIN",*SoundIN,44100); Liest die Soundkartendaten als 8-Bit (BYTE) oder 16-Bit (WORD) ein
    MessageRequester("",Str(Ergebnis))


For i = 1 To 22050 Step 2
    WORT.w = PeekW(*SoundIN)
    PrintN(Str(WORT))
Next i

Repeat
Until Inkey()<>""


Hier noch die Soundkartenbefehle der "port.dll":

Soundkarte:
===========

SOUNDIS
Stellt fest, ob eine Soundkarte vorhanden ist
Parameter: keine
Rückgabe: 0 oder -1 bzw. True oder False

Deklaration in Java:
public static native boolean soundis() throws PortDLLWrapperException;

Deklaration in C/C++:
typedef int (CALLBACK* LPFNDLLFUNC)();
char szFuncName[] = "SOUNDIS";

Deklaration in Delphi:
Function SOUNDIS:Boolean; stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Function SOUNDIS Lib "Port" () As Integer


SOUNDCAPIN
Die Soundkartenaufnahme-Eigenschaften werden in einer MessageBox
ausgegeben.
Parameter: keine
Rückgabe: keine

Deklaration in Java:
public static native void soundcapin() throws PortDLLWrapperException;

Deklaration in C/C++:
typedef int (CALLBACK* LPFNDLLFUNC)();
char szFuncName[] = "SOUNDCAPIN";

Deklaration in Delphi:
Procedure SOUNDCAPIN; stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Sub SOUNDCAPIN Lib "Port" ()


SOUNDCAPOUT
Die Soundkartenwiedergabe-Eigenschaften werden in einer MessageBox
ausgegeben.
Parameter: keine
Rückgabe: keine

Deklaration in Java:
public static native void soundcapout() throws PortDLLWrapperException;

Deklaration in C/C++:
typedef int (CALLBACK* LPFNDLLFUNC)();
char szFuncName[] = "SOUNDCAPOUT";

Deklaration in Delphi:
Procedure SOUNDCAPOUT; stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Sub SOUNDCAPOUT Lib "Port" ()


SOUNDIN
Startet eine Soundaufnahme (mono) und legt die Daten in den übergebenen
Pufferspeicher ab.
Parameter: Speicher und Speichergröße (in Bytes)
Rückgabe: keine

Deklaration in Java:
public static native int[] soundin(int length) throws PortDLLWrapperException;

Deklaration in C/C++:
typedef int (CALLBACK* LPFNDLLFUNC)(BYTE*,DWORD);
char szFuncName[] = "SOUNDIN";

Deklaration in Delphi:
Procedure SOUNDIN(Puffer: Pchar; Size: DWORD); stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Sub SOUNDIN Lib "Port" (ByVal A$, ByVal Gr As Long)


SOUNDOUT
Startet eine Soundwiedergabe (mono) der Daten des übergebenen Pufferspeichers.
Parameter: Speicher und Speichergröße (in Bytes)
Rückgabe: keine

Deklaration in Java:
public static native void soundout(int[] buffer) throws PortDLLWrapperException;

Deklaration in C/C++:
typedef int (CALLBACK* LPFNDLLFUNC)(BYTE*,DWORD);
char szFuncName[] = "SOUNDOUT";

Deklaration in Delphi:
Procedure SOUNDOUT(Puffer: Pchar; Size: DWORD); stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Sub SOUNDOUT Lib "Port" (ByVal A$, ByVal Gr As Long)


SOUNDGETRATE
Erfagt die eingestellte Abtastfrequenz.
Parameter: keine
Rückgabe: Abtastfrequenz in Samples/Sekunde, z.B. 11025;

Deklaration in Java:
public static native int soundgetrate() throws PortDLLWrapperException;

Deklaration in C/C++:
typedef WORD (CALLBACK* LPFNDLLFUNC)();
char szFuncName[] = "SOUNDGETRATE";

Deklaration in Delphi:
Function SOUNDGETRATE: WORD; stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Function SOUNDGETRATE Lib "Port" () As Integer


SOUNDSETRATE
Stellt eine Abtastfrequenz ein.
Parameter: Abtastfrequenz in Samples/Sekunde
Rückgabe: Vorige Abtastfrequenz in Samples/Sekunde. z.B. 11025;

Deklaration in Java:
public static native int soundsetrate(int rate) throws PortDLLWrapperException;

Deklaration in C/C++:
typedef DWORD (CALLBACK* LPFNDLLFUNC)(DWORD);
char szFuncName[] = "SOUNDSETRATE";

Deklaration in Delphi:
Function SOUNDSETRATE(Rate: DWORD):DWORD; stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Function SOUNDSETRATE Lib "Port" (ByVal Rate As Long) As Long


SOUNGETBYTES
Bytes pro Sample erfragen
Parameter: keine
Rückgabe: 1 oder 2. Ein Byte entspricht 8 Bits/Sample. Zwei Bytes
entsprechen 16 Bit/Sample.

Deklaration in Java:
public static native int soundgetbytes() throws PortDLLWrapperException;

Deklaration in C/C++:
typedef WORD (CALLBACK* LPFNDLLFUNC)();
char szFuncName[] = "SOUNDGETBYTES";

Deklaration in Delphi:
Function SOUNDGETBYTES: WORD; stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Function SOUNDGETBYTES Lib "Port" () As Integer


SOUNDSETBYTES
Bytes pro Sample einstellen.
Parameter: 1 oder 2. Ein Byte entspricht 8 Bits/Sample. Zwei Bytes
entsprechen 16 Bit/Sample.
Rückgabe: vorige Bytes pro Sample.

Deklaration in Java:
public static native int soundsetbytes(int bytes) throws PortDLLWrapperException;

Deklaration in C/C++:
typedef DWORD (CALLBACK* LPFNDLLFUNC)(DWORD);
char szFuncName[] = "SOUNDSETBYTES";

Deklaration in Delphi:
Function SOUNDSETBYTES(Bytes: DWORD):DWORD; stdcall; external 'port.dll';

Deklaration in VB und VBA:
Declare Function SOUNDSETBYTES (ByVal Rate As Long) As Long


SOUNDBUSY
Testen, ob die Soundkarte gerade beschäftigt ist.
Parameter: keine
Rückgabe: Zustand der Soundkarte (1/0)

Deklaration in Java:
public static native boolean soundbusy() throws PortDLLWrapperException;

Deklaration in C/C++:
typedef DWORD (CALLBACK* LPFNDLLFUNC)();
char szFuncName[] = "SOUNDBUSY";


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 01.08.2010 01:29 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Ich hab's mal hierhin verschoben, da wohl dafür die Hardwareecke besser geeignet ist. Ob die Port.dll nun die Soundkarte korrekt unterstützt, kann ich laut der Beschreibung von B.Kainka nicht herauslesen. Angeblich soll diese nun auch unter Vista funktionieren. Ich kann an deinem Code keinen Fehler finden. Funktionieren tut's bei meiner Soundonboard von Asus P5QL-Pro leider auch nicht.

Bzw. überprüft wird ja mit der DLL, ob die Soundkarte vorhanden ist, was bei mir ebenfalls eine -1 anzeigt.

Gruß Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 01.08.2010 10:57 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
In anderen Programmiersprachen ist in der Regler -1 ein True und 0 ein Fals.
Hat also die Soundkarte gefunden.

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 01.08.2010 13:16 
Offline
Benutzeravatar

Registriert: 11.11.2004 16:13
Wohnort: Magdeburg
Habe mir das eben mal mit Win XP (Sound-On-Board) und einem DisAssembler angeschaut (Port.dll vom 23.02.2005). Die Funktion SOUNDIS ruft waveInGetNumDevs() auf und gibt bei einem Wert >=1 den Rückgabe-Wert -1 zurück, also (mindestens eine) Soundkarte gefunden (nichts gefunden = 0).
Abfrage-Funktionen wie "SOUNDCAPIN", "SOUNDCAPOUT", "SOUNDGETRATE" und "SOUNDGETBYTES" funktionieren. Was "SOUNDIN" bei mir speichert - ich bin noch am Grübeln.
Übrigens: Die Konsole zeigt nur die letzten Werte an; besser mit Debug und dann richtig mit Startwert 0 und i als Parameter in PeekW :mrgreen: :
Code:
For i = 0 To 22048 Step 2
  Debug PeekW(*SoundIN + i)
Next i

Gruß
Helle
P.S.: Funktioniert mit Mikrofon als Aufnahme-Quelle!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 02.08.2010 18:51 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Ich habe nun unter Vista32 auch mal experimentiert um mit der neuen Port.dll eine Aufnahme
als auch das Abspielen mal damit zu testen. Das funktioniert prima.

Code:
; Globale Variablen deklaration
Global CLOSECOM.l
Global CTS.l
Global DCD.l
Global DELAY.l
Global DELAYUS.l
Global DSR.l
Global DTR.l
Global INPORT.l
Global JOYBUTTON.l
Global JOYR.l
Global JOYSTICK.l
Global JOYU.l
Global JOYV.l
Global JOYX.l
Global JOYY.l
Global JOYZ.l
Global OPENCOM.l
Global OUTPORT.l
Global READBYTE.l
Global REALTIME.l
Global RI.l
Global RTS.l
Global SENDBYTE.l
Global SOUNDBUSY.l
Global SOUNDCAPIN.l
Global SOUNDCAPOUT.l
Global SOUNDGETBYTES.l
Global SOUNDGETRATE.l
Global SOUNDIN.l
Global SOUNDIS.l
Global SOUNDOUT.l
Global SOUNDSETBYTES.l
Global SOUNDSETRATE.l
Global SOUNDIN.l
Global SOUNDOUT.l
Global TIMEINIT.l
Global TIMEINITUS.l
Global TIMEOUT.l
Global TIMEREAD.l
Global TIMEREADUS.l
Global TXD.l

; Init-Funktion
ProcedureDLL PORTDLL_Init()
Shared DLL.l
DLL = LoadLibrary_("PORT.DLL")
If DLL
CLOSECOM = GetProcAddress_(DLL, "CLOSECOM")
CTS = GetProcAddress_(DLL, "CTS")
DCD = GetProcAddress_(DLL, "DCD")
DELAY = GetProcAddress_(DLL, "DELAY")
DELAYUS = GetProcAddress_(DLL, "DELAYUS")
DSR = GetProcAddress_(DLL, "DSR")
DTR = GetProcAddress_(DLL, "DTR")
INPORT = GetProcAddress_(DLL, "INPORT")
JOYBUTTON = GetProcAddress_(DLL, "JOYBUTTON")
JOYR = GetProcAddress_(DLL, "JOYR")
JOYSTICK = GetProcAddress_(DLL, "JOYSTICK")
JOYU = GetProcAddress_(DLL, "JOYU")
JOYV = GetProcAddress_(DLL, "JOYV")
JOYX = GetProcAddress_(DLL, "JOYX")
JOYY = GetProcAddress_(DLL, "JOYY")
JOYZ = GetProcAddress_(DLL, "JOYZ")
OPENCOM = GetProcAddress_(DLL, "OPENCOM")
OUTPORT = GetProcAddress_(DLL, "OUTPORT")
READBYTE = GetProcAddress_(DLL, "READBYTE")
REALTIME = GetProcAddress_(DLL, "REALTIME")
RI = GetProcAddress_(DLL, "RI")
RTS = GetProcAddress_(DLL, "RTS")
SENDBYTE = GetProcAddress_(DLL, "SENDBYTE")
SOUNDBUSY = GetProcAddress_(DLL, "SOUNDBUSY")
SOUNDCAPIN = GetProcAddress_(DLL, "SOUNDCAPIN")
SOUNDCAPOUT = GetProcAddress_(DLL, "SOUNDCAPOUT")
SOUNDGETBYTES = GetProcAddress_(DLL, "SOUNDGETBYTES")
SOUNDGETRATE = GetProcAddress_(DLL, "SOUNDGETRATE")
SOUNDIN = GetProcAddress_(DLL, "SOUNDIN")
SOUNDIS = GetProcAddress_(DLL, "SOUNDIS")
SOUNDOUT = GetProcAddress_(DLL, "SOUNDOUT")
SOUNDSETBYTES = GetProcAddress_(DLL, "SOUNDSETBYTES")
SOUNDSETRATE = GetProcAddress_(DLL, "SOUNDSETRATE")
SSOUNDIN = GetProcAddress_(DLL, "SSOUNDIN")
SSOUNDOUT = GetProcAddress_(DLL, "SSOUNDOUT")
TIMEINIT = GetProcAddress_(DLL, "TIMEINIT")
TIMEINITUS = GetProcAddress_(DLL, "TIMEINITUS")
TIMEOUT = GetProcAddress_(DLL, "TIMEOUT")
TIMEREAD = GetProcAddress_(DLL, "TIMEREAD")
TIMEREADUS = GetProcAddress_(DLL, "TIMEREADUS")
TXD = GetProcAddress_(DLL, "TXD")
EndIf
EndProcedure
; End-Funktion
ProcedureDLL PORTDLL_End()
Shared DLL.l
FreeLibrary_(DLL)
EndProcedure
; Allgemeine Funktionen
ProcedureDLL.l CLOSECOM()
ProcedureReturn CallFunctionFast(CLOSECOM)
EndProcedure

ProcedureDLL.l CTS()
ProcedureReturn CallFunctionFast(CTS)
EndProcedure

ProcedureDLL.l DCD()
ProcedureReturn CallFunctionFast(DCD)
EndProcedure

ProcedureDLL.l P_Delay(a.l)
ProcedureReturn CallFunctionFast(DELAY,a)
EndProcedure

ProcedureDLL.l DELAYUS(a.l)
ProcedureReturn CallFunctionFast(DELAYUS,a)
EndProcedure

ProcedureDLL.l DSR()
ProcedureReturn CallFunctionFast(DSR)
EndProcedure

ProcedureDLL.l DTR(a.l)
ProcedureReturn CallFunctionFast(DTR,a)
EndProcedure

ProcedureDLL.l INPORT(a.l)
ProcedureReturn CallFunctionFast(INPORT,a)
EndProcedure

ProcedureDLL.l JOYBUTTON()
ProcedureReturn CallFunctionFast(JOYBUTTON)
EndProcedure

ProcedureDLL.l JOYR()
ProcedureReturn CallFunctionFast(JOYR)
EndProcedure

ProcedureDLL.l JOYSTICK(a.l,b.l,c.l,d.l,e.l,f.l,g.l)
ProcedureReturn CallFunctionFast(JOYSTICK,a,b,c,d,e,f,g)
EndProcedure

ProcedureDLL.l JOYU()
ProcedureReturn CallFunctionFast(JOYU)
EndProcedure

ProcedureDLL.l JOYV()
ProcedureReturn CallFunctionFast(JOYV)
EndProcedure

ProcedureDLL.l JOYX()
ProcedureReturn CallFunctionFast(JOYX)
EndProcedure

ProcedureDLL.l JOYY()
ProcedureReturn CallFunctionFast(JOYY)
EndProcedure

ProcedureDLL.l JOYZ()
ProcedureReturn CallFunctionFast(JOYZ)
EndProcedure

ProcedureDLL.l OPENCOM()
ProcedureReturn CallFunctionFast(OPENCOM)
EndProcedure

ProcedureDLL.l OUTPORT(a.l,b.l)
ProcedureReturn CallFunctionFast(OUTPORT,a,b)
EndProcedure

ProcedureDLL.l P_ReadByte()
ProcedureReturn CallFunctionFast(READBYTE)
EndProcedure

ProcedureDLL.l REALTIME(a.l)
ProcedureReturn CallFunctionFast(REALTIME,a)
EndProcedure

ProcedureDLL.l RI()
ProcedureReturn CallFunctionFast(RI)
EndProcedure

ProcedureDLL.l RTS(a.l)
ProcedureReturn CallFunctionFast(RTS,a)
EndProcedure

ProcedureDLL.l SENDBYTE(a.l)
ProcedureReturn CallFunctionFast(SENDBYTE,a)
EndProcedure

ProcedureDLL.l SOUNDBUSY()
ProcedureReturn CallFunctionFast(SOUNDBUSY)
EndProcedure

ProcedureDLL.l SOUNDCAPIN()
ProcedureReturn CallFunctionFast(SOUNDCAPIN)
EndProcedure

ProcedureDLL.l SOUNDCAPOUT()
ProcedureReturn CallFunctionFast(SOUNDCAPOUT)
EndProcedure

ProcedureDLL.l SOUNDGETBYTES()
ProcedureReturn CallFunctionFast(SOUNDGETBYTES)
EndProcedure

ProcedureDLL.l SOUNDGETRATE()
ProcedureReturn CallFunctionFast(SOUNDGETRATE)
EndProcedure

ProcedureDLL.l SOUNDIN(a.l,b.l)
ProcedureReturn CallFunctionFast(SOUNDIN,a,b)
EndProcedure

ProcedureDLL.l SOUNDIS()
ProcedureReturn CallFunctionFast(SOUNDIS)
EndProcedure

ProcedureDLL.l SOUNDOUT(a.l,b.l)
ProcedureReturn CallFunctionFast(SOUNDOUT,a,b)
EndProcedure

ProcedureDLL.l SOUNDSETBYTES(a.l)
ProcedureReturn CallFunctionFast(SOUNDSETBYTES,a)
EndProcedure

ProcedureDLL.l SOUNDSETRATE(a.l)
ProcedureReturn CallFunctionFast(SOUNDSETRATE,a)
EndProcedure


ProcedureDLL.l TIMEINIT()
ProcedureReturn CallFunctionFast(TIMEINIT)
EndProcedure

ProcedureDLL.l TIMEINITUS()
ProcedureReturn CallFunctionFast(TIMEINITUS)
EndProcedure

ProcedureDLL.l TIMEOUT(a.l)
ProcedureReturn CallFunctionFast(TIMEOUT,a)
EndProcedure

ProcedureDLL.l TIMEREAD()
ProcedureReturn CallFunctionFast(TIMEREAD)
EndProcedure

ProcedureDLL.l TIMEREADUS()
ProcedureReturn CallFunctionFast(TIMEREADUS)
EndProcedure

ProcedureDLL.l TXD(a.l)
ProcedureReturn CallFunctionFast(TXD,a)
EndProcedure

;Soundkarte auslesen

InitSound()
OpenConsole()
PORTDLL_Init()

If SOUNDIS()= -1
  Debug SOUNDCAPIN()
    *Sounds.c = AllocateMemory(22048)
  MessageRequester("Aufnahme Soundcard","Aufnahme starten")
  SOUNDIN(*Sounds,22048)
  MessageRequester("Wiedergabe Soundcard","Wiedergabe starten")
  SOUNDOUT(*Sounds,22048)
  CreateFile(0,"Test.wav")
     WriteData(0,@Sounds,22048)
  CloseFile(0)
Else
    MessageRequester("PureFFT Fehler","PORT.DLL nicht gefunden")
EndIf
   

Repeat
Until Inkey()<>""
PORTDLL_End()

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 04.08.2010 10:35 
Offline

Registriert: 03.01.2005 11:36
Guten Morgen,

ich habe soeben mal den Code bei meinem Netbook mit Windows 7 getestet. Klappt prima!!!!

Nun habe ich aber noch zwei Fragen (wenigstens im Moment).

1) Wenn ich das richtig verstehe, sind am Anfang des Programms alle Parameter, Variabeln, die die port.dll unterstützt declariert einschließlich der Proceduren für die Parameterübergabe.
Wenn nicht! Wo kann ich alles zur Verwendung z.B. der Com-Schnittstelle finden.

2) Wenn ich nun länger aufzeichen möchte, muss ich dann im Codeteile

If SOUNDIS()= -1
Debug SOUNDCAPIN()
*Sounds.c = AllocateMemory(22048)
MessageRequester("Aufnahme Soundcard","Aufnahme starten")
SOUNDIN(*Sounds,22048)
MessageRequester("Wiedergabe Soundcard","Wiedergabe starten")
SOUNDOUT(*Sounds,22048)
CreateFile(0,"Test.wav")
WriteData(0,@Sounds,22048)
CloseFile(0)
Else


die 22048 durch eine größere Zahl ersetzen?

Vielen Dank für die Hilfe!!!!!

Martin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 04.08.2010 15:11 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Das sind eigentlich nur Samples/Sekunde. In diesem Falle wären es zwei Sekunden.
Vermutlich habe ich da noch einen Fehler, da du ja schon geschrieben hattest,
11025 Samples/Sekunde. Du kannst diese einfach multiplizieren und schon hast du eine längere Zeit, die unterstützt wird. Ich hatte 11024 * 2 genommen, das wären die 22048. Geht aber trotzdem. Die Funktion kannst du ja noch abändern:

Code:
....
If SOUNDIS()= -1
  Debug SOUNDCAPIN()
    *Sounds.c = AllocateMemory(11025*3) ; würde dann 3 Sekunden entsprechen
  MessageRequester("Aufnahme Soundcard","Aufnahme starten")
  SOUNDIN(*Sounds,11025*3)
  MessageRequester("Wiedergabe Soundcard","Wiedergabe starten")
  SOUNDOUT(*Sounds,11025*3)
  CreateFile(0,"Test.wav")
     WriteData(0,@Sounds,11025*3)
  CloseFile(0)
Else
    MessageRequester("PureFFT Fehler","PORT.DLL nicht gefunden")
EndIf

....


Die Deklarationen habe ich einfachhalber mit dem PBLibMaker erzeugt, den du hier im Forum vorfinden kannst. Evtl. müsste man noch einige Variablen anpassen.

Für die RS232 sind ja die Proceduren auch definiert.
Ob dort Strings vorkommen müssen, müsste man ausprobieren.
evtl. muss aber hier und da noch eine Anpassung wegen Strings etc. vorgenommen werden.

Wenn du die aktuell letzte PB-Version ab 4 hast, braucht man für RS232 keine extra port.dll, da diese Funktionen in PB schon vorhanden sind.

Gruß Falko

_________________
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 05.08.2010 12:20 
Offline

Registriert: 03.01.2005 11:36
Hallo Falko,

vielen Dan für deine Antwort.

Leider muss ich noch eine Frage nachschieben!

Wenn man das Programm startet, kommt noch eine Anzeig mit Infos über die Soundkarte. Kann man diese Info abschalten?

Warum kann man denn die WAV-Datei nicht mit dem Mediaplayer abspielen?

Grüße
Martin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 05.08.2010 12:24 
Offline

Registriert: 03.01.2005 11:36
Und noch eine Frage hinterher!!!

Und wo finde ich den PBLibMaker. Ich habe mit "PBLibMaker" gesucht, aber nichts finden können.

Martin


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Soundkarte mittels port.dll auslesen
BeitragVerfasst: 05.08.2010 13:34 
Offline

Registriert: 03.01.2005 11:36
Ich habes gefunden, wieso die Box mit der Meldung der Soundkarteneinstellungen kommt

SOUNDCAPIN
Die Soundkartenaufnahme-Eigenschaften werden in einer MessageBox
ausgegeben.
Parameter: keine
Rückgabe: keine

Grüße
Martin

PS.: Zuerst sollte ich alles lesen und dann schreiben :oops:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye