AllYarnsAreBeautiful/ayab-desktop

[BUG] Incorrect sounds/display at the end of a single repeat

Opened this issue · 3 comments

AYAB software version: 0.99 RC2
Computer/OS: Windows 7
Knitting machine: KH910
AYAB hardware: Interface or shield

When the Infinite Repeat box is unchecked, there's a specific sequence to guide the user through the last couple of rows. The current functionality is correct, but the associated sounds are not, they don't match up to the text prompts. Either the sounds or the text need to change.
When I first looked at this I thought it was the long sound that had gone missing, but on deeper investigation there is a new sound that I maybe like better, it just needs to be a bit beefier and have a text change to match the new sequence.

Steps to reproduce the behavior:

  1. Open the Triangles sample. It is 10 rows.
  2. All settings on default, the important one is that Infinite Repeat is unchecked.
  3. Start on the left and knit as usual for 8 rows, noticing the end-of-row sounds from the hardware's buzzer and the "ding" from computer's speakers.
  4. Slow down for rows 9 and 10 and observe carefully.

Expected: (For K and L carriage. G may be different.)
Take the carriage across for row 9, and as you turn around there's the usual EOR sounds, [Edit: no, the EOR sound from the computer is different.] and the display changes to Row 10 as usual. (It is about to do the selection for row 10, so you'll need to actually knit two more passes for Fair Isle.)
This is the place to show a warning that you're almost finished, and a warning sound. (It does this)
The Row 10 text should remain as you bring the carriage across for row 10.
Now there's no more selection to do, but you need to knit "Row 11". Row 11 should unselect all needles to B.
If we still want the double-beep sound, it would go here at the end of row 10 (beginning of row 11) consistent with warning you as you turn around. But it’s only one pass after the previous sound.
Alternatively, now that there's a different warning sound from the computer as you turn between 9 and 10, I'd be OK with doing away with the old double-beep warning sound (and changing the text accordingly.) Beef up the sound that now happens as the warning message is posted, possibly repeat it in the hardware buzzer, and rewrite its text.

Actual:
Observing at the turnaround between 9 and 10:

  • there's the usual EOR sound from the buzzer (OK)
  • no EOR sound from the computer (this is OK)
  • the text for "Row 10/10" flashes briefly, then it disappears
  • the "Image Transmission finished. Knit until you hear the double-beep sound" warning appears
  • along with a different sound from the computer.
    I'm OK with this so far. This is the correct time for this to happen, and having the computer do a new sound here is good. Maybe the buzzer should sound as well?
    But it would be nice if Row 10/10 could continue to be displayed as you knit across, as in previous rows.
    Now bring the carriage across to select row 10 and stop at the end:
  • the selection has happened as usual (OK)
  • there's an EOR sound from the buzzer (OK)
  • but no sound from the computer. (The long double-beep used to happen here. If we remove the double-beep it should be a single beep instead.)
    Take the carriage across to knit "row 11"
  • it selects all needle to B. (Correct)
  • no sounds from either the buzzer or the computer. (Expected, it has finished its job at the end of row 10.)

For reference:
How did Brother handle this? KH930 native does this:
TL;DR: In a 10-row pattern a warning sound happens as you turn around after row 9 and are about to select row 10.
In detail:
As with AYAB, the row numbers on the display are those of the selection that is happening, ignoring the fact that the actual knitting is a row behind.
There is no single repeat function as such, it will always select row 1 of the next repeat; the user has to know to not knit pattern row 1 again even though it has selected; but it does have a system to warn you.
There's no end-of-row sound, but the row number counts up on the display, solid while the carriage moves across, flashing the old number after you've passed the middle of the bed but haven't turned around yet, steps up to the next number (solid) as you turn.
There is an end-of-repeat sound, which is how it warns you that you need to take action to not knit row 1 again if you don't want to. In a 10-row pattern that sound happens as you turn around after row 9 and are about to select for row 10.
You will normally knit two more passes after the beep, one to select for row 10, then row 11 to actually knit the row 10 selection, which will also select row 1 again. (When knitting fast, you notice this beep while doing the row 10 selection row, so it feels like just one row of warning, which is what you want; warning a row later would sometimes be too late.)
For row 12, you switch the KC knob to NL so that it will "gather up" all the needles and treat them as if they were at B, even though they have pre-selected for row 1 while you were doing row 11 which knits the selection from row 10.

The sounds are still wrong at rc6, and some steps backwards since 0.95. The new computer-side sounds are great, but they don't quite match the hardware sounds.

The "double-beep" that you're supposed to knit until you hear it, it doesn't exist in the computer, just in the hardware.

The hardware sounds used to have a noticeably different sound for the Start-reminder, EOR, Transmission finished, and knit until the double-beep; now they all sound pretty much the same.

I'm trying to understand if we want to fix this for 1.0 or push it back to 1.1. Since we're in the final stretch for 1.0, the bar should be pretty high to consider it for inclusion, but on the other hand if this is a regression from 0.95 I'm not entirely comfortable with shipping it broken.
Would love to get your opinion on this, @X-sam and @Adrienne200.

Just tested the scenario on 0.95 and 1.0.0-beta1.

For reference, here's what I get on 0.95:

  • at the start, long beep, two seconds delay, then double-beep (the timing of the double beep has some variability, randomly going from a single long beep to two clearly separated beeps, with occasional variants in between);
  • at the end of each row, a single beep;
  • at the end of the 10th pass, i.e. the one that selects the pixels for the last image row and ends with the carriage on the right, the single beep is replaced by a long beep (longer than the very first beep);
  • no further beeps after that.

On 1.0.0-beta1:

  • at the start, short hardware beep, "start" sound from computer (start.wav);
  • at the end of each row, short hardware beep, "ding" sound from computer (nextline.wav);
  • at the end of the 9th pass (selecting image row 9, ending with the carriage on the right):
    • the usual short hardware beep;
    • but no "ding" sound from computer;
    • "finished" sound from computer (strangely, this is read from file finish.wav but that file contains the exact same sound as start.wav!) — also, the computer sound is weirdly delayed about one second from the hardware beep, whereas the end-of-row "ding" sounds are perfectly simultaneous ;
    • and "Please knit until you hear the double beep sound" message;
    • no further reaction from computer after this point.
  • at the end of the 10th pass (selecting image row 10, ending with the carriage on the left), again short hardware beep. No further hardware beeps after this point.

So, compared to 0.95:

  • a new "finished" sound from the computer comes after selecting for row 9 — apparently this matches the Brother electronics and gives advance warning.
  • on the other hand, the hardware beeps no longer give any advance indication that knitting is about to be done. If you're not using the computer sounds, you will only hear you're done when no beep sounds after you knit the final row. At least this is somewhat consistent, in that you can interpret the hardware beep as saying "you need to do more passes".
  • the "double beep sound" that the app tells you to wait for does not exist. In fact it did not really exist in 0.95 as such: the code tried to do 10 beeps at the end (which get mushed into a single long beep by the electromechanical buzzer that comes with the shield), but it's worse in 1.0.0-beta1 since the hardware does no particular sound at all, just the usual short beep.