William F Walker

walker@shout.net

Summary

Five years startup experience shipping enterprise software in Java and C++

Five years industrial research experience building rapid prototypes using Java and C++

Completed M. S. and Ph. D projects with Prof. Ralph Johnson, a leading object-oriented software expert

Five years of recognized teaching excellence for both graduate and undergraduate courses



Employment


Reactivity, 2000-


Designed and implemented WSDL generation framework Designed and built three-layer web applications using Java and SQL for consulting clients. Championed the adoption of Extreme Programming practices. Created corporate frameworks for continuous integration and unit testing.


Xerox, Palo Alto Research Center (PARC), 1997-1999


Designed a document model and viewing architecture for Uppercase, a Xerox New Enterprise Company. Created a fully working java multimedia client prototype in twelve weeks. Developed an innovative tool for searching and visualizing personal information, including email and work diary entries.


Apple Computer, Advanced Technology Group, 1994-1997


Designed and prototyped new user experiences in an inter-disciplinary work environment. Built a TCP/IP Push server to support a set of distributed clients written in AppleScript, C++, and Java. Released this server for free downloads on Apple's public web site.


UIUC School of Music, 1992-1993


Research Assistant for Professor Salvatore Martirano. Designed and implemented software for computer participation in musical improvisation that was premiered at a 1993 music festival in Bucharest, Romania. Created on a object-oriented framework based on musical improvisation as conversation.


UIUC Dept. of Computer Science, 1987-1991, 1993-1994


Teaching Assistant and Lecturer for graduate and undergraduate computer science classes, including introduction to object-oriented programming, machine-level programming, operating system design, designing design systems. Lectured, led discussion sections, held office hours, wrote and graded exams. Was recognized three times on campus-wide outstanding instructor list.


UIUC CERL Sound Group, 1982-1994


Designed and maintained software to translate musical score files from a mainframe text format into the Lime(TM) music notation system. Lectured to international audience at the annual Intensive Workshop in Sound Computation. Co-developed Lemur, a sinusoidal analysis/synthesis package. Produced three annual computer music concerts.



Publications and Performances

"Rapid Prototyping of Awareness Services using a Shared Information Server" in SIGCHI Bulletin, v. 30, n. 2, April 1998.

"A Computer Participant in Musical Improvisation" in Proceedings of 1997 Human Factors in Computing Systems (CHI'97).

"Applying ImprovisationBuilder to Interactive Composition with MIDI Piano" in Proceedings of the 1996 International Computer Music Conference. Co-authored with Brian Belet

"Cross-town Traffic", Electro-Acoustic Music Concert, San Jose State University. November, 1995. World premiere of music for two computers and two pianists with MIDI pianos. Co-composed with Prof. Brian Belet.

"A Conversation-based Framework for Musical Improvisation" demonstration at the 1994 Conference on Object-oriented Programming Systems, Languages, and Applications.

"ImprovisationBuilder: Improvisation as Conversation" in Proceedings of the 1992 International Computer Music Conference. Co-authored with Kurt Hebel, Salvatore Martirano, Carla Scaletti.

"Extending the McAulay-Quatieri Analysis for Synthesis with a Limited Number of Oscillators" in Proceedings of the 1992 International Computer Music Conference. Co-authored with Kelly Fitz, Lippold Haken.

"Programming Models for Digital Samples Generation" in Array, Vol. 11, No. 2, 1992.

"Computer Science Graduate Student's Guide To Life," a comprehensive guide for new graduate students. Distributed by the University of Illinois Department of Computer Science since 1991.

"Lime(TM) Music Notation Software for the Macintosh." in Proceedings of the 1991 International Computer Music Conference. Co-authored with Lippold Haken, Dorothea Blostein.

"Kiwi: A Parallel System for Software Sound Synthesis" in Proceedings of the 1989 International Computer Music Conference.



Education


Ph. D, August 1994, Department of Computer Science, University of Illinois at Urbana-Champaign (UIUC)


Dissertation: "An object-oriented framework for musical improvisation."

Advisor: Professor Ralph Johnson.

Abstract: Many recent computer applications seek to support or even participate in structured collaborations with humans. Examples range from computer-supported collaborative work to interactive music systems. This thesis presents a general model for structured collaboration based on conversational turn-taking. According to the model, collaboration participants share both a representation of the collaboration's structure and the algorithms governing navigation through that structure. ImprovisationBuilder, an object-oriented framework written in Smalltalk-80, supports this model for musical improvisation. The framework demonstrates how computers can participate in musical improvisation, and how the study of conversation can improve that participation. Two musical improvisational domains are described. The first is a free-form three part canon defined by Sal Martirano's Sound and Logic system. The second is the tradition of small jazz ensemble performance made popular in the 1940's and 50's. ImprovisationBuilder was successfully applied to these domains.


M. S., October 1989, Department of Computer Science, UIUC


Thesis: "Kiwi: A Parallel System for Software Sound Synthesis"

Advisor: Professor Ralph Johnson.

Abstract: Software systems that generate audio samples have long been a vital tool for computer music. These systems are written in procedural languages and run on single processors. Kiwi is a object-oriented software sample generator that takes advantage of shared-memory multiprocessors like the Encore Multimax. Earlier systems assume that the sound of each note is independent of the sounds of other notes; Kiwi uses this assumption to parallelize software synthesis at the note level. Interesting issues raised while implementing Kiwi include scheduling algorithms and parallelizing signal processing algorithms such as reverberation.

Course work included theory of languages and automata, object-oriented programming, formalized music, and machine learning.


B. S., 1987, Department of Computer Science, UIUC


Received University High Honors. Combined interests in software engineering and music composition. Course work included compiler construction, natural language processing, operating system design, and machine-level programming. Grade Point Average: 4.8 out of 5.0.



Software Projects



birdWalker, a web-based tool for recording and analyzing bird-watching field notes built using mySQL and PHP.


SharedInfoServer, a push technology for rapid groupware prototyping

Supports reading and writing an object database from TCP/IP or remote AppleEvents

Enables Java and AppleScript client interoperation

Provides fast, reliable service with multi-threading and robust data storage



ImprovisationBuilder, an object-oriented framework for computer improvisation

Real-time system with C primitives interfaced to Smalltalk virtual machine

Framework design reused by several different users

Robust code subjected to live concert performance



Kiwi, a C++ system for generating digital audio samples

Used parallel threads to divide computation among several processors

Studied the suitability of different processor architectures for audio sample generation



Lime Translator, a compiler for musical score files

Developed using compiler tools yacc and lex

Users have successfully translated hundreds of scores



Lemur (co-author), a tool for sound analysis and synthesis

Provided full-fledged Macintosh interface for original UNIX code

A popular shareware utility in use around the world



Comments to walker@shout.net.
Last updated 5/27/2004 by WFW