Jokosher Remote and Mini Jokosher

Nokia have, immensely kindly, donated a Nokia 770 to the Jokosher project. We plan to implement two different Jokosher things on the 770: Jokosher Remote and Mini Jokosher. Jono and I spent some time hashing over details of both of these, and he’s written up an initial spec for Jokosher Remote. In essence, it’s a remote control for Jokosher; it doesn’t do any music stuff itself, but instead lets you see what your main Jokosher screen is up to and lets you control what it’s doing from your 770. One of the major use cases here is for when you’re recording with the band: imagine, for example, that you’re the drummer. In the corner of the studio is your recording computer, running Jokosher. You’ve got all the instruments plugged into the mixing desk and the desk plugged into the computer; you’ve got all the instruments set up in Jokosher itself. Now you’re sitting on the other side of the room, behind your drums, and you want to start recording. Do you want to stumble across the room, through the mess of leads and discarded guitar cases, to get to the computer to hit play? Hell, no. So you take your trusty Nokia 770 out of your pocket and start Jokosher Remote. It automatically notices that there’s a real Jokosher running (which it will do because it’s on the wireless network, and Jokosher will advertise its presence with the Avahi ZeroConf library) and displays the details of the project that’s currently open. You, in turn, simply hit the big record button on the 770’s screen. The buttons are all really big, so they can be pressed with fingers rather than fiddling about with a stylus, and when you’re playing you can see the tracks recording so you know it’s working. You stop playing and want to listen to that recording back, so you hit Play on your 770 and it makes the real Jokosher installation play. You can skip through the playback, forwards and backwards. If you want to re-record one instrument, you can arm that one instrument for recording and record it again. You can set up an overdub and then record it, all without leaving your drum stool. No more walking backwards and forwards! No more tripping on the mic lead! Jokosher Remote is all you ever wanted! There are a few little tricky technical issues. The first is that, at the moment, there is no way for something outside core Jokosher to control what the program is doing. Since we also need this to make plugins work, and plugins are critical, the development of a plugin system is on the roadmap for Jokosher 0.2 (at the moment, we’re in bugfix mode for 0.1, due for release in three weeks at LugRadio Live 2006). Once that plugin API exists, it will be a lot easier to build a Jokosher Remote plugin. Secondly, I need to think about the best way of shipping data back and forth between JR and J itself. I suspect I’ll use something simple to implement like XML-RPC, but if anyone’s got any suggestions for an on-the-wire protocol which (a) already has a pure-Python implementation, (b) can ship Python dictionaries, and (c) will be highly easy to implement, let me know. The other thing that I want to do is Mini Jokosher. This is a port of most of Jokosher to the 770 itself. The use case here is for taking it with you in your pocket to do interviews for your popular podcast; you can drop the 770 in your pocket along with a USB mic, and then you have a studio on the move. The goal here is not that you can do absolutely everything in MJ that you can do in real J, but tha you can record to storage on the device (buy an MMC card!), you can create instruments, record a clip, delete that clip, re-record it, and move clips around to do basic editing. Then, when you bring the 770 back to your house, it will automatically hook up with your real Jokosher (via ZeroConf again) and offer to upload the project; the project then uploads seamlessly to real Jokosher where you can do your proper editing. It’s a heavily cut-down version of real J, but it’s a proper audio recording application; this means that we will need most of the GStreamer stuff that real J needs. It’ll be interesting seeing how complete the GStreamer port to 770 is. Jokosher Remote comes first, though, because it’s simpler to implement and because the use case is a little more compelling. Exciting times ahead for our audio editor! The big thing I need to do first is to set up a Nokia-770-in-a-window environment on my developer machine. Is there an easy guide somewhere around to how to do this? It strikes me that it should be easy, and I keep seeing things that make reference to “Xephyr”, but there doesn’t seem to be an easy way to just have a 770-in-a-window on my machine (so I don’t have to keep copying things to the real device). There must be something, though, so I must have missed it; can anyone point me at it?

More in the discussion (powered by webmentions)

  • (no mentions, yet.)