Features für die nächste Software Version

Hast du vielleicht irgendwo einen “off by one error”? Ich kann das in dem originalen Sketch nicht nachvollziehen:

Queue :
7 / 3 / 4 / 1 / 10 / 13 / 5 / 9 / 15 / 6 / 14 / 2 / 12 / 8 / 11 / 
Queue :
14 / 6 / 10 / 11 / 13 / 5 / 3 / 9 / 8 / 7 / 2 / 12 / 4 / 15 / 1 / 
Queue :
2 / 8 / 4 / 7 / 5 / 15 / 1 / 3 / 10 / 11 / 14 / 13 / 9 / 12 / 6 / 
Queue :
12 / 9 / 4 / 7 / 6 / 14 / 13 / 11 / 8 / 10 / 1 / 5 / 3 / 15 / 2 / 
Queue :
2 / 3 / 14 / 6 / 9 / 11 / 12 / 5 / 10 / 8 / 13 / 15 / 1 / 7 / 4 / 
Queue :
2 / 3 / 10 / 11 / 6 / 13 / 8 / 4 / 15 / 12 / 1 / 9 / 14 / 7 / 5 / 
Queue :
4 / 5 / 6 / 10 / 15 / 7 / 1 / 2 / 12 / 14 / 13 / 8 / 9 / 3 / 11 / 
Queue :
5 / 6 / 7 / 10 / 4 / 12 / 11 / 1 / 2 / 8 / 14 / 15 / 3 / 9 / 13 / 
Queue :
10 / 9 / 1 / 8 / 7 / 15 / 2 / 12 / 4 / 11 / 3 / 13 / 6 / 14 / 5 / 
Queue :
9 / 3 / 5 / 11 / 12 / 10 / 4 / 2 / 8 / 13 / 6 / 7 / 15 / 14 / 1 / 

Habe den Code isoliert und laufen so laufen lassen:

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(A1) + micros());

  uint16_t numTracksInFolder = 15;
  uint16_t firstTrack = 1;
  uint8_t queue[255];

  // Queue für die Zufallswiedergabe erstellen
  for (uint8_t x = 0; x < numTracksInFolder - firstTrack + 1; x++)
    queue[x] = x + firstTrack;
  // Rest mit 0 auffüllen
  for (uint8_t x = numTracksInFolder - firstTrack + 1; x < 255; x++)
    queue[x] = 0;
  // Queue mischen
  for (uint8_t i = 0; i < numTracksInFolder - firstTrack + 1; i++)
  {
    uint8_t j = random (0, numTracksInFolder - firstTrack + 1);
    uint8_t t = queue[i];
    queue[i] = queue[j];
    queue[j] = t;
  }
  Serial.println(F("\nQueue :"));
  for (uint8_t x = 0; x < numTracksInFolder - firstTrack + 1 ; x++) {
    Serial.print(queue[x]);
    Serial.print(" / ");
  }
}

void loop() {

}

Dein Queue Print hat auch 23 Slots, obwohl es nur 22 Dateien sind.

DANKE @stephan shame on me!!!
Habe das Problem gefunden, in der void playFolder()
fehlte

firstTrack = 1;

Muss da vielleicht mal doof was gelöscht haben,was ich mir gerade nicht erklären kann.
SORRY und danke das Du dir die Zeit genommen hast.

1 „Gefällt mir“

Keine Ursache. Dann kann ich meinen Test-UNO ja wieder wegpacken. :wink:

Wenn ich das hier richtig verfolgen konnte, ist Version 2.1 immer noch im DEV Status, oder?

Sorry, dass ich nochmal so genau nachfrage und es ist auch überhaupt nicht böse gemeint:)

Grüße!

EDIT: Wo finde ich das angesprochene neue Video auf Youtube? Habe gerad im Kanal von Thorsten Voß geschaut, da sehe ich kein neues?!

Ich habe die obigen Tests mit dem Stand d5d872b noch einmal wiederholt:

  1. Ist behoben.
  2. Ist behoben.
  3. Ist nicht behoben.
  4. Ist behoben.
  5. Ist nicht behoben.
  6. Beabsichtigt, ggf. feature request.
  7. Ist behoben.
  8. Kann ich nicht mehr reproduzieren.
  9. Ist nicht behoben.
  10. Ist behoben.
  11. Ist nicht behoben. (siehe 3.)
  12. Ist behoben.
  13. Beabsichtigt, ggf. feature request.
  14. Beabsichtigt, ggf. feature request.
  15. Beabsichtigt, ggf. feature request.
  16. Beabsichtigt, ggf. feature request.
  17. Ist nicht behoben.
  18. Ist nicht behoben. (siehe 3.)

Desweiteren ist mir aufgefallen, die Konsolenausgabe ist teils echt schwer zu verstehen, wenn man die FW nicht selbst programmiert hat. Es feuern so viele Events - teilweise wenn sie in Wirklichkeit gar nicht aufgetreten sind (z.B. kommt trotzdem === adminMenu() wenn man es über die Tasten versucht zu triggern aber es nur über eine Karte geöffnet werden kann). Das ist zwar erstmal nur ein Schönheitsfehler, aber in Hinblick auf User die ihren Output im Forum posten ist es schwer zu debuggen was nun genau passiert ist und was nicht nur anhand des Outputs. Dann stehen oft einfach Zahlen da, da weiß ich auch nich immer was die bedeuten. Usw.

Dann habe ich noch eine Frage und zwar, ist der Sleep Modifier die gleiche Funktion wie der Timer den man im Admin Menü setzt? Nein oder? Beide verwenden aber die gleichen Ansagen (960-965). Der Text deutet eher auf den Idle Timer hin den man schon immer im Admin Menü setzen konnte, passt aber nicht zum Sleep Modifier.

1 „Gefällt mir“

Vielen Dank fürs RE-testen @stephan!

  1. 0970_modifier_Intro.mp3 fehlt bei der Apple und Hohe Stimme. Bei der Google Stimme ist es dabei, allerdings nur Stille.

done

  1. Adminmenü->Eine Karte neu konfigurieren: Wenn man den Vorgang abbricht wird trotzdem (alles was man bis dahin ausgewählt hat) auf die Karte geschrieben. Bricht man zb. bei der Auswahl des Ordners ab, hat man automatisch eine Admin Karte erstellt.

done

  1. Adminmenü: Beim einstellen der 3 Lautstärken kann man minimal > maximal einstellen oder auch initial > minimal etc. Das führt dann teilweise zu komischen Effekten beim Lautstärke verändern.

done

  1. Adminmenü->Modifier: Es fehlt das Intro (siehe 4).

done

  1. mp3/0960_timer_intro.mp3|Nach wievielen Minuten Leerlauf soll der TonUINO ausgeschaltet werden? Du brauchst hierfür aber eine entsprechende n Schaltung.
  • Hier ist ein n zuviel.

done

  1. mp3/0970_modifier_Intro.mp3|
  • Hier fehlt der Text. Siehe 4.

done

Gibt es schon einen ungefähren Termin für die Version 2.1 :star_struck:

Lad dir die DEV. Es wird bis Release nichts mehr dazu kommen.

@stephan
Da ich gerade auch dabei bin habe ich mir die dev geladen. Klappt auch - Aber:

Wenn ich die // für 5 Buttons entferne kommt eine Fehlermeldung schon beim überprüfen:

collect2. Exe error: id returned 1 exit status

Ne Idee wo der Fehler liegt? Mir sagt das alles leider gar nichts :roll_eyes:

Edith: keine Ahnung warum, aber beim nächsten Versuch hat er sich beschwert das die Datei schon vorhanden ist. Hat dann auch die bearbeitete geöffnet obwohl ich die aus der zip genommen habe.
Datei umbenannt und dann klappte es…

Wollte ich gerade sagen. Ich kann den Fehler nicht nachvollziehen. Works for me.

Hi Thorsten,
gerade versuche ich diese Änderung zu testen:

aber in der aktuellen DEV kann ich das File nicht finden. Vielleicht hast Du einen Push vergessen?
TIA und viele Grüße Udo

Die Änderungen sind noch nicht alle Public.

Ich habe gerade die letzten Änderungen gepusht…

11 „Gefällt mir“

Folgende Kleinigkeit ist mir bei der aktuellen DEV aufgefallen:

  • Es gibt zwei Messages mit der Nummer 300 im advert-Ordner:
    0300_freeze_freeze.mp3 und
    0300_freeze_into.mp3 (typo into -> intro?)
1 „Gefällt mir“

Klasse Update, wo man die Liebe am Detail merkt! Ich freue mich total über die Admin- und die Modi-Karten!

Zwei Fragen/Anregungen:

  1. Das Admin-Menü wird aktuell nach 1s Drücken ausgelöst, da im Code die allgemeine Konstante LONG_PRESS verwendet wird. Ich fände es gut, hier eine neue Konstante einzuführen, damit man die Dauer für das Admin-Menü unabhängig bestimmen kann. Ich möchte eigentlich nur die Admin-Karte nutzen, aber für den “Notfall” finde ich das Drücken aller Tasten auch nützlich, jedoch würde ich das gerne auf 5-10s hochsetzen, damit das Kind da beim Rumspielen an den Knöpfen gar nicht erst versehentlich reinkommt. Sobald nämlich auffällt, dass da beim gleichzeitigen Drücken was passiert, wird das dann absichtlich noch oft passieren…
    Es ist nur eine kleine Änderung, aber dafür muss man dann bei Updates jedes Mal am Code schrauben, sondern nur die Optionen oben einstellen.

  2. Ich habe es ehrlich gesagt noch nicht ausprobiert, aber laut Video-Erklärung stoppt das Lied nach Ablauf des Sleep-Timers abrupt. Ich fände es schön, wenn es ausfaden würde (also z.B. über 5 Sekunden immer leiser wird und dann erst ausgeht), damit der Schlaf möglichst nicht gestört wird.

Und noch ein Hinweis für die Erzeugung der Message #301 mithilfe von Google Text-to-Speech und des create_audio_messages.py-Scripts:

Es funktioniert, wenn man folgende Änderungen vornimmt:

  • In der audio_messages_de.txt die Zeile
    Und Stopp!<break strength="medium">nicht bewegen...<break strength="medium">weiter geht's!
    ändert in
    Und Stopp!<break strength="medium"/>nicht bewegen...<break strength="medium"/>weiter geht's!

und

  • In der text_to_speech.py die Zeile
    'input': { 'text': text }
    ändern in
    'input': { 'ssml': '<speak>' + text + '</speak>' }

(Die Auswirkung auf Amazon Polly und MacOS-“say” konnte ich nicht ausprobieren mangels Mac und Amazon AWS CLI)

Edit: Ich habe das <speak></speak> aus der .txt ins .py-Script verschoben.

Eine Version die mit allen Diensten geht ist wohl nicht so einfach möglich. Das ist jetzt eben für Polly.

Ich hatte die Hoffnung das es geht, zumindest auch mit Amazon Polly. SSML ist ja vom W3C standardisiert. Und an Amazon wird es vom Script ja auch als'--text-type', 'ssml' übergeben.

So ich habe die 0300_freeze_freeze.mp3 gelöscht
Die audiomessages.txt habe ich auch neu gepusht - die SSML Tags sind erstmal raus

wichtig: die 0301_freze_freeze.mp3 muss noch aus den jeweiligen Einzeldateien zusammengebaut werden wenn man das selber machen möchte!

Danke an alle für das Feedback!

Sehr coole neue Funktionen mit den Modifieren. Find ich richtig gut.
Vielen Dank für Deine Mühe!