ARTICLE

Designing Jokosher Remote

by | Sun 2 Jul 2006

A while back I got a Nokia 770 from work. I was quite looking forward to getting my hands on one, and it turned out to be a pretty nice little device. Obviously, it supports the full on GTK/GStreamer jazz, and my mind started rolling with ideas for applications. One such application was Jokosher Remote.

As a multi-tracker, Jokosher (like any other) has a physical limitation. Musicians tend to be crammed in tiny home studios constructed from spare bedrooms, and fashioned with a combination of guitar amps, computers, books, spare bedding and beer cans. These creative domains are often restrictive, covered in trailing cables and typically hot. In other words, no matter how nice we make Jokosher, the room it is sat in may very well be restrictive and uncomfortable.

Another problem with the home studio is that the computer can be physically too far away from the ideal recording scenario. There are two examples of this:

* The computer is situated away from the instrument. An example of this is if you have a drum kit in the corner of the room and need to keep getting up to hit record on the computer, run to the drums and play the part. This constant getting up and pressure to get back to the kit on time almost always results in mistakes when recording.
* You need to record an instrument in another room due to sound separation. In this case, you may want to record a Cello in a separate room to ensure that there is no overspill from other instruments. The problem is when you need to control the computer – again, you need to hit record and run to the recording area and play.

In other words, unless your instrument is next to the computer, life can get tough.

The solution to this problem is a remote control, and this is where the Nokia 770 comes in with Jokosher Remote.

## Feature Requirements

The requirements for Jokosher Remote are fairly simple. Jokosher Remote would not record audio on the Nokia 770 itself, but instead control the transport for Jokosher running on the main computer and record to the main computer as per normal.

The core feature requirements are:

* Provide transport control for playing, recording, seeking and stopping.
* Be able to arm instruments for recording. This is important for Jokosher Remote as you may want to record on different instrument tracks for the same physical instrument. As an example, you may want to record a number of different guitar parts on different tracks.
* Be able to set up and record overdubs. Overdubs involve recording over a specific part in a project, and are typically used when you screw something up when recording. Jokosher Remote should allow you to configure these overdub points. An example of this is overdubbing a particularly different part in a solo.
* Provide visual feedback. Remote control devices are always susceptible to problems and errors, and we need to provide our users with solid feedback that recording is working correctly and that the connection has not dropped at all.
* Provide nice big buttons that don’t require the 770 pen. The interface should be controllable by fingers.
* Be simple, just like Jokosher. The whole point of Jokosher is to make recording easy, and Jokosher Remote should instill that ethos.

I spent some time chatting with Aq about the UI while at GUADEC and we had some ideas for how things should work. I then sat down on the train while coming back from Brighton to solidify some of these ideas, and have created a bunch of mock-ups to explain how it should work. As ever, these designs are malleable, but I think they form a solid foundation on which the interface can work.

> Another thing I was thinking was that additional features such as a guitar tuner could be merged into the application, but these would need to be separate projects that plug into Jokosher Remote. Is there a guitar tuner for the 770 already? Answers on a postcard…

## UI Design

When the user turns on Jokosher Remote, it will use Avahi to find Jokosher applications on the network. The user can then just select which application to use (they will likely only have one application). This prevents the user having to configure networking settings. We may need to engineer in some kind of confirmation to avoid anyone with a 770 just controlling any-old Jokosher computer. My initial hunch is that when the user selects a connection on the 770, the main Jokosher computer will ask for confirmation of the connection. We can flesh this out later.

So, lets first look at the main screen:

This is the main screen and this is where the recording occurs. Just like in Jokosher, we have the transport controls along the top, and two Workspace buttons – this uniformed UI ensures that Jokosher Remote is instantly usable. Inspired by the work of Jeff Raskin, user interfaces should be ‘familiar’, and this is prevalent here.

This screen is the Recording workspace. To record a part, just tap the record button and begin playing. Playback will also display a playhead, just like in the real Jokosher. The play and seek buttons can also be used to skip to other parts, and the timeline can be dragged to find specific parts too. As the user records, the wave will appear (this is also planned in main Jokosher for 0.2). This provides important feedback that what you are playing is (a) being recorded, (b) the connection between Jokosher Remote and Jokosher is working, and (c) you can monitor the approximate volume of the recording – if the wave is solid, you are way too loud.

> NOTE: As in real Jokosher, the status bar is used extensively to indicate instructions. This is available on both workspaces. Additional instructions are available with labels.

To set up a recording, the user taps the Setup workspace button. They then see this:

Here each of the instruments in the project are displayed as toggle buttons. Each button has the icon and name of the instrument on it. To arm an instrument for recording, the user just toggles the button. They can now go back to the Recording workspace and record. Each armed instrument appear as a track in the Recording workspace. This again (a) provides feedback that recording is working, and (b) provides feedback that toggled instruments are actually recording.

> NOTE: Within the Setup workspace the transport buttons are present. I am only 80% sure they are required as they may be useful to audition the project to double check which instruments should be armed. Thoughts are welcome on this.

Aside from transport control and instrument arming, configuring and recording overdubs is essential. In many music applications, overdubs involve setting markers and demand lots of mousing and clicking. The problem of this approach, apart from increased input requirements, is that overdubs are then bound to the concept of time. In reality, no musician cares about the times of an overdub, he or she just knows when to start and finish it.

To create an overdub, the user clicks the Create Overdub on the screen above. A dialog then pops up:

When creating an overdub, the user essential wants to seek to the part which needs the overdub and select the start and end point. As such, the user can use the play and seek buttons to seek and then when they get to the area where it starts, they click the START Overdub to register this is where the overdub starts. The dialog then changes:

As the music continues to play, the user can then hit the END Overdub button to mark the end of that overdub section. Hitting this button will then close the dialog and return to the main screen, but the overdub selection is highlighted:

When the user now presses the record button, the overdub area will be looped. It will keep looping until the users nail the part and hits the Accept Overdub button. At that point the overdub is kept and the screen returns to the normal main screen:

One additional point to make is that it may be useful to automatically prepend 10 seconds of audio before the start overdub point. This gives the user enough time to press record and prepare to play the part.

## Making it happen

So there we have it, that is the approximate design for Jokosher Remote. Now, is this gonna happen, or is it just a wild fantasy?

Well, after some discussion at GUADEC, Nokia offered us a Nokia 770 to build this application. Aq has expressed an interest in working on this, so he has got it to start work on it. As such, you can expect Jokosher Remote to be released someday hopefully soon. Development of Jokosher Remote will occur alongside mainline Jokosher development. I have a 770 too and will contribute to the project in UI and audio related things.

As ever, volunteers are always needed, so drop me a mail if you can help out. Lets make this thing live and make those stuffy studios across the world a little bit nicer to work in.

Man is Jokosher gonna rock the world…

An invitation-only accelerator that develops industry-leading community engagement and growth via personalized training, coaching, and accountability...all tailored to your company's needs.

Want to read some more?

Happy Holidays

Happy Holidays

Just a quick note to wish all of you a happy, restful, and peaceful holidays, however and whoever you spend it with. Take care, folks, and I look forward to seeing you in 2015!

The Impact of One Person

The Impact of One Person

I am 35 years old and *people* never cease to surprise me. My trip home from Los Angeles today was a good example of this. It was a tortuous affair that should have been a quick hop from LA to Oakland, popping on BArt, and then getting home for a cup of tea and an...

Feedback Requested: Great Examples of Community

Feedback Requested: Great Examples of Community

Folks, I need to ask for some help. Like many, I have some go-to examples of great communities. This includes Wikipedia, OpenStreetmap, Ubuntu, Debian, Linux, and others. Many of these are software related, many of them are Open Source. I would like to ask your...

Ubuntu Governance Reboot: Five Proposals

Ubuntu Governance Reboot: Five Proposals

Sorry, this is *long*, but hang in there. A little while back I wrote [a blog post](https://archivedblog.jonobacon.com/2014/11/14/ubuntu-governance-reboot/) that seemed to inspire some people and ruffle the feathers of some others. It was designed as a...

Ubuntu Governance: Reboot?

Ubuntu Governance: Reboot?

For many years Ubuntu has had a comprehensive governance structure. At the top of the tree are the Community Council (community policy) and the Technical Board (technical policy). Below those boards are sub-councils such as the IRC, Forum, and LoCo councils, and...

Dealing With Disrespect: The Video

Dealing With Disrespect: The Video

A while back I wrote and released a free e-book called [Dealing With Disrespect](https://www.dealingwithdisrespect.com/). It is a book that provides a short, simple to read, free guide for handling personalized, mean-spirited, disrespectful, and in some cases,...