Include the following information at the top of your proposal 1. Your full name as you would like it to appear in Embedded Linux Journal. Stephen Savitzky 2. Your shipping address and phone number (confidential). 3. URL for your project. http://penguinsong.org/org/projects/SetTop/ ==================================================================== The text of your proposal should answer the following questions: 1. What is the working title for your project? SHAWM -- SetTop Home Audio Workstation for Musicians 2. What need or desire will your embedded Linux project satisfy? This project is a multipurpose device primarily for use in a home studio. In addition to high-quality multitrack recording (to local or networked storage), it plays a guide track (mp3-encoded to reduce bandwidth) and displays lyrics, chords, or sheet music -- or even video, e.g. while recording a soundtrack -- on either a monitor, an ordinary TV, or heads-up display. On the playback side it can be used for monitoring, mixing, or simply as a player. It could also be used in performance, allowing live recording while displaying lyrics and possibly playing prerecorded drum or other backup parts. In addition to operating ``single user'', it will also be possible for a recording engineer to monitor levels and do real-time mixing on a remote machine (which may double as the fileserver). 3. How will your project take advantage of the features of the prize package? From a musician's point of view, the biggest advantages of a system based on what is basically a set-top box are silence and expandability. Because the Geode is a low-power processor, and because the built-in high-speed networking allows the use of network-attached storage, the device can be totally silent. This means it can be within arm's reach of the musician without leaking noise onto the recording. The PCI slots and USB ports are vital: the onboard audio is adequate for most purposes (and in fact will be used for monitoring the guide track) but not for top-quality recording. By adding a high-quality multichannel soundcard or USB-connected ADC, the system can easily be upgraded to support 24-bit, 96KHz ADC's (though it remains to be seen whether the CPU has high enough bandwidth and the kernel low enough latency to support more than two channels). One way of reducing the bandwidth requirements will be to compress the guide track, expanding it using the onboard MPEG decoder. Although it will probably not be used in the first phase of the project, it can be expected that the video overlay system will be very popular for recording soundtracks, voiceovers, and music videos. The ability to drive NTSC video _will_ be used; small TV's are inexpensive, and take up less space in a crowded studio (or stage) than a full-sized VGA display. 4. What are your qualifications for carrying out an embedded Linux project, including programming and hardware experience? You may include URLs of related work (either hobby or professional). I've been using Linux for 8 years or so, and Unix for over 17 years. In a previous job (at Zilog) I wrote a real-time kernel for the Zilog Z8000, and have written a book on _Real-Time Microprocessor Systems_ (Van Nostrand Reinhold, 1985). Recent open-source projects include PIA (www.RiSource.org/PIA/) and cPIA (cpia.sourceforge.net). I'm proficient in C, C++, Perl, and Java, and have built several experimental networked, web-based appliances (unfortunately not open-source yet). PIA, a web application framework based on executable XML, bears a number of similarities to Linux4TV's WebMedia user interface. I've been an amateur singer-songwriter for over 20 years, and have recently gotten into home recording. Lyrics for all my songs can be found at http://thestarport.com/people/steve/Doc/Songs/ 5. What additional hardware, if any, are you considering using? (You are not required to use it in your final project.) I have a high-quality multichannel PCI soundcard (M-Audio Delta 66) that is supported by ALSA, so that's an option for 4-channel recording. For a low-cost heads-up display I intend to get a set of VR goggles designed for use with game consoles or something similar -- they're a lot cheaper than the VGA displays. For paging through the lyrics I'll need a foot-operated control; the simplest approach is probably to hack up an old mouse (which I have in plentiful supply), replacing the buttons with heavy-duty switches. 6. What software do you plan to develop? What tools and libraries do you plan to use? This is mainly a system-integration project. The user interface will be done using the WebMedia system; this will undoubtedly require building some CGI's or plug-ins to control the recording system. My lyrics are currently kept in LaTeX with specialized macros for the chords; there's already a Perl script that converts them to HTML. This can easily be modified to output screen-sized pages. In some cases, for example when a recording engineer is making adjustments in realtime, it will be necessary to control parts of the system remotely. This is best done using either X applications or a web-based interface; the web approach will probably be simplest. 7. What sources of information and support will you consult while carrying out your project? These days I usually go first to the Web. For the audio subsystem, my main starting point is Dave Phillips' Sound & Midi Software for Linux site at http://www.bright.net/~dlphilp/linuxsound/