AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Sound-Ausgabe nach Kanal (links/rechts)
Thema durchsuchen
Ansicht
Themen-Optionen

Sound-Ausgabe nach Kanal (links/rechts)

Ein Thema von Accipiper · begonnen am 5. Jul 2012 · letzter Beitrag vom 6. Jul 2012
Antwort Antwort
Accipiper

Registriert seit: 18. Jun 2012
5 Beiträge
 
#1

Sound-Ausgabe nach Kanal (links/rechts)

  Alt 5. Jul 2012, 19:52
Hi, ich will bei einem Klick mit der Mittleren Maustaste eine Ton auf dem linken Kanal ausgeben und bei einem Klick mit der rechten Maustaste einen Ton auf dem rechten Kanal.


Das mit dem Maustasten klappt auch, aber ich weiß nicht, wie ich die einzelnen Kanäle ansprechen kann. Kann mir jemand helfen?
Ausgabe des Tons läuft derzeit so:

Code:
Windows.Beep(900, 1000);
Hab schon versucht so was zu finden, leider vergeblich. Danke schon mal für eure Hilfe.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Sound-Ausgabe nach Kanal (links/rechts)

  Alt 5. Jul 2012, 20:50
Via Windows-Beep eher überhaupt nicht, da dies eine bestehende WAVE Datei abspielt, die selbst auch schon stereo sein kann. Das einfachste wäre es, wenn du selber zwei Wave-Dateien machst, eine mit Ton nur links, eine rechts, und dann mittels sndPlaySound() die jeweils entsprechende abjodeln.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#3

AW: Sound-Ausgabe nach Kanal (links/rechts)

  Alt 5. Jul 2012, 23:42
Via Windows-Beep eher überhaupt nicht, da dies eine bestehende WAVE Datei abspielt, die selbst auch schon stereo sein kann. Das einfachste wäre es, wenn du selber zwei Wave-Dateien machst, eine mit Ton nur links, eine rechts, und dann mittels sndPlaySound() die jeweils entsprechende abjodeln.
"Via Windows-Beep eher überhaupt nicht, da dies eine bestehende WAVE Datei abspielt"
Das ist falsch! Beep.sys erzeugt den Ton.

Das funktionierte bis WIN XP fast wie zu DOS-Zeiten:

Code:
MakeBeep1 proc dwPitch:DWORD

    ; Direct hardware access

    cli

    mov al, 10110110y
    out 43h, al

    mov eax, dwPitch
    out 42h, al

    mov al, ah
    out 42h, al

    ; Turn speaker ON

    in al, 61h
    or al, 11y
    out 61h, al

    sti

    DO_DELAY

    cli

    ; Turn speaker OFF

    in al, 61h
    and al, 11111100y
    out 61h, al

    sti

    ret

MakeBeep1 endp
Danach wurde es etwas komplizierter, aber dafür ist der Ton schöner.

Geändert von hathor ( 6. Jul 2012 um 00:11 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Sound-Ausgabe nach Kanal (links/rechts)

  Alt 6. Jul 2012, 01:06
Na gut. Sagen wir es so: In Systemen die noch einen Pipser haben, wird das darüber ausgegeben - so lange man nicht Vista oder höher einsetzt. In den anderen Fällen leitet Beep() auf das angesprochene Wave-File um. Effektiv bleibt die Aussage aber bestehen: Der Beeper wird auch kaum ein Stereosignal trällern

(War mir auch bekannt, aber ich hielt pre-Vista für nicht mehr so arg relevant hier, zumal der TE ja den Ton schon über seine Soundkarte zu bekommen scheint.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium ( 6. Jul 2012 um 01:08 Uhr)
  Mit Zitat antworten Zitat
Accipiper

Registriert seit: 18. Jun 2012
5 Beiträge
 
#5

AW: Sound-Ausgabe nach Kanal (links/rechts)

  Alt 6. Jul 2012, 14:44
Okay, es sollte schon auf allen Systemen laufen. Das mit dem Beep für rechts/links hab ich jetzt (die Audiodatei).

Wenn ich die allerdings per sndPlaySound() oder PlaySound() einbinden will, sagt mir Delphi Undeclared identifier 'PlaySound'.

Kann mir jemand helfen? Und reicht es, wenn ich in die Klammer den Dateinamen inklusive Endung schreiben, wenn die Datei im selben Verzeichnis liegt?

So, es hat sich geklärt. Ich musste noch mmSystem in der USES-Sektion einfügen.


Vielen Dank noch mal für eure Hilfe. Auf euch ist ja echt immer verlass.

Geändert von Accipiper ( 6. Jul 2012 um 15:09 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:25 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