Seite 1 von 2

Funktionserweiterung beim Soundmodul

Verfasst: Freitag 5. Dezember 2008, 22:49
von compander
Hallo Abacom. Hallo Freunde.

Ein starkes Bauelement ist das Soundmodul. Ich nutze diese Ausgabe bei Grenzwertunter-/überschreitungen.
Da es Anwendungen gibt, wo auch (fast) zeitgleich solche Zustände vorkommen können, gibt es bei Einsatz mehrerer Module ein gewisses Chaos. Da es keine Koordination gibt.
Beispiel: an 4 Soundmodule ist jeweils ein Taster angeschlossen.
Nehmen wir an, dass jedes Soundelement 10 Sekunden dauert.
1. Die erste Taste symbolisiert das erste Ereignis. Die fallende Flanke löst die erste Wav-Ausgabe aus.
Die zweite Taste symbolisiert das zweite Ereignis. Wird diese kurz nach der ersten Taste gedrückt und ausgelassen, so wird die erste Waw-Ausgabe nicht zu Ende gespielt.
Sondern abgebrochen. Es gewinnt immer die zuletzt ausgelöste Taste.
2. Zu einem bestimmten Zeitpunkt kann es in einer Schaltung vorkommen, dass ein bestimmtes Ereignis die größte Wichtigkeit hat. Dieses Ereignis muss Vorrang vor allen anderen haben.

Ich stelle mir vor, dass das Soundmodul je einen (weiteren) Eingang und einen Ausgang bekommt.
Man verbindet jeweils den Ausgang mit dem nächsten Eingang..... (damit alle Soundmodule Kenntnis bekommen von:)
Das Soundmodul bekommt unter "Eigenschaften" die Funktionalität "Priorität" (von 0 = ausgeschaltet bis 99 = höchste Priorität).
Bem.: bis Priorität 50 wird eine aktive Waw-Datei immer ausgespielt. Ab Priorität 51 wird eine gerade aktive Wav-Datei abgebrochen, und die neue abgespielt.

Will man das derzeitige Soundmodul nicht abändern, so könnte man einen anderen Weg beschreiten.
Es gibt künftig ein neues Bauteil.
Diese hat mehrere Eingänge und Ausgänge. An den Ausgängen werden die derzeitigen Soundmodule angeschlossen.
An den Eingängen werden Logikpegel angeschlossen, die die Sounds auslösen sollen.
In "Eigenschaft" des Bauteiles werden die schon erwähnten Prioritäten eingetragen.


Herzlichen Gruß an Alle vom C :shock: mpander.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Samstag 6. Dezember 2008, 08:57
von thcweb
Hallo Compander,

das sollte doch auch jetzt schon möglich sein, halt nur mit einem größeren Aufwand. Du mußt einfach Verhindern das die fallende Flanke an das Soundmodul kommt, und erst nach Ablauf eines anderen Soundmodules die fallende Flanke weitergegeben wird.

:-) Happy Weekend

Thomas

Re: Funktionserweiterung beim Soundmodul

Verfasst: Samstag 6. Dezember 2008, 11:58
von compander
Hallo Thomas.
Danke für deine Hinweise. Ich fürchte, dass ist nicht so einfach.
Die fallende Flanke löst ja nur die Aktion aus.
Meine Soundausgaben haben ganz verschiedene Längen. Ich kenne keine Möglichkeit, wo das Ende der Ausgabe (automatisch) erkannt wird.
Könntest Du ein Beispiel konstruieren, wo Du deinen Beitrag praktisch belegen kannst?
Vielleicht habe ich da einen Denkfehler drinnen.
Abschließend möchte ich noch einmal betonen, dass mir daran gelegen ist, dass man nicht mit einem hohen Aufwand die beschriebene Funktionalität dann "doch noch irgenwie" erreicht, sondern dass ein einfacher User (wie ich) ein komfortables Bauteil einsetzen kann.
Herzlichen Gruß vom C :shock: mpander.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Montag 8. Dezember 2008, 08:57
von KAKTUS
Das was Compander schreibt macht schon Sinn. Ich hatte das Problem auch schon.
Ich wollte zu einem Projekt eine komfortable Sprachausgabe hinzufügen. Das geht mit dem Soundmodul problemlos, jedoch sollte die nächste Sprachansage erst ertönen nach dem Ende der vorherigen, und das geht nur mit riesigem Aufwand. Auch wollte ich keine Ansagen abwürgen, und eine angemessene Pause zwischen zwei Ansagen sollte auch noch sein. Ich muss bei jeder Ansage die Abspielzeit in eine Verriegelungsschaltung eintragen. Gleichzeitig muss die Schaltung Aufrufe weiterer Ansagen sich merken. Habs dann sein gelassen, war zuviel Aufwand und mir lief die Zeit davon, denn ich hatte zu dem Zeitpunkt noch andere Probleme.
Abschließend möchte ich noch einmal betonen, dass mir daran gelegen ist, dass man nicht mit einem hohen Aufwand die beschriebene Funktionalität dann "doch noch irgenwie" erreicht, sondern dass ein einfacher User (wie ich) ein komfortables Bauteil einsetzen kann.
Ganz meiner Meinung. Das betrifft auch andere Bereiche.

Vielleicht sieht Abacom eine Möglichkeit aus dem Soundmodul einen Ausgang herauszuführen der anzeigt ob die Wav Datei noch abspielt oder beendet ist (High/Low)?

Den Rest könnte eine ausgeklügeltes Makro lösen, was ich jetzt aber auch nicht aus dem Ärmel schüttel kann.
bis Priorität 50 wird eine aktive Waw-Datei immer ausgespielt.
Lösungsvorschlag: Auswerten des H/L Ausgangs
Ab Priorität 51 wird eine gerade aktive Wav-Datei abgebrochen, und die neue abgespielt.
Lösungsvorschlag: Ausgang H/L nicht auswerten ( so wie bisher )

Die Priorität müsste man im Makro lösen.

Aber ohne Ausgang am Soundmodul ist diese Probelmatik nicht sauber lösbar.
Ich wiederhole mich :cry: siehe viewtopic.php?f=26&t=845

Mal ehrlich: Ein fertiges Bauteil in PL wäre ja sehr nett, aber Anbetracht der vielen Anregungen in der letzten Zeit, sollten wir uns nicht überschaubare, kleiner Verbesserungen wünschen, mit Chance auf eine Umsetzung?

Re: Funktionserweiterung beim Soundmodul

Verfasst: Montag 8. Dezember 2008, 10:22
von abacom
Das ist unserer Meinung ein relativ 'individuelles' Steuerungsproblem, das sich mit dem Entwurf einer entspechenden Ansteuerungslogik sicherlich lösen lässt. Dass sich z.B. eine Sounddatei nicht selbst 'abwürgt', lässt sich leicht mit einem - nicht retriggerbaren - MonoFlop lösen, dessen Zeitkonstante auf die Spielzeit des WAV-Files eingestellt wird. Eine gegenseitige Verriegelung könnte man z.B. mit D-FlipFlops angehen. Für noch komplexere Anforderungen wäre dann vielleicht noch die Programmierung einer eigenen DLL anzuraten.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Donnerstag 18. November 2010, 18:13
von compander
Hallo Abacom. Hallo Freunde.

Mehrere Vesuche meine gewünschten Anforderungen führen selbst nach so einer langen Zeit bei mir nicht zum Erfolg.
Denke, nur ein neues Soundmodul mit einem Ausgang für "Ende der .wav-Datei ist erreicht" ist die konsequente und saubere Lösung des Problemes.

Bitte immer daran denken, dass eine beliebig lange Soundausgabe zuende gespielt werden soll.
Und optional eine andere Sounddatei alle anderen gerade gespielten Ausgaben unterbricht. Dies soll ausdrücklich von den bereits beschriebenen Priorität(en) abhängen.....

@Abacom: sehen Sie heute eventuell die Notwendigkeit für ein solches neues Bauteil anders, als vor etwa 2 Jahren?
@ Freunde: hat jemand eine Idee/Lösung, wie man die Anforderungen schon heute lösen kann?

Herzlichen Gruß vom C :shock: mpander.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Donnerstag 18. November 2010, 23:29
von JenserT
Hallo Compander,

wäre Dein Problem vielleicht mit dem Bauteil Medienwiedergabe lösbar?
Dort gibt es einen Ausgang, der die Abspielposition wiedergibt, damit könnte man das Ende der Datei erkennen.
Und es gibt einen Stop-Eingang, mit dem man das Abspielen beim Auftreten einer höheren Priorität beenden kann.
Nur die Prioritätslogik selbst müsste man noch mit einzelnen Logikbauteilen aufbauen.

Viele Grüsse
Jens.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Freitag 19. November 2010, 09:58
von GP Helli
Hallo aus Graz!
Das Bauteil "Medienwiedergabe" hat den Nachteil, dass er eine Menge Rechenpower braucht!

Auch ich würde eine Modifikation des Sound-Bauteils sehr begrüßen:
(wenn möglich "von aussen" Einstellbar)
1x spielen (one shot)
Schleife spielen (loop)
Run/stop indikator (digital out)

stop /reset
%Laufzeitanzeige
Level

LG
GP Helli

Re: Funktionserweiterung beim Soundmodul

Verfasst: Montag 22. November 2010, 08:56
von abacom
@GP Heli: Daran ist leider nicht zu denken. Programmtechnisch ist das Abspielen des WAV im Soundmodul ein
WIN-API-Aufruf, der keine derartigen Möglichkeiten bietet. Einmal gestartet übernimmt Window die Kontrolle.
Nur per Medienwiedergabe sind die gewünschten Funktionen implementierbar. und zum Teil ja auch schon vorhanden.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Montag 22. November 2010, 18:52
von GP Helli
OK Danke!
um eine .wav Datei zu stoppen werde ich auch weiterhin ein "stop.wav" verwenden
(einfach: eine .wav Datei 1sec mit Stille )

Gruß aus Graz
GP Helli

Re: Funktionserweiterung beim Soundmodul

Verfasst: Dienstag 23. November 2010, 20:56
von compander
Hallo Abacom.


So. Nun bin auch ich frustriert :!:
Sauer.



Ohne einen Ausgang, der das Ende des/der Waw-Files detektiert, wird ein gezieltes/geordnetes/gar priorisiertes Abspielen von Waw-Dateien auch künftig nicht möglich sein.
Ohne eine Rückmeldung wird man wohl auch keine geeignete Steuerschaltung realisieren können. (siehe Definitionen im ersten Beitrag)

Ist es alternativ nicht möglich, das Dateiende unter Nutzung weiterer Sachverhalte (z.B.: Dateigröße, unter Berücksichtigung desen Audioformates, o.ä) zu erkennen?



Hallo Freunde.
Ich würde mich freuen, wenn ein Mitglied mich mit einer derzeit machbaren Lösung eines Besseren belehren kann.
Mit Sound-Dateien, die unterschiedliche "Länge" haben! Vielleicht auch gleich das Prioritäten-Problem mit anpacken.
Davor habe ich echt Respekt!!!
(Bedauere. Mein Prio-Baustein für digitale Signale (!) ist leider nicht so toll)

Hallo Jens.
"Nur die Prioritätslogik selbst müsste man noch mit einzelnen Logikbauteilen aufbauen"
Leicht ausgesprochen. Schwer zu realisieren............. Bist Du wirklich anderer Meinung? Ich bitte dann um eine Beispiellösung.

Hallo Helli.
Das mache ich gelegentlich auch so. Und dann wird das höher priorisierte File abgespielt.
Unelegant? Dies ist brachiale Gewalt!!! Empfinde ich. Leider.
Führt leider auch nicht zu der ursprünglich angestebten Problemlösung.
Ich danke dir dennoch herzlich für deinen Vorschlag.
Schon deshalb, da dieses Thema wohl kaum jemanden interessiert.......

Gruß vom C :shock: mpander.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Mittwoch 24. November 2010, 12:04
von KAKTUS
Abacom schrieb
Nur per Medienwiedergabe sind die gewünschten Funktionen implementierbar. und zum Teil ja auch schon vorhanden.
Hi Compander,

schau dir den Medienplayer mal genau an. Ich hab da auch geschlafen und bis jetzt nicht geschnallt das der ja auch wunderbar .wav Files abspielt. Man hat eine Ende Erkennung, hat Start Stop Reset und kann ab einer bestimmten Position abspielen lassen.

Da wiederspricht sich Abacom selbst etwas.
Programmtechnisch ist das Abspielen des WAV im Soundmodul ein
WIN-API-Aufruf, der keine derartigen Möglichkeiten bietet. Einmal gestartet übernimmt Window die Kontrolle.
den in der Medienwiederabe wurde es ja bereits umgesetzt.

Man könnte sich jetzt theoretisch ein großes Wav mit allen Texten bauen z.B. mit http://audacity.sourceforge.net/?lang=de und könnte mit dem POS Eingang das Wort wählen was gesprochen werden soll, und mit POS Ausgang das Wort Ende auswerten. Das heißt über Multiplexer auf den Pos Eingang den Startwert, auf den Ausgang für den Analogvergleicher der die Wiedergabe stoppt den Stopp Wert !?

Oder halt für für jedes Wort einen Medienplayer.
Jetzt stört auf der Frontplatte nur noch das Anzeigefeld vom Medienplayer, was ja bei Audiofiles keinerlei Funktion hat.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Samstag 27. November 2010, 05:16
von compander
Hallo Kaktus.

Ich bin begeistert über deinen Optimismus.
Offensichtlich gelingt es dir mühelos und "schnell" mittels POS eine bestimmte Stelle exakt anzufahren.
Ebenso offensichtlich das exakte Ende eines Wortes.
Bei mir ist das Gegenteil der Fall.
Selbst wenn ich den Schieberegler hochauflösend, und über die gesamte Bildschirmbreite darstelle. Die Stufung ist einfach immer noch viel zu grob.
Präziser geht es mit num. Eingabefeldern. Allerdings ist der Zeitaufwand zur Positionierung jedoch noch einmal höher.
Übrigens: das Anzeigefenster des Mediaplayers würde mich nicht stören, wenn dort die (zoombare) Hüllkurve des Audios zu sehen wäre.
Allerdings reden wir nun fast schon von einem Audioeditor....................

Apropos reden:
Das Thema: "Funktionserweiterung beim Soundmodul" bezog sich absichtlich auf das Wort "Soundmodul".
Mit einem Audioeditor werden "Wavs" erstellt. Anfang und Ende nach Wunsch und exakt festgelegt. Geht sehr schnell.
Auch hier wäre es (jedenfalls theoretisch) denkbar, über aneinanderfügen von Worten eine "künstliche" Sprache zu entwickeln.



Hallo Abacom.

............. wenn das Soundmodul einen Ausgang (für "File-Ende") hätte....................

Leider kann ich auch nicht nachvollziehen, wieso der Mediaplayer mittels POS einen Ausgang hat, und das Soundmodul (leider) nicht.



Herzlichen Gruß vom C :shock: mpander.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Samstag 27. November 2010, 21:46
von - chris -
Hab mal ein eigenes Soundmodul programmiert.

Der Ausgang PLAY bleibt so lange auf High,
bis das Ende der wav Datei erreicht wird.
sound01.zip
(201.48 KiB) 348-mal heruntergeladen

Re: Funktionserweiterung beim Soundmodul

Verfasst: Samstag 27. November 2010, 22:37
von compander
Hallo chris.

Das sieht verdammt gut aus !
Dafür besten Dank.

(Lediglich die Notwendigkeit der Ausgänge INIT und NR habe ich bisher nicht begriffen.
Kannst Du dies ein wenig erläutern ?)

Gruß von C :shock: mpander.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Sonntag 28. November 2010, 08:40
von GP Helli
SUPER!!!!!!!!!!

liebe Grüße aus Graz
GP Helli

Re: Funktionserweiterung beim Soundmodul

Verfasst: Sonntag 28. November 2010, 15:42
von - chris -
DLL: sound01.dll

----------------

Eingänge:

PLAY: Beim Übergang von LOW nach HIGH wird die Sounddatei abgespielt.

$FILE: Name der Sounddatei (mit oder ohne Pfadname).

Ausgänge:

INIT: Bei erfolgreichen initialisieren der Sound-Programmierumgebung HIGH-Signal.

PLAY: HIGH-Signal während der Soundausgabe.

NR: Nummer des DLL-Bauteils im Projekt.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Freitag 10. Dezember 2010, 05:02
von compander
Hallo Chris.

Das funktioniert alles sehr gut. Nochmals: Danke.


Hallo Abacom.

Natürlich würde ich mich freuen, wenn die bisher vorgeschlagene Funktionserweiterung des Soundmoduls auch in PLE realisiert werden könnte.

Neues Detail:

Das Soundmodul akzeptiert ja nur "Wav"-Dateien.

Diese sind qualitativ sehr gut.
Allerdings sind sie auch sehr groß. I.d.R ein Vielfaches einer Projektdatei.

Weit verbreitet ist ja heutzutage das "mp3"-Format.
Der "Größenvergleichsfaktor" beträgt immerhin 10.

Kann man künftig darauf hoffen, dass man dies optional einstellen kann?

Herzlichen Gruß vom C :shock: mpander.

Re: Funktionserweiterung beim Soundmodul

Verfasst: Freitag 10. Dezember 2010, 20:40
von - chris -
DLL: sound02.dll

wav, mp3 und mid können abgespielt werden.

----------------

Eingänge:

PLAY: Beim Übergang von LOW nach HIGH wird die Sounddatei abgespielt.

STOP: Beim Übergang von LOW nach HIGH wird die Sounddatei gestopt.

$FILE: Name der Sounddatei (mit oder ohne Pfadname).

Ausgänge:

INIT: Bei erfolgreichen initialisieren der Sound-Programmierumgebung HIGH-Signal.

PLAY: HIGH-Signal während der Soundausgabe.

NR: Nummer des DLL-Bauteils im Projekt.
sound02.zip
(13.8 KiB) 314-mal heruntergeladen

Re: Funktionserweiterung beim Soundmodul

Verfasst: Freitag 10. Dezember 2010, 21:11
von compander
Hallo chris.

Kann es sein, dass Du bei der DLL noch eine klitzekleine Unzulänglichkeit drinnen hast?
Für T2 und T4 fehlt jeweils ein DLL-Eingang/Anschluß. Funktioniert bei mir derzeit leider noch nicht.
Mache bitte einen Kontrolldownload. Zum Nachvollziehen.

Ansonsten freue ich mich über deine extrem rasche Antwort/Lösungsvorschlag. Echt!

Herzlichen Gruß von C :shock: mpander.