The Future of Campcaster Studio

These are proposals for improving Campcaster Studio in the future, starting with small things and moving into bigger things.

Usage scenario:

1) The audio technician opens a file browser to a USB stick or a network drive, selects the files prepared by the journalists, and drops them on a desktop shortcut for the Mass Import script.

Comments from Robert Klajn:

Journalist (after recording and editing audio material), uploads the report in 
the system. He can do that either from the studio, or outside of it. Journalist 
uploads audio files one by one into the system, and enters important info 
containing informations about date and time of the material into voice ID tags. 
After finishing transfer, he shuts down all windows, or decides to import next 
audio report.
Mass import function can be useful _only once_ during the whole work of CC, on 
the very beginning – when big database containing 50.000 audio mp3 files (or 
more) have to be imported  into the CC, so that it can be used. After first few 
days of CC working and living, this Mass import function will become less and 
less useful in the regular daily use of CC.
The disadvantages of Mass import for later usage is that Mass import script 
doesn’t know what we upload, and it can’t do the sorting out by categories 
(music, jingles, journalist reports, commercials, effects...).  Mass import is 
necessary evil that we have in order to help the radio stations that already 
work, to transfer to our system more easily, and not having to import 50.000 
tracks one by one. After that, our advice would be to use ID tag for editing 
metadata.        
  In the interest of the radio station is to have necessary ID for every audio 
journalist report, that can later make the search by topic, mentioned word, 
place or time, much easier. And also music, with its music ID tags, has its 
additional categories of evaluation (beat, tempo, mood, bpm…), that also have 
major role in advanced search, which is important for us for later random or 
shuffle play as part of the future features.

2) He starts up Studio, which opens the sub-windows to the configuration in which he left them the previous day.

Comments from Robert Klajn:

The concept of too many not-grouped windows on the desktop is not much practical and 
for me, visually very exhausting.
My first idea was that we see only CC on our screen ( full screen please !)  as 
one  main window for which I know what it is working, and not to see desktop 
icons somewhere in the background that are not usable at all.   This _full 
screen_ software (only CC across the whole screen) is something I recommended 
since the beginning, and personally, I would be very happy if we can come back 
to that idea again.  But if there is an option for CC to ‘remember’ what windows 
user opened last ( it works on my test machine), maybe we could forget this 
feature for a while, although I am sure that this issue about ‘full screen 
software’ will have its turn in the future release.
But I will repeat again, full screen 
software, without desktop image and desktop icons visible behind it, would be 
permanent and best solution.

3a) The Search window has an option for searching for files added recently. He finds the files he just added, and drags them over to the Live Mode window.

Comments from Robert Klajn:

I agree, it won't do us no harm. Of course, major function is search by 
determined criteria. (like ‘recently added features’)

3b) Optionally: searches for some more files, and adds these to the Live Mode window as well. 3c) He adds some jingles from the Scratchpad to the Live Mode Window.

Comments from Robert Klajn:

Drag and drop of audio file directly into LiveMode playlist window is the 
feature that has been asked before, but it seems that it didn’t take place anywhere.
I vote again for drag’n’drop function, in all windows where audio file can be seen.
I need to comment ScratchPad as well. As the end-user I can hardly understand 
its general use, except when creating a show as an author.  Its frustrating 
popping up and its constant presence during the entire work really depresses me. 
I would rather add the possibility to turn the Scratchpad off, ( as Sava already 
said:  /to be less central to the concept/.),  or  -   to give it some higher 
and more useful role instead. 
Since it is never the right time, I will now dare to suggest something, and 
developers, please, don’t throw tons of bricks on me right away.
So, Scratchpad should collect only jingles, announcements, instrumentals, and 
other most used audio background for radio shows. In radio world I call this- 
‘specific audio equipment’, that is in relation with certain radio shows 
determined by day and hour, and not in relation with users that are working in 
shifts. Consider this ScratchPad not as the complete jingle database, but as the 
specific list of mostly used jingles for certain shows, broadcasted in 
determined time.

4) He rearranges the files in the Live Mode window to the correct order; marks some of them as “beds”, ie, background sounds which will loop continuously when played.

Comments from Robert Klajn:

I agree .  That is how CampCaster should work, (except that this ‘beds’ 
function-where certain audio files should go to loop as background sounds, can’t 
be solved properly right now like it was determined in advanced version) .
For now, simple switching on the repeat function on audio file, should do the 
job and save the situation – but of course, only in Live Assistant mode.

5) He presses a (customizable) key to start playing the top item in the Live Mode Window; this key would do this no matter which window is selected. He can also double-click an item possibly different from the top one, to play it out of order.

6) He logs out, exits Studio, exits the studio, and goes home.

The changes we’d need to implement for this are the following:

  • Modify the mass import script to accept directories and files mixed together (at the moment, you have to specify -f or -d).
  • Remember the open/closed state of windows at logout.
  • Implement a “search for recently added” feature in the Search window.
  • Implement drag and drop between Studio windows.
  • Forget the idea that everything touched goes to the Scratchpad window, and use it as a jingle bank instead.
  • Add an Automatic/Manual switch to the Live Mode window.
  • Implement a global hotkey which activates the Play button in the Live Mode window.

These are all small changes which can be done in the next weeks, instead of months, and would noticeably improve the usability.

After this, there are (bigger) second tier features we can do:

  • Allow for mass import directly into Studio.
  • Implement an audio properties pop-up window for displaying (possibly editing) metadata.
  • Integrate the Scheduler into Studio, including a nicer Scheduler window, with day view.
  • Grey out instead of remove played items in the Live Mode window, and allow the contents to be saved as a playlist metafile.

Comments from Robert Klajn:

I hope I understood you well, but I am afraid that for common users in radio 
program, this will be a visual problem. Tracks that have been broadcasted, won’t 
be broadcasted again in the near future – that is the principle. The exceptions 
are only news, that can be played again hour by hour. I don’t understand, why 
the audio slot have to be grayed out
, if it has already been played, and won’t be played again.
If you thought of an idea of having "list what has been broadcasted", like some 
kind of log history, I vote for that! This history list should be visible in 
some other window outside broadcast studio, visible from the outside and printable.
  • Support for web stream inputs.
  • Support for streaming the output to a web stream.
  • Allow the user to save his user name, password and preferred language, so in a single-user setting he wouldn’t have to log in every time he starts Studio.

Completely redesigning the interface to make it single-windowed, in my mind, comes somewhere way down the list, after all of the above are finished. Having said that, I _would_ like to rewrite Studio in libglade: that would mean separating the code from the visual design, so it would allow creative people to redraw windows (change color, spacing, placement of widgets) without any change in the C++ code. That would be a good thing, and I hope Sava can find the budget for it, but it probably won’t be easy.

Aligning Studio with User Usage Patterns

First Draft: January 3, 2007 Author: Paul Baranowski

The Campcaster GUI is currently not aligned with user modes of operation. There are many windows, and these windows do not group common functions together. Two of the windows, the Scratchpad and the Search window, are always required for playlists, LiveMode, and Scheduler. Each user is required to devise their own layout of the windows. This makes for a steeper learning curve for the beginner. This document is meant to describe a way to simplify the user interface, but note that this is considered an early draft and is subject to change. All comments are welcome.

Primary Functions

The following are the “primary functions” of the Studio:

  1. Create/edit a playlist
  2. Schedule a playlist
  3. Edit audio metadata
  4. Import new audio files

#1 and #2 *always* require the Scratchpad+Search (remember this point).

#3 can be reached from Scratchpad, Search, #1, and #4.

Notice that the concept of the “Live Mode” window is gone from this list. This is because it is encompassed by point #1 – why not just create a playlist and start playing it? This vastly simplifies things – no duplication of features between the “playlist editor” window and the “live mode” window; this will also automatically keep the history of any show you have done.

Single-window Design

Currently it can take up to 6 clicks(one for each window) to bring Campcaster to the front. Due to this problem the Studio should become one main window for all primary functions. Having a single windows enables the application to cater to the primary functions more easily, as will be shown below. More minor functionality (i.e. less-frequently used), can be in sub-windows; for example, the options.

Suggested Layout

Suggested layout is like so:

[Master Panel]
[Scheduler Status Bar]
[Tabs: Audio|Import|Options]
[Tab Content]
  • Audio Tab:
      [Tabs: PlaylistEditor|ScheduleEditor] | [Scratchpad] | [Search]
      [Preview Bar]
    
  • Import Tab:

An improved version of what we have now, with support for importing directories.

  • Options Tab:

Same as what we have now.

The metadata editor would be a non-modal popup window since it can be accessed from som many different places and you dont want it to get in the way of other things you might be doing.

Details of each section is below.

Scheduler Status Bar

[TimeStart-TimeEnd] [Stop] [---Progress Bar---] [Time] [Title - Artist]

The [Stop] button will have a confirmation. It will also remove the playlist from the slot. You cannot drag the ProgressBar.

We may want a [Pause|Play] button in the SchedulerPlaying bar, but having it is a bit problematic. After you pause, there are multiple ways to start playing again:

  1. jump ahead so that the end time is still correct
  2. continue playing at previous point, and shift all playlists appropriately
  3. continue playing at previous point, just fade out the end of the playlist

In all cases, the playlist should fade back in.

Playlist Editor

This is a combination of the Live Mode window and the playlist editor window. There would be a visual indication of what is currently playing. Playlists can be expanded to see what it inside of them using a tree view.

Schedule Editor

The schedule editor will look like the “daily view” of the HTML interface: a calendar at the top to allow you to select the day, and underneath there would be an hourly schedule on which you can drag and drop playlists. When viewing the scheduler editor, the views of the scratchpad and the search would change to only display playlists. Calendar will highlight days that have schedules. Ability to remove scheduled playlists, even ones that are playing.

Preview Bar

The PreviewBar is located at the bottom to visually separate it with live output. It would look similar to Amarok’s play bar:

[Pause|Play] [Stop] [Rewind] [FastForward] [---Progress Bar---] [Time] [Title - Artist]