App: Morse-Generator [kostenlos]

Willkommen!

Wenn du im Nexave-Forum mitmachen möchtest, schreib an community@nexave.de. Wir haben die Registrierungsfunktion in unserem Diskussionsforum nämlich deaktiviert, weil sich praktisch nur noch Spammer und Werbebots registriert haben. Per E-Mail sind wir dir gern behilflich, einen Account anzulegen.
  • Nachdem es Ende August immer noch Freiraum in der Platzierungsliste des laufenden PDK-Wettbewerbs gab, habe ich mich sehr, sehr spät entschlossen noch eine Fun-App zu schreiben um doch noch an diesem Wettbewerb teilzunehmen.
    Dummerweise lag das Programm dann sehr lange bei Palm rum, wohl aus Kapazitätsgründen war eine Freischaltung nicht eher möglich, so das die App erst diese Woche im AppCatalog veröffentlicht wurde. Damit sind die Chancen auf einen möglichen Gewinn wohl inzwischen gen Null oder drunter gesunken.


    Dennoch würde ich mich freuen, wenn ihr die App runterladet, ausprobiert und eure Meinung hier äußert. Evtl. ist ja noch die eine oder andere Verbesserung am Programm möglich und machbar.


    Morse-Generator übersetzt den eingegebenen Text in den nostalgischen Morse-Sound aus der Geschichte der Funkübertragungen. Noch heutzutage werden Morsezeichen im Amateurfunk und automatischen Funkbaken benutzt. Unterstützt werden die Buchstaben A-Z, die Ziffer 0-9 und die Sonderzeichen .,+@=()?-/#
    Mit der Taste SYM kann der Notruf SOS normgerecht erzeugt werden. Die Ausgabe erfolgt über den Lautsprechener des Palm-Pre, die Geschwindigkeit ist in 5 Stufen von 5WPM bis 20 WPM einstellbar.



    Viel Spaß beim Ausprobieren.


    Viele Grüße
    Jörg

  • Super Idee! Viel Erfolg :)


    Besten Dank!
    Dir natürlich auch maximale Erfolge, vor allem dass du in den wirklich interessanten Rängen noch bis zum Schluss durchhältst.
    Beim SDK-Contest waren am Ende auch alle reichlich gaga, ich habe im Urlaub vom Ausland aus beobachtet, wie meine App (Mond-Info) jeden Tag ein paar Plätze verloren hat und ich nichts machen konnte. Und dann hatte es zum Glück doch noch ganz knapp gereicht.


    Viele Grüße
    Jörg

  • Cool wäre noch, wenn der Morse-Code auch optisch angezeigt wird (.--.-..- usw.)


    danke für's Feedback.


    Solch einen Ticker habe ich auch noch vor mit reinzubasteln. Vorher muss aber erst mal der Stop-Button gehen (den gibts nämlich schon als Grafik). Das ist erstmal ganz wichtig, da da Bewertungen dran hängen.
    Und, solange die App gefällt und runtergeladen wird wie zur Zeit, da macht es auch Spaß zu entwickeln.


    Viele Grüße
    Jörg

  • Sehr cool wäre ein Gegenstück dazu, also quasi ein Empfänger, der die Töne auffängt und in Schrift umwandelt.... Wird wohl erst gehen, wenn Palm mal die Mikro-Api freigibt...
    BTW,
    wie ist das eigentlich wohl in der App "Zcorder" gelöst? Also, wenn die Mikro-Api noch nicht freigegeben ist?


    Sabro

  • Dir natürlich auch maximale Erfolge, vor allem dass du in den wirklich interessanten Rängen noch bis zum Schluss durchhältst.
    Beim SDK-Contest waren am Ende auch alle reichlich gaga, ich habe im Urlaub vom Ausland aus beobachtet, wie meine App (Mond-Info) jeden Tag ein paar Plätze verloren hat und ich nichts machen konnte.


    Danke sehr. Ich weiß, ich mach mir da keine Illusionen.. wird hart.

  • Sehr cool wäre ein Gegenstück dazu, also quasi ein Empfänger, der die Töne auffängt und in Schrift umwandelt.... Wird wohl erst gehen, wenn Palm mal die Mikro-Api freigibt...


    naja, ohne Mikro geht es nicht, das ist korrekt.
    Aber auch mit Mikro wird's ein hartes Stück Arbeit, da man ja nicht unbedingt immer einen maschinengenerierten Stream mit einer festen Geschwindigkeit erwarten kann. Das Programm muss adaptierend und fehlertolerant sein und das bedeutet schon einen hohen Aufwand. Mal sehen....


    Viele Grüße
    Jörg

  • Aber auch mit Mikro wird's ein hartes Stück Arbeit, da man ja nicht unbedingt immer einen maschinengenerierten Stream mit einer festen Geschwindigkeit erwarten kann. Das Programm muss adaptierend und fehlertolerant sein und das bedeutet schon einen hohen Aufwand. Mal sehen....


    Gar nicht unbedingt.. man kann ja mit gewisser Toleranz kurz und lang definieren, das sollte dann funktionieren. Nach einer gewissen Zeitspanne in Millisekunden wird dann das vorherig aufgezeichnete verworfen und von neuem interpretiert, oder natürlich sobald ein Buchstabe erkannt wurde. Das wäre der Renner.. das Problem sehe ich eher nicht in der Länge der Sounds, sondern wie man diese erkennt, also das sound processing.

  • Gar nicht unbedingt.. man kann ja mit gewisser Toleranz kurz und lang definieren, das sollte dann funktionieren. Nach einer gewissen Zeitspanne in Millisekunden wird dann das vorherig aufgezeichnete verworfen und von neuem interpretiert, oder natürlich sobald ein Buchstabe erkannt wurde. Das wäre der Renner.. das Problem sehe ich eher nicht in der Länge der Sounds, sondern wie man diese erkennt, also das sound processing.


    Es gibt schon ein paar Ansätze sowas zu machen. Durch den sehr breiten Geschwindigkeitsbereich (bei 20WPM ist ein Punkt 60ms, ein Strich 180ms; bei 5WPM ist ein Punkt 240ms, ein Strich 720ms) kommst du aber mit einer festen Definition selbst mit Toleranz nicht weit. Habe mir aber diesbezüglich vor ein paar Tagen schon mal ein paar Gedanken gemacht, vielleicht gibt's ja noch in diesem Jahr da was von mir ;)


    Viele Grüße
    Jörg

  • Schön fände ich, wenn die Töne etwas realitischer nach altem Morsefunk klingen würden.
    Wie im Film und so. Vermutlich wisst ihr, was ich meine.


    erstmal danke für das Feedback.


    Ehrlich gesagt weiß ich aber nicht was du genau meinst. Die Längen der Töne und Pausen entsprechen dem ITU-Standard. Die Frequenz ist 800Hz. Drüber gestülpt über jeden Ton ist eine spezielle Hüllkurve, damit der Pre-Lautsprecher nicht oder nur ganz wenig knackt. Mittlerweile habe ich von mehreren Funkamateuren das Feedback bekommen, dass der Ton gut wäre.


    Was fehlt jetzt deiner Meinung nach? Etwas Rauschen, Pfeifen im Hintergrund? Bitte genau beschreiben oder vielleicht haste nen Link auf ne Tondatei.


    Viele Grüße
    Jörg

  • Ich vermute er meint einen eher "nostalgischen" Ton, mit etwas rauschen zum Beispiel.


    Das wird Sukram sicher gleich noch näher erläutern, nur noch eine Idee von mir aus der Erfahrung mit meiner App: sowas macht sich sicher gut als Option. Einen Schalter für einen "Nostalgie-Modus" oder so ähnlich ;) Wobei ich persönlich das jetzt nicht so bräuchte.

  • Hallo Sukram,


    vielen Dank für die Beispiele. Ich glaube nun zu wissen was du meinst.


    Man sieht aber schon an den Beispielen, dass es den Standard-Morseton nicht gibt. Im ersten Beispiel (elbug) ist es ein relativ tiefer Ton (vielleicht 600-700Hz), im zweiten Beispiel ein höherer Ton zu dem noch das Klappern der echten Taste hinzukommt.
    Ich werde mal, wenn die Sachen, die auf dem Plan stehen fertig eingebaut sind, auch noch über eine umschaltbare Tonhöhe nachdenken. Es muss nur dann für jede Tonhöhe immer der komplette Set, das sind für 5 Geschwindigkeiten 9 Wav-Dateien generiert und im Prinzip auch eingelesen werden. Das bläht die ganze Geschichte auf und verzögert den Startvorgang. Mal gucken, ich möchte nichts versprechen.


    Achso, ursprünglich wollte ich einfach eine gesampelte Tondatei nehmen und je nach Tonlänge durch ein- und ausschalten die Zeichen erzeugen. Das geht auf dem Pre nicht, da dann beim Abschalten des Tons sehr unangenehme Knackgeräusche (wahrscheinlich durch Oberwellen) entstehen. Erst das Abspielen eines einzeln generierten Tons mit einer entsprechenden Hüllkurve brachte ein vernünftiges Ergebnis.


    Viele Grüße
    Jörg

  • Es muss nur dann für jede Tonhöhe immer der komplette Set, das sind für 5 Geschwindigkeiten 9 Wav-Dateien generiert und im Prinzip auch eingelesen werden. Das bläht die ganze Geschichte auf und verzögert den Startvorgang. Mal gucken, ich möchte nichts versprechen.


    Wieder, nicht unbedingt ;) Du solltest nur die Mix_Chunks laden die du auch wirklich benötigst, dann gehts schneller. Wenn per Schalter gewechselt wirt, kannst du Mix_FreeChunk() nutzen und die anderen laden die benutzt werden. Bei mir geht das Laden der WAVs eigentlich recht schnell.

    Achso, ursprünglich wollte ich einfach eine gesampelte Tondatei nehmen und je nach Tonlänge durch ein- und ausschalten die Zeichen erzeugen. Das geht auf dem Pre nicht, da dann beim Abschalten des Tons sehr unangenehme Knackgeräusche (wahrscheinlich durch Oberwellen) entstehen. Erst das Abspielen eines einzeln generierten Tons mit einer entsprechenden Hüllkurve brachte ein vernünftiges Ergebnis.


    Nutzt du Mix_Chunks? Bei mir knackt da gar nichts! Ansonsten könnest du versuchen die Chunks per sehr schnellem Fade Out zu stoppen, das ist sanfter.

  • Wieder, nicht unbedingt ;) Du solltest nur die Mix_Chunks laden die du auch wirklich benötigst, dann gehts schneller. Wenn per Schalter gewechselt wirt, kannst du Mix_FreeChunk() nutzen und die anderen laden die benutzt werden. Bei mir geht das Laden der WAVs eigentlich recht schnell.


    im Moment bin ich so bei ner viertel bis halben Sekunde, das ist OK. Ich habe nur Apps gesehen, die im Bereich von mehreren Sekunden starten, was mir persönlich überhaupt nicht gefällt. Danke für den Tip mit den Mix_FreeChunk().


    Zitat

    Nutzt du Mix_Chunks? Bei mir knackt da gar nichts! Ansonsten könnest du versuchen die Chunks per sehr schnellem Fade Out zu stoppen, das ist sanfter.


    Das Knacken kommt nur, wenn man einen 100% Sinuston (in dem Fall mit 800Hz) in kurzen Abständen in kurzer Zeit auf 0 bringt. FadeOut vom Mixer funktioniert irgendwann zwar auch, nur ist der Ton dann nicht mehr verwendbar, da das Klangbild verfälscht wird. Ich habe als funktionierenden Workaround die Töne alle mit einem Hilfsprogramm generiert und mit einem sehr kurzen FadeIn und einem etwas längeren FadeOut versehen. Ist zwar umständlich aber ich fand das Ergebnis in Ordnung.


    Viele Grüße
    Jörg

  • im Moment bin ich so bei ner viertel bis halben Sekunde, das ist OK. Ich habe nur Apps gesehen, die im Bereich von mehreren Sekunden starten, was mir persönlich überhaupt nicht gefällt. Danke für den Tip mit den Mix_FreeChunk().


    Stimmt, so kleine WAVs sind eigentlich auch kein Problem, auch nicht wenn es ein paar mehr sind. Eigentlich dauert das Laden von vielen Grafiken lange.

    Ich habe als funktionierenden Workaround die Töne alle mit einem Hilfsprogramm generiert und mit einem sehr kurzen FadeIn und einem etwas längeren FadeOut versehen. Ist zwar umständlich aber ich fand das Ergebnis in Ordnung.


    Inwiefern verfälscht das die Töne? Ein Fade-in oder -out über SDL_Mixer macht doch eigentlich auch nichts anderes als das was du im hilfsprogramm machst, nur dass du die Länge flexible im Programm varriieren kannst. Aber du machst das schon ;) Gerade wenn es auf so präzise Längen wie bei dir ankommt ist das nochmal eine andere Geschichte als einfach nur Sounds zu spielen.

  • Inwiefern verfälscht das die Töne? Ein Fade-in oder -out über SDL_Mixer macht doch eigentlich auch nichts anderes als das was du im hilfsprogramm machst, nur dass du die Länge flexible im Programm varriieren kannst.


    Ich brauchte einen Fader mit einem FadeIn von ca. 5ms und FadeOut von 10ms. Das kann der Mixer nicht, der scheint mir mehr so für Ein-/Ausblenden im Sekundenbereich gedacht zu sein. Wenn man den Parameter groß genug wählt, dass man überhaupt nen Unterschied hört, dann bleibt von einem Punkt bei 20WPM (60ms) fast nichts mehr über.


    Viele Grüße
    Jörg