Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jun 2009 19:12:08 +0000 (UTC)
From:      Ariff Abdullah <ariff@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/conf files options src/sys/dev/sound clone.c driver.c unit.c version.h src/sys/dev/sound/isa ad1816.c ess.c gusc.c mss.c sb16.c sb8.c sbc.c sndbuf_dma.c src/sys/dev/sound/macio aoa.c davbus.c i2s.c snapper.c tumbler.c ...
Message-ID:  <200906071914.n57JES16056787@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
ariff       2009-06-07 19:12:08 UTC

  FreeBSD src repository

  Modified files:
    sys/conf             files options 
    sys/dev/sound        clone.c driver.c unit.c version.h 
    sys/dev/sound/isa    ad1816.c ess.c gusc.c mss.c sb16.c sb8.c 
                         sbc.c sndbuf_dma.c 
    sys/dev/sound/macio  aoa.c davbus.c i2s.c snapper.c tumbler.c 
    sys/dev/sound/midi   midi.c mpu401.c sequencer.c sequencer.h 
    sys/dev/sound/pci    als4000.c atiixp.c aureal.c cmi.c 
                         cs4281.c csa.c csapcm.c ds1.c emu10k1.c 
                         emu10kx-midi.c emu10kx-pcm.c emu10kx.c 
                         envy24.c envy24ht.c es137x.c fm801.c 
                         ich.c maestro.c maestro3.c neomagic.c 
                         solo.c spicds.c t4dwave.c via8233.c 
                         via82c686.c vibes.c 
    sys/dev/sound/pci/hda hdac.c 
    sys/dev/sound/pcm    ac97.c ac97_patch.c buffer.c buffer.h 
                         channel.c channel.h channel_if.m dsp.c 
                         dsp.h feeder.c feeder.h feeder_rate.c 
                         feeder_volume.c mixer.c mixer.h sndstat.c 
                         sound.c sound.h vchan.c vchan.h 
    sys/dev/sound/sbus   cs4231.c 
    sys/dev/sound/usb    uaudio.c uaudio.h uaudio_pcm.c 
    sys/modules/sound/sound Makefile 
    sys/sys              soundcard.h 
  Added files:
    sys/dev/sound/pcm    feeder_chain.c feeder_eq.c 
                         feeder_format.c feeder_matrix.c 
                         feeder_mixer.c g711.h intpcm.h matrix.h 
                         matrix_map.h pcm.h sndstat.h 
    sys/tools            feeder_eq_mkfilter.awk 
                         feeder_rate_mkfilter.awk 
                         snd_fxdiv_gen.awk 
  Removed files:
    sys/dev/sound/pcm    fake.c feeder_fmt.c 
  Log:
  SVN rev 193640 on 2009-06-07 19:12:08Z by ariff
  
  Sound Mega-commit. Expect further cleanup until code freeze.
  
  For a slightly thorough explaination, please refer to
          [1] http://people.freebsd.org/~ariff/SOUND_4.TXT.html .
  
  Summary of changes includes:
  
  1 Volume Per-Channel (vpc).  Provides private / standalone volume control
    unique per-stream pcm channel without touching master volume / pcm.
    Applications can directly use SNDCTL_DSP_[GET|SET][PLAY|REC]VOL, or for
    backwards compatibility, SOUND_MIXER_PCM through the opened dsp device
    instead of /dev/mixer.  Special "bypass" mode is enabled through
    /dev/mixer which will automatically detect if the adjustment is made
    through /dev/mixer and forward its request to this private volume
    controller.  Changes to this volume object will not interfere with
    other channels.
  
    Requirements:
      - SNDCTL_DSP_[GET|SET][PLAY|REC]_VOL are newer ioctls (OSSv4) which
        require specific application modifications (preferred).
      - No modifications required for using bypass mode, so applications
        like mplayer or xmms should work out of the box.
  
    Kernel hints:
      - hint.pcm.%d.vpc (0 = disable vpc).
  
    Kernel sysctls:
      - hw.snd.vpc_mixer_bypass (default: 1).  Enable or disable /dev/mixer
        bypass mode.
      - hw.snd.vpc_autoreset (default: 1).  By default, closing/opening
        /dev/dsp will reset the volume back to 0 db gain/attenuation.
        Setting this to 0 will preserve its settings across device
        closing/opening.
      - hw.snd.vpc_reset (default: 0).  Panic/reset button to reset all
        volume settings back to 0 db.
      - hw.snd.vpc_0db (default: 45).  0 db relative to linear mixer value.
  
  2 High quality fixed-point Bandlimited SINC sampling rate converter,
    based on Julius O'Smith's Digital Audio Resampling -
    http://ccrma.stanford.edu/~jos/resample/.  It includes a filter design
    script written in awk (the clumsiest joke I've ever written)
      - 100% 32bit fixed-point, 64bit accumulator.
      - Possibly among the fastest (if not fastest) of its kind.
      - Resampling quality is tunable, either runtime or during kernel
        compilation (FEEDER_RATE_PRESETS).
      - Quality can be further customized during kernel compilation by
        defining FEEDER_RATE_PRESETS in /etc/make.conf.
  
    Kernel sysctls:
      - hw.snd.feeder_rate_quality.
        0 - Zero-order Hold (ZOH).  Fastest, bad quality.
        1 - Linear Interpolation (LINEAR).  Slightly slower than ZOH,
            better quality but still does not eliminate aliasing.
        2 - (and above) - Sinc Interpolation(SINC).  Best quality.  SINC
            quality always start from 2 and above.
  
    Rough quality comparisons:
      - http://people.freebsd.org/~ariff/z_comparison/
  
  3 Bit-perfect mode.  Bypasses all feeder/dsp effects.  Pure sound will be
    directly fed into the hardware.
  
  4 Parametric (compile time) Software Equalizer (Bass/Treble mixer). Can
    be customized by defining FEEDER_EQ_PRESETS in /etc/make.conf.
  
  5 Transparent/Adaptive Virtual Channel. Now you don't have to disable
    vchans in order to make digital format pass through.  It also makes
    vchans more dynamic by choosing a better format/rate among all the
    concurrent streams, which means that dev.pcm.X.play.vchanformat/rate
    becomes sort of optional.
  
  6 Exclusive Stream, with special open() mode O_EXCL.  This will "mute"
    other concurrent vchan streams and only allow a single channel with
    O_EXCL set to keep producing sound.
  
  Other Changes:
      * most feeder_* stuffs are compilable in userland. Let's not
        speculate whether we should go all out for it (save that for
        FreeBSD 16.0-RELEASE).
      * kobj signature fixups, thanks to Andriy Gapon <avg@freebsd.org>
      * pull out channel mixing logic out of vchan.c and create its own
        feeder_mixer for world justice.
      * various refactoring here and there, for good or bad.
      * activation of few more OSSv4 ioctls() (see [1] above).
      * opt_snd.h for possible compile time configuration:
        (mostly for debugging purposes, don't try these at home)
          SND_DEBUG
          SND_DIAGNOSTIC
          SND_FEEDER_MULTIFORMAT
          SND_FEEDER_FULL_MULTIFORMAT
          SND_FEEDER_RATE_HP
          SND_PCM_64
          SND_OLDSTEREO
  
  Manual page updates are on the way.
  
  Tested by:      joel, Olivier SMEDTS <olivier at gid0 d org>, too many
                  unsung / unnamed heroes.
  
  Revision  Changes     Path
  1.1415    +32 -5      src/sys/conf/files
  1.675     +9 -0       src/sys/conf/options
  1.5       +6 -2       src/sys/dev/sound/clone.c
  1.22      +5 -1       src/sys/dev/sound/driver.c
  1.47      +26 -27     src/sys/dev/sound/isa/ad1816.c
  1.43      +27 -23     src/sys/dev/sound/isa/ess.c
  1.20      +8 -8       src/sys/dev/sound/isa/gusc.c
  1.113     +34 -30     src/sys/dev/sound/isa/mss.c
  1.98      +20 -16     src/sys/dev/sound/isa/sb16.c
  1.87      +17 -13     src/sys/dev/sound/isa/sb8.c
  1.49      +4 -0       src/sys/dev/sound/isa/sbc.c
  1.4       +4 -0       src/sys/dev/sound/isa/sndbuf_dma.c
  1.4       +12 -6      src/sys/dev/sound/macio/aoa.c
  1.4       +12 -6      src/sys/dev/sound/macio/davbus.c
  1.4       +7 -1       src/sys/dev/sound/macio/i2s.c
  1.3       +9 -3       src/sys/dev/sound/macio/snapper.c
  1.3       +9 -3       src/sys/dev/sound/macio/tumbler.c
  1.26      +19 -1      src/sys/dev/sound/midi/midi.c
  1.5       +36 -18     src/sys/dev/sound/midi/mpu401.c
  1.31      +20 -2      src/sys/dev/sound/midi/sequencer.c
  1.10      +1 -1       src/sys/dev/sound/midi/sequencer.h
  1.28      +24 -20     src/sys/dev/sound/pci/als4000.c
  1.22      +19 -19     src/sys/dev/sound/pci/atiixp.c
  1.37      +16 -12     src/sys/dev/sound/pci/aureal.c
  1.47      +22 -18     src/sys/dev/sound/pci/cmi.c
  1.28      +33 -26     src/sys/dev/sound/pci/cs4281.c
  1.39      +7 -3       src/sys/dev/sound/pci/csa.c
  1.42      +22 -19     src/sys/dev/sound/pci/csapcm.c
  1.54      +33 -29     src/sys/dev/sound/pci/ds1.c
  1.71      +37 -32     src/sys/dev/sound/pci/emu10k1.c
  1.6       +11 -4      src/sys/dev/sound/pci/emu10kx-midi.c
  1.12      +40 -36     src/sys/dev/sound/pci/emu10kx-pcm.c
  1.16      +11 -3      src/sys/dev/sound/pci/emu10kx.c
  1.17      +26 -23     src/sys/dev/sound/pci/envy24.c
  1.19      +26 -23     src/sys/dev/sound/pci/envy24ht.c
  1.72      +23 -23     src/sys/dev/sound/pci/es137x.c
  1.34      +21 -16     src/sys/dev/sound/pci/fm801.c
  1.104     +25 -25     src/sys/dev/sound/pci/hda/hdac.c
  1.81      +13 -10     src/sys/dev/sound/pci/ich.c
  1.38      +32 -48     src/sys/dev/sound/pci/maestro.c
  1.36      +31 -27     src/sys/dev/sound/pci/maestro3.c
  1.38      +15 -11     src/sys/dev/sound/pci/neomagic.c
  1.46      +29 -25     src/sys/dev/sound/pci/solo.c
  1.8       +4 -0       src/sys/dev/sound/pci/spicds.c
  1.55      +32 -28     src/sys/dev/sound/pci/t4dwave.c
  1.38      +25 -26     src/sys/dev/sound/pci/via8233.c
  1.44      +16 -12     src/sys/dev/sound/pci/via82c686.c
  1.28      +18 -14     src/sys/dev/sound/pci/vibes.c
  1.75      +18 -13     src/sys/dev/sound/pcm/ac97.c
  1.12      +4 -0       src/sys/dev/sound/pcm/ac97_patch.c
  1.38      +76 -29     src/sys/dev/sound/pcm/buffer.c
  1.18      +6 -5       src/sys/dev/sound/pcm/buffer.h
  1.124     +985 -668   src/sys/dev/sound/pcm/channel.c
  1.39      +149 -72    src/sys/dev/sound/pcm/channel.h
  1.8       +29 -15     src/sys/dev/sound/pcm/channel_if.m
  1.114     +635 -220   src/sys/dev/sound/pcm/dsp.c
  1.14      +3 -1       src/sys/dev/sound/pcm/dsp.h
  1.19      +0 -164     src/sys/dev/sound/pcm/fake.c (dead)
  1.45      +36 -411    src/sys/dev/sound/pcm/feeder.c
  1.16      +143 -43    src/sys/dev/sound/pcm/feeder.h
  1.1       +843 -0     src/sys/dev/sound/pcm/feeder_chain.c (new)
  1.1       +703 -0     src/sys/dev/sound/pcm/feeder_eq.c (new)
  1.24      +0 -1435    src/sys/dev/sound/pcm/feeder_fmt.c (dead)
  1.1       +300 -0     src/sys/dev/sound/pcm/feeder_format.c (new)
  1.1       +825 -0     src/sys/dev/sound/pcm/feeder_matrix.c (new)
  1.1       +402 -0     src/sys/dev/sound/pcm/feeder_mixer.c (new)
  1.24      +1570 -469  src/sys/dev/sound/pcm/feeder_rate.c
  1.7       +275 -118   src/sys/dev/sound/pcm/feeder_volume.c
  1.1       +225 -0     src/sys/dev/sound/pcm/g711.h (new)
  1.1       +136 -0     src/sys/dev/sound/pcm/intpcm.h (new)
  1.1       +218 -0     src/sys/dev/sound/pcm/matrix.h (new)
  1.1       +567 -0     src/sys/dev/sound/pcm/matrix_map.h (new)
  1.66      +230 -43    src/sys/dev/sound/pcm/mixer.c
  1.21      +13 -1      src/sys/dev/sound/pcm/mixer.h
  1.1       +438 -0     src/sys/dev/sound/pcm/pcm.h (new)
  1.29      +9 -12      src/sys/dev/sound/pcm/sndstat.c
  1.1       +163 -0     src/sys/dev/sound/pcm/sndstat.h (new)
  1.123     +171 -315   src/sys/dev/sound/pcm/sound.c
  1.82      +204 -350   src/sys/dev/sound/pcm/sound.h
  1.37      +659 -699   src/sys/dev/sound/pcm/vchan.c
  1.6       +26 -8      src/sys/dev/sound/pcm/vchan.h
  1.11      +20 -16     src/sys/dev/sound/sbus/cs4231.c
  1.2       +5 -1       src/sys/dev/sound/unit.c
  1.49      +58 -5      src/sys/dev/sound/usb/uaudio.c
  1.11      +2 -0       src/sys/dev/sound/usb/uaudio.h
  1.27      +17 -8      src/sys/dev/sound/usb/uaudio_pcm.c
  1.3       +1 -1       src/sys/dev/sound/version.h
  1.23      +15 -1      src/sys/modules/sound/sound/Makefile
  1.51      +21 -1      src/sys/sys/soundcard.h
  1.1       +467 -0     src/sys/tools/feeder_eq_mkfilter.awk (new)
  1.1       +767 -0     src/sys/tools/feeder_rate_mkfilter.awk (new)
  1.1       +142 -0     src/sys/tools/snd_fxdiv_gen.awk (new)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906071914.n57JES16056787>