9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Lawrence E. Bakst" <ml@iridescent.org>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] audio standards -- too many to choose from
Date: Wed, 12 Aug 2009 01:54:31 -0400	[thread overview]
Message-ID: <p06240806c6a7f9e1aaa3@[192.168.0.142]> (raw)
In-Reply-To: <Pine.BSI.4.64.0908111500280.20861@malasada.lava.net>

You really have to ask yourself what are the goals for a new audio system and what "use cases" do you want to cover. I have some experience in this area, but I'm not a true expert. Here are 5 thoughts to be considered and an anecdote:

1. audio
I thought Russ's response was pretty good and about what I would do as a first step. "High end" or "Pro" audio is more than 16 bit these days, although 16 bits probably covers at least 80 or 90% of the "the market".
http://pro.sony.com/bbsc/ssr/cat-audio/cat-recorders/product-PCMD1/
http://pro.sony.com/bbsc/ssr/cat-audio/resource.latest.bbsccms-assets-cat-audio-latest-pcmd50.shtml

2. clocks
This is the most important thing to think about. What is your model for how the clocking will work? Beyond the simple case that Russ outlined of sending data to an old 16 bit Sound Blaster lay more complex cases that have to do with audio data and its associated clocks. If you desire to do complex things with audio at some point you will have to consider clocking.

3. video (when I say video I mean movies and not graphics)
If you think you are ever going to want to use your new audio system with a corresponding video system, you need to consider that from the outset. Audio and video need to be kept in sync with a common clock and perhaps adjustments need to be made for different latencies through each path. The lack of sync between audio and video that is so common today is a direct result of engineers that either don't understand the clocking issues, got it wrong, or ignored it. I see this over and over again. See the anecdote below.

4. muxing
Once you have audio and video the next thing you have to worry about is muxing. I think muxing can be kept out of the kernel but there are subtle interactions with clocking and other device stacks (see below) so I am not so sure.

5. complexity and modern life
It's one thing to blast some audio out to an old 16 bit Sound Blaster. It's another thing to capture A/V data from a Firewire camcorder and run the audio out to a set of powered USB speakers and the video to the screen or someplace else and have everything be in sync and work properly.

anecdote:
I once tried to fire an engineer that was writing and A/V driver for Windows. The CEO wouldn't let me. The engineer almost had it working but the root cause of all the audio artifacts from that driver was caused by his code keeping two separate clocks in software, one for video and one for audio. He was told that, told which lines of code to change, and even how to change them, but he refused to make the changes. He got so stressed out over all this that he walked off the job. He literally said, "I am going for out for a haircut" and never came back. We changed about 10-15 lines of code in his driver to derive one clock from the other and it all worked perfectly. Talk about timing.
--
leb@iridescent.org




  parent reply	other threads:[~2009-08-12  5:54 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-12  1:08 Tim Newsham
2009-08-12  1:14 ` erik quanstrom
2009-08-12  1:31   ` Tim Newsham
2009-08-12  1:45     ` erik quanstrom
2009-08-12  2:07       ` Tim Newsham
2009-08-12  3:14         ` ron minnich
2009-08-12  3:24           ` erik quanstrom
2009-08-12  4:49             ` Charles Forsyth
2009-08-12  4:24           ` Russ Cox
2009-08-12  4:35             ` Charles Forsyth
2009-08-12 15:12               ` Russ Cox
2009-08-12  4:36             ` Roman Shaposhnik
2009-08-12 15:36               ` hiro
2009-08-14  2:45                 ` Roman V. Shaposhnik
2009-08-14 13:56                   ` hiro
2009-08-12  5:15             ` Tim Newsham
2009-08-12  5:39               ` Roman Shaposhnik
2009-08-12  8:28                 ` Tim Newsham
2009-08-12  9:30                   ` Steve Simon
2009-08-13  2:16                   ` Roman Shaposhnik
2009-08-13  3:17                     ` erik quanstrom
2009-08-13 22:48                     ` James Tomaschke
2009-08-13 22:52                       ` erik quanstrom
2009-08-13 23:19                         ` Christopher Nielsen
2009-08-13 23:47                         ` James Tomaschke
2009-08-14  0:00                           ` erik quanstrom
2009-08-14  1:13                             ` James Tomaschke
2009-08-14  1:41                               ` Anthony Sorace
2009-08-14  2:30                                 ` James Tomaschke
2009-08-14  1:42                               ` Devon H. O'Dell
2009-08-14  1:51                                 ` Devon H. O'Dell
2009-08-14  2:22                                 ` James Tomaschke
2009-08-14  3:16                                   ` Charles Forsyth
2009-08-14  3:42                                     ` James Tomaschke
2009-08-14  7:04                                       ` Charles Forsyth
2009-08-14 20:43                                         ` James Tomaschke
2009-08-15  9:26                                           ` Steve Simon
2009-08-14 13:16                                     ` matt
2009-08-14  4:51                                   ` Devon H. O'Dell
2009-08-14  5:01                                     ` Devon H. O'Dell
2009-08-14  5:56                                       ` James Tomaschke
2009-08-19  9:58                                         ` matt
2009-08-14  5:18                                     ` James Tomaschke
2009-08-14 14:39                                       ` Devon H. O'Dell
2009-08-14  9:16                                   ` Paul Donnelly
2009-08-14 13:47                                     ` hiro
2009-08-14 20:03                         ` Tim Newsham
2009-08-14 21:24                   ` sqweek
2009-08-14 21:54                     ` Skip Tavakkolian
2009-08-15 12:23                       ` hiro
2009-08-14 22:05                     ` Bakul Shah
2009-08-12  5:43               ` Anthony Sorace
2009-08-12  5:59                 ` Roman Shaposhnik
2009-08-12  6:11                   ` Roman Shaposhnik
2009-08-12 11:18                   ` erik quanstrom
2009-08-13  2:06                     ` Roman Shaposhnik
2009-08-12 22:11             ` James Tomaschke
2009-08-13  7:45             ` Skip Tavakkolian
2009-08-12  4:20         ` Roman Shaposhnik
2009-08-12  4:25           ` erik quanstrom
2009-08-12  4:50             ` Roman Shaposhnik
2009-08-12  5:10               ` Tim Newsham
2009-08-12  5:25                 ` Roman Shaposhnik
2009-08-12 15:42                 ` David Leimbach
2009-08-12  5:15               ` Anthony Sorace
2009-08-13  6:42               ` Skip Tavakkolian
2009-08-13 13:07                 ` erik quanstrom
2009-08-13 13:30                   ` Skip Tavakkolian
2009-08-13 13:31                   ` Devon H. O'Dell
2009-08-13 14:31                     ` Anthony Sorace
2009-08-13 14:41                       ` Devon H. O'Dell
2009-08-13 17:20                       ` hiro
2009-08-12 15:30             ` hiro
2009-08-12  5:54 ` Lawrence E. Bakst [this message]
2009-08-12  6:13   ` Roman Shaposhnik
2009-08-12 19:50 ` Tim Newsham
2009-08-12 20:57   ` Bakul Shah
2009-08-13  2:18   ` Roman Shaposhnik
2009-08-13  3:46     ` Tim Newsham
2009-08-13 17:00       ` Devon H. O'Dell
2009-08-13 19:13         ` Christopher Nielsen
2009-08-15  0:44 erik quanstrom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='p06240806c6a7f9e1aaa3@[192.168.0.142]' \
    --to=ml@iridescent.org \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).