Rockbox Technical Forums

Rockbox Development => Feature Ideas => Topic started by: mookee on June 26, 2022, 01:54:08 PM

Title: usb connection between 2 devices and midi clock to synch speed/pitch
Post by: mookee on June 26, 2022, 01:54:08 PM
wouldnt it be awesome if you could use the usb connection between two rockboxdevices to have a link to dj synch two devices...!!!!!


like a dj audioplayer you can hock up to another one to make synch possible , just muuuuuuccchhhh smaller..and cooler;)



 :o
Title: Re: usb connection between 2 devices and midi clock to synch speed/pitch
Post by: saratoga on June 26, 2022, 02:43:09 PM
Not sure I understand what you're asking, but in general USB host support is really difficult to implement.
Title: Re: usb connection between 2 devices and midi clock to synch speed/pitch
Post by: bluebrother on June 26, 2022, 02:47:25 PM
Short answer: no.

Long answer: For a USB connection you always need one device to act as host. Usually that's the PC, and all transfers are going through the host. For a device to act as host it needs to be able to support "USB OTG". Most devices don't support this (the H300 had a dedicated chip for this but was never used.) Some of the newer devices might have the hardware capability, but implementing something like this would be a lot of work, so unless you're willing to do it don't expect a lot of interest in doing the work. Additionally, you'd need to support a protocol for this, and you'd need to make Rockbox capable of using such a sync signal.

As saratoga said, just the host part is difficult to implement. Leave alone the other parts mentioned since they pose a use case Rockbox was never intended for. Don't expect this to happen.
Title: Re: usb connection between 2 devices and midi clock to synch speed/pitch
Post by: mookee on June 28, 2022, 03:28:03 AM
mmh;/

thanks for the precise answer!!

some questions though please.

for example, the SanDisk Sansa Clip+   , it can send impulses to pc when connected to controll this or that on the connected pc, like volume or browse <> etc. ..... cant these obviously outgoing impulses not also be used?

also, if we let rockbox out of sight right for now, if it really needs a host, can this host be created as an external device as well - a small device with two usb outlines connecting two rockboxdevices.. does it work like that in theory?/


best, c.
Title: Re: usb connection between 2 devices and midi clock to synch speed/pitch
Post by: bluebrother on June 28, 2022, 02:12:51 PM
for example, the SanDisk Sansa Clip+   , it can send impulses to pc when connected to controll this or that on the connected pc, like volume or browse <> etc. ..... cant these obviously outgoing impulses not also be used?

First, what are those "impulses" are supposed to be? Rockbox supports USB HID, i.e. acting like a keyboard / mouse. So if you want to use those "impulses" sent by Rockbox you need an application to do something useful with it. In case of HID it's simple since there are specific "volume" events for keyboard the OS on the PC can make use of. However, given your original question, you seem to want to use it with some kind of audio software. Having an external device like Rockbox pressing buttons on the keyboard wouldn't make sense at all when working with some kind of audio application. So ... what kind of "impulses" would make sense? Since we're talking about (controlling) audio applications you'd likely end up with MIDI. But Rockbox does not support USB MIDI. And while MIDI itself isn't terribly complex implementing it is still a notable amount of work, and you still need someone to do it.

Secondly, leaving all those issues aside, there's another one: what would you sync those "impulses" to? When playing back a MIDI file with Rockbox you could use the MIDI clock, and you could send MIDI clock signals over USB MIDI. But for anything else ... typical audio files don't have something like a "beat" signal. Technically speaking they are just of noise over time. So what "impulse" would you want to send? I don't see anything useful that could be used.

Quote
also, if we let rockbox out of sight right for now, if it really needs a host, can this host be created as an external device as well - a small device with two usb outlines connecting two rockboxdevices.. does it work like that in theory?/

If you bring yet-another-thing into the mix thing end up getting ... definitely not easier. And you'd still have the problems I mentioned above -- what would you keep in sync? If you think about DJ software on a PC: there is still no beat signal in a typical audio file. These applications usually analyze the file to get that (or the file has it embedded as extra metadata). For this you need computing power. Now think about the time the Ipods came out and the processing power they do have (hint: wouldn't be fast, and thus not useful.)

Things that (at least IMO) could be useful: Rockbox supporting USB MIDI, and playing back MIDI files on Rockbox sending the MIDI events to the connected PC. Or allow to record MIDI signals received from the PC (though if you already have a PC in the mix you can simply do that on the PC). Rockbox supporting USB Audio allowing the Ipod to act as external soundcard (there actually was work done on this in the past, but it never ended up in Rockbox. Such things end up being quite an amount of work, and require someone willing to do it.)