Go to S Systems, Inc. Home Page

DSP Consulting

S Systems, Inc. is an established digital signal processing consulting firm specializing in software, especially hand-coded assembler for DSP chips, mostly in the audio and music industries. As a consultant, John Strawn (the founder of S Systems, Inc.) has been involved in the following projects. You can view the rest of Dr. Strawn's resume online or download Dr. Strawn's resume as an Adobe Acrobat .pdf file which contains this list.

From: 2008 Client: DTS Digital Cinema
To: 2008 Location: Agoura Hills, CA
  Duties:

For DTS Digital Cinema's new XD20 Media Player eight-track cinema media player (this is the box that sits in the movie theater projection booths and special venues for playback of multi-channel audio and video), adapt audio algorithms from an earlier DTS Digital Cinema device. In particular, port DTS Coherent Acoustics decode (two versions, one 8-channel, one stereo), DTS Digital Cinema 8-channel decode, and DTS Neo6 5.1 decode from DTS Digital Cinema's existing XD10 cinema media player. This required me to extract Motorola DSP563xx assembly language source code from the earlier XD10 environment; isolate the four algorithms by stripping away unneeded code; integrate the four algorithms into Motorola 56721 dual-core processor; and write new wrapper code in assembly language. Responsible for approximately 25,000 lines of assembly-language source.

From: 2007 Client: undisclosed
To: 2008 Location: Asia
  Duties:

For this (repeat) client review literature and prepare report summarizing the state of the art in commercial and academic visualization of acoustic data. The 160-page final report discusses about one-half of the 200 or so documents and other items that I investigated.

From: 2007 Client: undisclosed
To: present Location: southern California
  Duties:

For this (repeat) client implement, in C, with the help of a filter design subcontractor, a novel algorithm for sound processing.

From: 2007 Client: Berkeley Design Technology, Inc.
To: 2008 Location: Oakland, CA
  Duties:

Contribute to research and writing of the following newsletter articles at BDTI's website Inside DSP :

From: 2007 Client: undisclosed
To: 2007 Location: Asia
  Duties:

Review literature on auditory stream separation, computational auditory stream analysis, voice activation decision, and Wiener filters. Using publicly available Matlab code for Wiener filters (Ephraim/Malah) as a basis, implement Davis et al's voice activation decision in Matlab, delivering a speech enhancement system to the client.

From: 2007 Client: undisclosed
To: 2008 Location: San Francisco Bay area
  Duties:

For this startup just leaving stealth mode, advice on licensing and implementing audio algorithms; assist in integrating audio into product.

From: 2006 Client: undisclosed
To: 2007 Location: Bay Area, CA
  Duties:

For a well-known provider of audio software, provide and supervise a subcontractor to port a complicated digital signal processing algorithm into the Digidesign TDM Environment, in Motorola 56K assembler.

From: 1995 Client: Yamaha
To: 2007 Location: Hamamatsu, Japan
  Duties: Chair, AES standards working group SC-02-12 (formerly called SC-06-02) on digital audio via IEEE-1394 (Firewire), with the support of Yamaha. Involves a trip to AES conventions twice a year, including one in Europe. Past member, IEC TC100 TA4, Digital System Interfaces. Various public appearances, for example at AES local chapter meetings, and various company site visits, on behalf of Yamaha to discuss audio over 1394 and Yamaha's mLAN.

From: 2006 Client: undisclosed
To: 2007 Location: East Coast, USA
  Duties:

For a well-known provider of audio software, provide and supervise a subcontractor to port a complicated digital signal processing algorithm into the Digidesign TDM Environment, in Motorola 56K assembler.

From: 2005 Client: Sonic Network
To: 2006 Location: Somerville, MA
  Duties:

For this well-known provider of wavetables, synthesis software, and ring tones (among others), provide and supervise subcontractors for these projects:

  • Design and implementation of filters for sample rate conversion;
  • Design and implementation of filters following the DLS-2 specification;
  • Port synthesizer code to Tensilica HiFi2 audio engine.

From: 2004 Client: Bias
To: 2006 Location: Petaluma, CA
  Duties:

For this well-known provider of audio software, provide and supervise a subcontractor to port a complicated digital signal processing algorithm into the Digidesign TDM Environment, in Motorola 56K assembler.

From: 2005 Client: Audio Research Labs
To: 2005 Location: Scotch Plains, NJ
  Duties:

For ARL founder Schuyler Quackenbush provide and supervise a subcontractor to design and implement a digital filter algorithm in Motorola 56K assembler.

From: 2004 Client: Verance
To: 2005 Location: San Diego, CA
  Duties:

Working closely with Verance R&D staff, implement the Verance Content Management System/Audio-Visual (VCMS/AV) watermarking technology for motion picture sound in Motorola 56300 assembler in the TC Electronics M6000 environment. In use in major film studios starting early 2005. Travel at client's request to TC Electronics headquarters in Denmark to facilitate integration. Provide and supervise a subcontractor to assist with filter design, filter implementation, and other tasks. More than 30,000+ lines of 56K assembler source, several hundred pages of documentation, a dozen CD-ROMs of debugging data and lab notebooks.

From:

2002

Client: Universal Audio

To:

2004

Location: Santa Cruz, CA

 

Duties:

For this well-known manufacturer of audio plugins, port two audio processing algorithms (Pultec filter, LN1176 stereo compressor) from C/C++ to Motorola 563xx assembler in the DigiDesign ProTools TDM environment, including numerical approximation and streamlining the original C/C++ implementation. Publicly released 2004. Contribute extensively also to port of an extremely complicated high-end reverberator, and to another equalizer.

From:

2003

Client: undisclosed

To:

2004

Location: Bay Area, CA

 

Duties:

For another well-known manufacturer of audio plugins, extensive contributions to the TDM port of a multi-band, multi-channel compressor.

From:

2003

Client: Stretch

To:

2004

Location: Mountain View, CA

 

Duties:

For this software configurable processor startup, study how to port MPEG-2 AAC and MP-3 decode reference C++ code to 16- and 32-bit integerized C. Do the same for MP-3 encode based on publicly available source. Learn their software configurable architecture well enough to write optimizations.

From:

2003

Client: RIC International Precision Translation Services

To:

2003

Location: Cambridge, MA

 

Duties:

For this major translation house, proofread German-English translations involving, among other things, audio compression (including German-language doctoral dissertations).

From:

2003

Client: Analog Devices

To:

2003

Location: Santa Clara, CA (Audio Rendering Technology Center)

 

Duties:

Port music synthesis algorithms to ARM7TDMI assembler, following ARM’s C calling conventions. This project ran under very tight time constraints, cost only 2/3 of the projected budget, and resulted in code that runs much faster than the original implementation.

From:

2002

Client: Dorrough Electronics

To:

2003

Location: Chatsworth, CA

 

Duties:

Implement in C and Analog Devices Sharc 21161 assembler a novel scheme based on their patented technology to improve the perceived loudness of audio signals sent over broadcast. Provide a subcontractor who made significant contributions to filter design

From:

2002

Client: undisclosed

To:

2003

Location: Santa Cruz, CA

 

Duties:

For a major manufacturer of telecommunications hardware, help create a development environment using Texas Instruments’ C54XX, Code Composer Studio, and Reference Framework 3.

From:

2002

Client: undisclosed

To:

2002

Location: Japan

 

Duties:

For an Asian manufacturer of audio chips, assemble, manage, and contribute technically to a group of US consultants to specify and help design an audio-related chip used in broadcast applications. Establish contact between the Asian client and stateside holders of appropriate licensable technology.

From:

2002

Client: Analog Devices

To:

2002

Location: Wilmington, MA (Ray Stata Technology Center)

 

Duties:

After an on-site visit to learn more about the technology and meet the team, I made recommendations on changes to architecture for a new version of an idiosyncratic signal processing chip. I also provided code examples for the new architecture.

From:

2001

Client: undisclosed

To:

2002

Location: Silicon Valley, CA

 

Duties:

For a configurable processor manufacturer in Silicon Valley, implement a highly optimized version of the modified discrete cosine transform (MDCT) for audio compression. Extensive investigation of theory and variants of the MDCT. Also port MPEG-2 low-complexity AAC decode and MP3 encode from Fraunhofer/Thomson reference C++ code to 16-bit integerized C. Prepare various optimizations closer to the hardware than C++ usually allows.

From:

2001

Client: undisclosed

To:

2002

Location: Europe

 

Duties:

For this developer of a custom processor based on ARM, investigate licensing of and make recommendations for porting AC-3, DTS, Dolby ProLogic.

From:

1999

Client: Berkeley Design Technology, Inc.

To:

2001

Location: Oakland, CA

 

Duties:

  • For BDTI’s Buyer's Guide to DSP Processors, 2001 Edition, contribute major portions of the text analyzing the Analog Devices TigerSharc, and contribute also to the analyses of Motorola 56300, 56800, and 56800E, including verification and in some cases re-writing assembly-language implementations of BDTI's benchmarks;
  • Prepare written analyses of Hitachi SH-DSP, SH3-DSP, SH-4, and SH-5 architectures. This again included verification and in some cases re-writing assembly-language implementations of BDTI's benchmarks;
  • Implement assembly-language routines related to multimedia compression in ARM7/ARM9 assembler;
  • Develop and present a four-hour presentation on audio compression, given first at Embedded Processor Forum, June, 2000; contribute to a four-hour presentation on digital audio and music given by Dana Massie at the same Embedded Processor Forum; revised and presented both talks at Microprocessor Forum, October 2000; both talks revised again with emphasis on streaming audio and presented at Embedded Processor Forum, June, 2001.

From:

1995 - 1996

Client: Audio Precision

And

1998 - 1999

Location: Portland, Oregon

 

Duties:

For their System 2 audio measurement device, developed double-precision FFT in assembler for Motorola 56002, including (Microsoft) C code to study where to maintain double-precision. Also, extensive code for AES/EBU and square wave measurement test suite, including jitter and eye pattern (assembling bit map for display in 56002 data memory space). 28K+ lines of assembler source. 1998-1999: Revise Audio Precision System 2 code for new 96 kHz Cascade hardware (Motorola 56303).

From:

1997

Client: Euphonics (later part of 3COM)

To:

1999

Location: Boulder, CO

 

Duties:

Implement Dolby AC-3 decoder in 16-bit integer assembler on new Analog Devices 16-bit integer AD1818 (PCI SoundComm). 20K+ lines of assembler source. Passed first round of Dolby testing on first try. Integrate with Euphonics’ Real-Time Kernel.

From:

1998

Client: undisclosed

To:

1999

Location: Silicon Valley, CA

 

Duties:

Assist a startup specializing in real-time music software in its attempts to be acquired. Included introducing company staff to personal contacts in various music companies, and participating in various meetings.

From:

1998

Client: undisclosed

To:

1998

Location: Silicon Valley, CA, and southern CA

 

Duties:

For a major chip manufacturer, I served as the sole outside member of the due diligence technical team evaluating a small but well-known synthesizer company ultimately acquired by the chip manufacturer. After visiting the synthesizer company's office with a team from my client, I provided a detailed written report on software, music synthesis chip architecture, and various management questions.

From:

1996

Client: Digital Technics (DTI)

To:

1997

Location: Baltimore, MD.

 

Duties:

Implementation of CCITT R2 telephony encoder/decoder (similar to DTMF) in Motorola 56002 assembler, based on Goertzel algorithm. 13K+ lines assembler. Deployed in the field in Asia and South America.

From:

1996

Client: VM Labs

To:

1996

Location: Los Altos, CA

 

Duties:

For this multimedia chip startup, provide detailed comments on a proprietary DSP chip architecture.

From:

1994

Client: undisclosed

To:

1995

Location: Asia

 

Duties:

For a major manufacturer of audio hardware, commissioned to write a study of audio over networks. Investigate and deliver a 40 page report touching on MIDI, ZIPI, 1394, PCMCIA, Ethernet, ATM, Lone Wolf, USB, and others.

From:

1993

Client: Oculix

To:

1995

Location: Switzerland

 

Duties:

Motorola DSP 56000 assembler for numerical and FFT analysis of real-time data gathered by laser from the human eye. 150K source.

From:

1993

Client: Centigram Communications Corporation.

To:

1994

Location: Silicon Valley CA (now part of SS8 Networks)

 

Duties:

Port of speech synthesis code from TI TMS320E17 assembler to Motorola DSP 56002 assembler on Motorola PC Media card; port to Analog Devices ADSP 2115 assembler on Echo Personal Sound System.

From:

1993

Client: Atari

To:

1994

Location: Sunnyvale, CA

 

Duties:

implement physical modeling music synthesis techniques on custom RISC/DSP chip inside Jaguar. Prepare written comments on a new custom DSP architecture.

From:

1993

Client: undisclosed

To:

1993

Location: New England

 

Duties:

For a US audio manufacturer, write audio recording, storage, and playback functions in assembler for Analog Devices ADSP 2105. Farmed out DAC/ADC device drivers to subcontractor. Also farmed out front-panel code on Philips/Signetics 80C51 family of controllers to different subcontractor.

From:

1993

Client: Euphonics

To:

1993

Location: Boulder, CO

 

Duties:

For this software music synthesizer company, write C routines to emulate certain hardware elements in the target system. This allowed the company to study aspects of caching parameter updates, for optimizing real-time performance.

From:

1993

Client: undisclosed

To:

1993

Location: Bay Area, CA

 

Duties:

For a research project involving DSP architecture, write a series of Java classes to emulate the typical components of a DSP chip.

From:

1987

Client: Shure

To:

1988

Location: Evanston (now Niles), IL

 

Duties:

Working from the written specification for a proprietary algorithm, develop C and TI TMS 32010 assembler for a multi-channel consumer audio product prototype.

From:

1987

Client: NeXT, Inc.

To:

1988

Location: Silicon Valley, CA

 

Duties:

Developed, debugged, and documented more than 50 routines in the Motorola DSP 56000 assembler vector library (with Julius O. Smith; source 2" thick, available from SourceForge ). While working off-site for over a year before NeXT was publicly released, maintain secrecy about the fact that NeXT would include a 56000 processor.

From:

1986 or
1987

Client: Sonic Solutions

To:

1986 or
1987

Location: San Francisco CA

 

Duties:

As one of the first consultants hired by Sonic Solutions (located in their first office in San Francisco), port their C noise-reduction code from one flavor of Unix to another.

Other experience:

  • Studies of micromachining and nanotechnology.
  • Experience with the Star Semiconductor SPROC chip, the IBM MWAVE chip and operating system, OS-9, and Spectron's SPOX operating system.
For more information on my background, see my on-line resume. If you would like more information about how I can help you with DSP consulting, contact (Dr.) John Strawn.

Go to S Systems, Inc. Home Page Send Us E-Mail About