Features für die nächste Software Version


#72

“fast” fertig :smiley:

Beta kann am WE starten denke ich


#73

ich habe mal den aktuellen Stand meiner Anpassungen in den DEV Branch auf github geladen, bitte noch nicht auf einen echten TonUINO spielen sondern maximal mal auf nem Breadboard probieren…

was gerne schon getestet werden darf:

  • Lautstärke über Admin menu (alle drei buttons gleichzeitig drücken um es zu starten wenn keine Wiedergabe läuft)
  • Spezialmodus Von-Bis (Hörspiel, Album und Party) um in einem Ordner mehrere Alben zu ermöglichen
  • Partymodus hat nun eine Queue und spielt jeden Track nur 1x (dann fängt es wieder von vorne an - Vorteil: man kann nun auch zurück springen!)

#74

Hallo Thorsten, das sieht vielversprechend aus.
Ich sehe, Du hast auch schon einen Shutdown-Timer vorgesehen.
Die Queue für den Party-Modus ist auch super, ich würde dann aber nach einem Durchlauf stoppen, bzw. dies parametrisierbar machen.


#75

Dann lieber parametrisierbar.

Denn Keine party rockt wie ne TonUINO-Party, weil ne TonUINO-Party nicht stoppt. :man_dancing:


#76

Ich dachte eher an das Nerven-Gerüst der Eltern ; )


Thema aufgeteilt, #78

6 Beiträge wurden in ein neues Thema verschoben: Quellcode Fragen


#79

Hallo @Thorsten,
habe mir Deine neue Beta-Version (2.1) genau angeschaut und hätte drei Fragen:

  1. Den Zufallsgenerator hast Du von A0 auf A7 gelegt, weil A0 wegen dem Pull-Up-Widerstand nicht mehr so “schwankt”?

  2. Im Voice-Menü ist bei Vor und Zurück ein Zeilendreher drin. Beabsichtigt?

    else if (upButton.wasReleased()) {
       if (!ignoreUpButton) {
         returnValue = min(returnValue + 1, numberOfOptions);
         mp3.pause();
         mp3.playMp3FolderTrack(messageOffset + returnValue);
         if (preview) {
           waitForTrackToFinish();
           if (previewFromFolder == 0)
    

UND

else if (downButton.wasReleased()) {
      if (!ignoreDownButton) {
        returnValue = max(returnValue - 1, 1);
        mp3.pause();
        mp3.playMp3FolderTrack(messageOffset + returnValue);
        waitForTrackToFinish();
        if (preview) {
          if (previewFromFolder == 0)
  1. Könnte man die folgenden 3 Button-Pin-Zeilen nicht auch weglassen, da sie über die “Button”-Funktion der externen Bibliothek schon definiert wurden?

    pinMode(buttonPause, INPUT_PULLUP);
    pinMode(buttonUp, INPUT_PULLUP);
    pinMode(buttonDown, INPUT_PULLUP);


Quellcode Fragen
#80

Mir sind gerade beim Testen der Beta-Version (2.1) noch drei Kleinigkeiten aufgefallen:

  1. Im Party-Modus wird bei langem Drücken nicht die Track-Nummer, sondern die Queue-Nummer angesagt (also 1,2,3,…)
    Könnte man vll. so lösen:

    if (isPlaying() && myCard.mode != 3)
    mp3.playAdvertisement(currentTrack);
    else if (isPlaying() && myCard.mode == 3)
    mp3.playAdvertisement(queue[currentTrack - 1]);

  2. Der Standby-Timer startet nicht, wenn man den TonUINO nur anschaltet (ohne Karte/Abspielen)

  3. Der Standby-Timer startet im Album-Modus beim letzten Track und Drücken der Up-Taste ungewollt.


Quellcode Fragen
Features für die nächste Software Version
#81

Super! Vielen Dank!!!

Habe ich (hoffentlich) gefixt und pushe gleich eine neue Version

Was noch getestet werden darf: Spezial-Modus von-bis und das neue Massenerstellen von Einzelkarten…


#82

Danke Thorsten für die schnellen Fixes!

Punkt 2 (Standby-Timer startet nicht) funktioniert jetzt (er sagt allerdings, dass die Funktion isPlaying() an dieser Stelle noch unbekannt ist.)
Allerdings stoppt jetzt die ganz normale Wiedergabe auch nach der eingestellten Zeit - ich verstehe nur nicht ganz warum??

EDIT: also der Bugfix zu 2. war kontraproduktiv. Den sollten wir zurücknehmen und dafür in das if-Statement
if (myCard.cookie == 322417479 && myCard.folder != 0 && myCard.mode != 0)

noch ein disablestandbyTimer(); einfügen.


#83

Habe nochmal was gefixt… sollte nun passen.


#84

Super, jetzt funktioniert alles was ich zur späten Stunde noch testen konnte.

Das Einzige was mir noch aufgefallen ist, dass jetzt die Lautstärke-Anpassung nicht mehr smooth funktioniert (zumindest während des Abspielens von Musik).
Wenn man länger gedrückt hält, “verhaspelt” sich der Player leicht.
Woran könnte das liegen?


#85

@Thorsten, ich habe auch mal mit der neuen Dev Version getestet, aktueller stand von heute 14:30. Keine Ahnung, ob das hier der richtige Thread ist. Falls nicht, sorry.

Mir ist folgendes aufgefallen:
Beim Konfigurieren einer Karte in einem Modus, der die Auswahl bestimmter Tracks erfordert, muss man sehr vorsichtig mit dem Drücken sein. Drückt mann zu schnell oder zu lange, hängt sich der Player auf. Man muss abwarten bis die Nummer angesagt wurde und der Track spielt, erst dann darf der nächste Tastendruck erfolgen. Wenn man Track 230 bis 250 konfigurieren möchte, nimmt das recht viel Zeit in Anspruch :wink: .

Nachdem eine Karte konfiguriert wurde, der Modus scheint dabei keine Rolle zu spielen, erscheint in der Konsole:

=== writeSettingsToFlash()

Danach passiert nichts mehr under Player liest auch keine Karten mehr ein.
Wenn man die Knöpfe drückt, dann reagiert der Previous Track Knopf noch und es spielt dann der vorherige Track. Die Play/Pause Taste macht nur noch Pause, ohne Debug Ausgabe, aber ein erneuter Druck startet kein Play mehr. Die Next Track Taste reagiert gar nicht.

Das erscheint in der Konsole:

=== writeSettingsToFlash()
Spezialmodus Von-Bis: Album ist aktiv -> vorheriger Track
Spezialmodus Von-Bis: Album ist aktiv -> vorheriger Track
Spezialmodus Von-Bis: Album ist aktiv -> vorheriger Track
Spezialmodus Von-Bis: Album ist aktiv -> vorheriger Track

Ein Reset behebt das Problem und die zuvor programmierte Karte funktioniert dann auch.

Wenn man z.B. die Lautstärkenfunktionen aus dem Admin Menü genutzt hat, tritt das gleiche Problem mit den Knöpfen auf. Hier kann man allerdings einfach eine Karte neu lesen und danach funktionieren die Knöpfe wieder wie sie sollen.

Den Spezialmodus “Massenerstellen von Einzelkarten” habe ich auch getestet (mit 13 Karten - mehr habe ich zur Zeit noch nicht) und konnte keine Probleme feststellen. Nach dem Anlernen der letzten Karte konnte man auch noch Karten lesen. Nicht wie bei dem oben beschriebenen Problem von Admin Menü Funktion 1.

Vielen Dank für deine Entwicklungsarbeit!


Quellcode Fragen
Features für die nächste Software Version
Quellcode Fragen
#86

Ich hätte noch eine Anregung für den „Spezialmodus Von Bis“.
Es wäre klasse, wenn ein langer Druck auf Play Taste die Nummer des Tracks in Relation zum Start Track Ansagen würde.
Wenn ich also die Karte als 181 bis 211 definiert habe und den dritten Track des Albums abspiele, dann lautet die Ansage jetzt 184 und nicht 3.
Vielleicht könnte man in diesem Modus einfach den Starttrack vom aktuellen Track abziehen und das Ergebnis für die Ansage nutzen?


#87

Danke euch fürs Testen! Mal sehen ob ich gleich nochmal was am Code mache… sonst aber in den nächsten Tagen.


#88

OK, ich glaube das konnte ich einfach fixen… Rest folgt :wink:


#89

Hallo, ich fände es ganz sinnvoll, wenn man die Karten über die ser. Schnittstelle programmieren könnte, ebenso wie löschen bzw. einzelne Dateien von der Karte spielen: Würde ungefähr so aussehen:
E (enter) löscht die aufgelegte Karte
W - beschreibt die Karte anhand der bekannten Parameter im Sourcecode
P - spielt den Track / Ordner, so als hätte man eine Karte aufgelegt
Ich möchte z.B. viele Karten mit Tierbildern erstellen, die, wenn man sie auflegt, entweder die Tierstimme wiedergeben - oder - einen Satz sprechen: Das ist ein Vogel (z.B.) - alternativ könnte man das noch in einer Fremdsprache aufzeichnen - This is a bird (z.B.).


#90

Hmmm… das ist schon irgendwie recht speziell… was ich eingebaut habe ist der Modus um Karten für einen kompletten Ordner zu erstellen… musst sie also nur in der richtigen Reihenfolge auflegen.

Das Menü alternativ auch per serieller Schnittstelle ansprechbar zu machen hatte ich schon - daher steht aktuell schon im Debug wieviele Optionen es gäbe.

Edit: das Voicemenü kann jetzt per Tastatur bedient werden!


#91

habe ich so eingebaut


#92

Eigentlich sollte man ja wenn man lange gedrückt hält schneller Springen können… ich glaube ich habe da was gefunden… es wurde 2x waitForTrackToFinish() hintereinander aufgerufen was dann nen Deadlock…