asivery / webminidisc

Upload your Music to NetMD and HiMD MiniDisc devices thanks to WebUSB and WASM
GNU General Public License v2.0
122 stars 28 forks source link

Fast forward and rewind options #35

Closed escay closed 6 months ago

escay commented 11 months ago

Hi, thank you for this effort. In 2004 I wrote my own Windows dll driver to connect to Sony NetMD - MZ505 via the NetMD.dll. And also played with the Libnetmd linux project at that time (https://libnetmd.sourceforge.net/). The same minidisc unit I used then still works with your Web Minidisc Pro 👍

At that time I also succeeded in sending FFWD and RWD options to the unit. Some screenshots of my effort at that time can be seen in the wayback machine: https://web.archive.org/web/20040228050603/http://simplerecorder.com/

simplerecorder

Is this FFWD and RWD functionality missing in the Web Minidisc Pro, or did I just miss it? Seeking to a specific time was also possible if I remember correctly ("Seek" in the screenshot was my test implementation), useful for previewing those old tracks that were not yet split into smaller parts. I might have the old code somewhere.

Looking at https://github.com/AlexanderS/linux-minidisc/blob/master/netmd/libnetmd.py

I probably mean:

ACTION_FASTFORWARD = 0x39
ACTION_REWIND = 0x49

OPERATING_STATUS_FAST_FORWARDING = 0xc33f
OPERATING_STATUS_REWINDING = 0xc34f

And for Seek to a specific time:

    def gotoTime(self, track, hour=0, minute=0, second=0, frame=0):
        """
          Seek to given time of given track.
        """
        query = self.formatQuery('1850 ff000000 0000 %w %b%b%b%b', track,
                                 int2BCD(hour), int2BCD(minute),
                                 int2BCD(second), int2BCD(frame))
        reply = self.send_query(query)
        return self.scanQuery(reply, '1850 00000000 %?%? %w %b%b%b%b')

Are these implemented? Thank you.

asivery commented 10 months ago

Hi there @escay! I am aware of these commands, and they are implemented in the backend library. The problem here is the UI design. I can't come up with a good place to put the "current position" seek bar. If you have any ideas regarding that, please let me know. I don't want to just make something like "+10s" and "-10s" buttons because by themselves that wouldn't be good UX, at least in my opinion.

escay commented 10 months ago

I would assume something like WinAmp:

4ec3052_1659519352020-mainwindow

For example a bar below the controls to click the location in the current track, here a minimal mockup: image

Note: I personally do not really like the fast forward implementation in portable minidisc units, forwarding sounds terrible and is pretty slow. I would rather prefer a bar to click in to seek into the location. Or maybe some keyboard shortcuts only example: arrow to the right is 20 seconds forward, arrow to the left is 10 seconds backwards in case you just passed the point you were looking for.

asivery commented 6 months ago

@escay Took me long enough :sweat_smile: - think something like this will do?: image

escay commented 6 months ago

Very nice and subtle 👍

asivery commented 6 months ago

Thanks - closing the issue then :)