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:
- Create/edit a playlist
- Schedule a playlist
- Edit audio metadata
- 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:
- jump ahead so that the end time is still correct
- continue playing at previous point, and shift all playlists appropriately
- 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]