PNW AES Banner

n.b. Chrome users need to refresh their browsers to ensure they have the latest content.

Meeting held Saturday, January 9, 2016, noon-5pm at a small, private audio research facility in Redmond, WA.

AES PNW Section Meeting Report
Sample Rate Conversion: A Saturday Afternoon Discussion
with James D. (JJ) Johnston, AES & IEEE Fellow
and Bob Smith
BS Studios, Principal Scientist - Acoustic Systems, Physio-Control
image linked to aes_src_jan2016-5.jpg
AES PNW Section Leaders open the meeting, L-R Chair Christopher Deckard, Vice Chair Steve Turnidge, Presenter and Committeeman JJ Johnston.
image linked to aes_src_jan2016-6.jpg
Presenter and AES PNW Section Committee member Bob Smith points out the down-side of inappropriate sample rate conversion.
image linked to aes_src_jan2016-7.jpg
Presenters and PNW Committee Members Bob Smith and JJ Johnston with PNW Section Chair Christopher Deckard

96k mp3 64k mp3
Part 1 (39.9mb mp3)  
Part 2 (54.1mb mp3) 
Part 3 (59.7mb mp3)  
Part 1 (27.5mb mp3)  
Part 2 (37.4mb mp3) 
Part 3 (42.1mb mp3) 

Scroll to bottom of this page for Octave/MatLab scripts and brief instructions on use.

Photos by Gary Louie

The PNW Section kicked off 2016 with a Saturday afternoon session about sampling rate conversion (SRC). AES/IEEE Fellow James D. (JJ) Johnston gave a tutorial on sampling, how sampling creates and controls the whole process, what a SRC does, how it works, and what it should and should not do. Bob Smith, of the AES PNW committee and an acoustic scientist at Physio-Control, then gave a presentation about SRC testing, with results showing aliasing and step response of different filters. Snack breaks were held about every hour. The meeting was held at a new, as-yet-to-be-named audio research company in Redmond, WA. 41 people attended, about 18 being AES members. Full A/V documentation will be available as well as the Powerpoint decks of the entire meeting.
Our Presenters:
James D. (JJ) Johnston earned the BSEE and MSEE degrees from Carnegie-Mellon University, Pittsburgh, PA in 1975 and 1976 respectively. JJ temporarily retired in 2002 but worked 26 years for AT&T Bell Labs and its successor AT&T Labs Research. He was one of the first investigators in the field of perceptual audio coding, one of the inventors and standardizers of MPEG 1/2 audio Layer 3 and MPEG-2 AAC, as well as the AT&T Bell Labs or AT&T Labs-Research PXFM (perceptual transform coding) and PAC (perceptual audio coding) and the ASPEC algorithm that provided the best audio quality in the MPEG-1 audio tests.

Most recently he has been working in the area of auditory perception of soundfields, electronic soundfield correction, ways to capture soundfield cues and represent them, and ways to expand the limited sense of realism available in standard audio playback for both captured and synthetic performances. He was most recently employed by DTS Audio and his current status is retired.

Mr. Johnston is an IEEE Fellow, an AES Fellow, a NJ Inventor of the Year, an AT&T Technical Medalist and Standards Awardee, and a co-recipient of the IEEE Donald Fink Paper Award. Mr. Johnston has presented many times for the PNW Section, most recently on the issues surrounding "Dynamic Range." In 2006, he received the James L. Flanagan Signal Processing Award from the IEEE Signal Processing Society, and presented the 2012 Heyser Lecture at the AES 133rd Convention: Audio, Radio, Acoustics and Signal Processing: the Way Forward.

Bob Smith Bob Smith has a BSEE from the University of Washington and has worked in the Biomedical industry for over 40 years. The last 30 years he has spent developing acoustic research and audio engineering disciplines for Physio Control to improve speech intelligibility for medical device voice prompting and voice recording systems in noisy environments. He is responsible for voice prompting in 30+ languages. The department now handles acoustic measurements of components such as drivers, microphone capsules and system measurements including Thiele-Small parameters, polar plots, waterfalls, frequency response, impulse response, several speech intelligibility methods, etc. When he's not playing acoustic/audio monkey for his corporate master, he runs an acoustic lab, soundSmith Labs. From time to time, he can also be found recording local musical talents. Currently he is working on audibility and measurements of DAC jitter.

JJ began with The Shannon Sampling theorem (i.e. Nyquist criterion) which dictates all with PCM digital audio. An SRC must never allow aliasing, where unfiltered spectrum images overlap the desired baseband audio signal, otherwise "stuff" happens. JJ played an example that shall never be reproduced again, but that did prove the point of "don't do that".

So, now you need to interpolate data? Yes, and to satisfy what the ear is senstive to, including the frequency domain. He continued with problems with filter design and how that can interact with the original signal, which might have used half-band filters to bad effect. JJ has stats on thousands of CDs showing much questionable antialiasing (also much poor quantization, much clipping, and a whole host of other problems in various 'don't do that' catagories.)

Continuing with filter design, JJ covered FIR, IIR, an attempt at apodizing, and half band filters, as well as filter calculation costs, efficiency, and multi-step filtering. Rate conversion at fractional rates, i.e. 8/3 fractional rates were introduced. Some mention of how to do rate reduction in steps was included, perhaps including a bit of confusion on how to do that (n.b. jj added italicised comment). Finally, how to do conversion ratios with terrible least-common multiples was briefly discussed. FIR filter design was demonstrated using Matlab (expensive) or Octave (freeware!) showing ripple and pre-echo problems.

Throughout the discussion, the use of SRC for subsample delays was mentioned repeatedly, both for fixed and changing delays.

After a snack break, Bob Smith discussed SRC tests. He began with a photo analogy of incremental degradation - the photo gets blurrier with more aliasing. Aliasing (spectra not filtered reflects back into the passband) examples were played. JJ pointed out that this aliasing demo relates exactly to bad clipping scenarios during digital processing as well as for SRC.

Charts of step response (square waves) through different filter types (linear phase, minimum phase, hybrids) were shown, with different "ringing" at transitions. Such tests may help you determine what filtering is used in a DUT (Device Under Test). Lastly, SRC example test result charts were shown, using the Octave script for testing..

During a break, door prizes of booth swag obtained from the 2015 AES 139th Convention in NYC, courtesy of Gary Louie were awarded:

  • AES 139th Convention Daily set - won by Steve Turnidge
  • AES 139th Convention Program book - won by Rick Chinn
  • Nagra Jazz piano competition CD - won by Vincent Amsden
  • DPA lanyard - won by Keith Elliot
  • LAWO tote bag - won by Lindsay Smith
  • Sennheiser lanyard and pen set - won by Bob Cavanaugh
  • Yamaha gig bag - won by Andy Meyer
Finally, JJ had a coda on SRC testing:
The message was that you should test your SRC yourself with your setup - Octave script provided.
He showed examples of charts of a good, and bad SRC, upsampling and downsampling.

Instructions For Producing Plots:
The files below allow you to create sample files for analysis using Octave. Start by using the bzzztmaker.m script, applying the appropriate internal selections to produce the sample wave file you wish to use. Then, in your editor of choice, perform the sample rate conversion on the sample, naming the output file appropriately (see example below), and run the appropriate script on that file to produce the plot for that converted file.
Example: Want to evaluate Pro Tools SRC from 48 to 88 KHz.
  • bzzztmaker.m with appropriate internal settings is used to create bzzzt48.wav
  • bzzzt48.wav is imported into Pro Tools and converted to 88 KHz
  • resulting converted sample is exported to a file named bzzzt48_88.wav
  • octave or matlab is run and script src48_88.m invoked
  • plot of the converted file appears
Octave/Matlab Scripts for Download
"bzzztmaker.m" script to produce initial wave sample 
"src48_44.m" script to produce plot for 48 to 44.1 
"src48_88.m" script to produce plot for 48 to 88.2 
"src48_96.m" script to produce plot for 48 to 96 
"src96_11.m" script to produce plot for 96 to 11 
"src96_32.m" script to produce plot for 96 to 32 
"src96_44.m" script to produce plot for 96 to 44.1 

Reported by Gary Louie, PNW Section Secretary

Last modified 01/14/2016, 16:15:00, (dtl)