mint-n-pepper / DanceBotsEditor

Qt GUI to edit Dancebot Choreographies
https://www.dancebots.ch
GNU General Public License v3.0
4 stars 1 forks source link

Insta-Play #70

Closed philippReist closed 3 years ago

philippReist commented 3 years ago

Enable GUI to play dancefile audio without creating an MP3. So robot can dance attached to laptop.

Tasks:

  1. Enable backend to generate and play dancefile audio-data to play. @philippReist
  2. Create GUI element. A second play button? Do we need a warning popup to protect ears? @robinhanhart
  3. Make sure time indicator bar is synced with instaplay. @philippReist
robinhanhart commented 3 years ago

Maybe have an icon in the form of lightning-bolt ⚡ or "Insta-Play" text button.

I think a warning with a short explanation as a popup would be nice. If someone uses the editor for the first time it could be quite a surprise 😉

philippReist commented 3 years ago

Sounds good - I agree that a pop-up, at least the first time it is used per session makes sense.

philippReist commented 3 years ago

Some progress: I have stereo data playback working. What I could not get is that seeking would keep playing. It pauses now so the user needs to resume. If I kept playing the audio channels would randomly switch which would not be cool.

I need to look at the instaplay logic next - I need to add some state to the GUI to detect if the user changed the primitives, in which case the data needs to be recompiled, the audiobuffer updated, seeked to the last position and then resume playing. And to swap robot data for music data if the user clicks on the regular play button again. Doable but will take a bit of work and debugging (and lots of testing from your side, @tiemes I am sure I will add bugs with this).

philippReist commented 3 years ago

Ok, we have a first draft - see video. For testing, see branch https://github.com/philippReist/DanceBotsEditor/tree/feature/instaplay

@robinhanhart, @tiemes please let me know what you think - then we can work on making it look nice. I am not sure we need to add the popup - maybe it is ok if the GUI freeze for a few seconds.

https://youtu.be/k9_E3m5L7ZQ

philippReist commented 3 years ago

Thinking about it - the right thing is to auto-recompile when play is pressed and the data is stale.

tiemes commented 3 years ago

Really nice, I like it. Sorry I hoped I could test it, but no chances so far. Freezing for a short period with or without a little overlay seems totally ok for me. We usually work with 30s soundfiles now so we can test how long it takes. Shouldn't be a problem.

philippReist commented 3 years ago

Ok - updated it and the just-in-time compile now works when changes were made and the user presses play (or spacebar).

I think I made the delay between compile start and showing the overlay a bit shorter. Hope you guys can test it!

@tiemes if you could test the feature that would be great!

robinhanhart commented 3 years ago

Sorry took me a while. I just pushed new code on instaplay branch for the "Swap channel" checkbox and "Insta-Play". On

Dancebot Instaplay copy
tiemes commented 3 years ago

runs well on windows. I havent tested it with a DanceBot but to my ear, it works well. The window scales well. Very nice :)

philippReist commented 3 years ago

Very nice, @robinhanhart. I will test it asap and then I think we can merge this to develop.

@tiemes - any chance you could test more thoroughly with a DanceBot? That would be really helpful.

philippReist commented 3 years ago

Looks good to me. Will merge this as is to develop.

The only thing I was thinking, but not sure if needed, is some king of visible cue to the user which of the modes is active - human or robot. @robinhanhart what do you think?

philippReist commented 3 years ago

Reopening until @tiemes had time to properly test with a dancebot.

robinhanhart commented 3 years ago

The only thing I was thinking, but not sure if needed, is some king of visible cue to the user which of the modes is active - human or robot. @robinhanhart what do you think?

@philippReist That's a good idea. Will style the buttons so the active mode is visible. 👍

philippReist commented 3 years ago

Thank you Robin!

philippReist commented 3 years ago

@tiemes did you get a chance to do more testing?

tiemes commented 3 years ago

@philippReist not with a physical dancebot. We're pretty limited in time at the moment. I'll try to get hold of a physical DB and a macbook as well. We had a workshop last week (with an early Version but I'm not sure which software version ist was) They reported no problems however. I'll keep you posted. It would make my life a lot easier though if someone of you could provide me with the latest binaries as I had to upgrade my PC and dont have the build chain atm.

tiemes commented 3 years ago

@philippReist I had the chance to compile and shortly test the most recent windows version with an actual dancebots. Jana will do some more testing on monday. I found one issue: with instaplay on "robot", both sound and signals were hearable through the dancebots. Movements were correct. If I switched to "human" it worked correctly, only sound and no movement. Swap feature had no effect onthis. Swap in general worked very well and in combination with an mp3 player, everything worked fine.

philippReist commented 3 years ago

Great thank you for testing! To me the mixed sound sounds more like a HW issue than a SW issue, especially if it worked on an MP3. I will check with headphones on my laptop.

Looking forward to more testing feedback!

tiemes commented 3 years ago

DanceBotsTestingJana.docx

Jana and I did some further testing:

philippReist commented 3 years ago

Hmm sounds like the channels might be correct when swap is active? I can double-check that I got the channels right in the code.

tiemes commented 3 years ago

I just had a chat with Hanna. They changed R/L Channel for the cable in our manual on purpose. Stefan states that "R channel/cable is always red". Unfortunately, with our jack cables, R is white and L is the red cable. So by obeying the R=red rule, this makes "swapped" the new standard. I'd just leave it in the software whis way until we have discussed this in detail. As channels are swappable, it's not nice but not a problem.

tiemes commented 3 years ago

On mint & pepper Laptops, everything works fine. (swapped) At Startbahn29, they have other Laptops, it did not work with them when I tried Instaplay there. I'll gather more feedbacks about their experience.

philippReist commented 3 years ago

You can test with headphones, too - just to make sure you get a clean music and data signal per channel.

Right, we had it that colors and L-R assignments changed each order we placed. In the cheat sheet, we have the assignment from cable to metal part of the jack, and would usually check in the course with a multimeter to get it right.