Menu

Respeed, BPM transition tweaks, Ogg, etc

2000-06-15
2000-06-23
  • Gregory Maxwell

    Gregory Maxwell - 2000-06-15

    First off, I think GDAM is an awesome tool and I've already been having a lot of fun with it. Below is a mass of ideas, and tweaks.. I'd love to discuss any of them, some of them are certantly blue-sky wishlist things others are more practicle.

    Insted of just adjusting the sampling rate, would it be possible to add an option to respeed insted (or hybryd, respeed upto 5% difference, etc)?  On a fast system, respeed with a 4k block sound much more seemless then just resampling.. Respeed might be enhanced by using better pre/post aliasing filtering, and perhaps using beat information to align windowing on beat boundarys to avoid time domain munging (pre-echo, etc).

    Respeed is particularly important for mp3/ogg audio because the perceptual compression depends on masking to hide artifacts. When you pitch shift or excessivly EQ the audio you blow the calculations and make artifacts audible.

    Also, would it be possible to make the BPM slider on the non-locked table slide between that songs own BPM and the BPM of the locked song? This would make it easier (when using a external controler at least) to return to the normal BPM of a song (i.e. so you could go from a 130bpm song to a 120bpm (initally playing at 130bpm) to a 110bpm song (initally playing at 120bpm) very seemlessly)..

    This can currently be accomplished, but it would be alot easier if you could cap the BPM as you slide.

    Ogg/Vorbis (http://www.xiph.org) is an open source perceptual audio compression alg. It offers superior size/quality to mp3 and it is not patent encoumbered.
    It will reach 1.0 beta in a few days, and I was wondering if any though had been given to supporting it.

    Playlist: It would be nice if you could sort on any comment/id3 field.

    Several sound cards support 24bit output on Linux. It would be ideal if GDAM supported outputing it's full internal resolution to supported devices.

    LCD display: It would be nice if I could get a serial stream out of the table with the largest gain on output to display the song name (I have a LCD sign with serial input).

    Pulse per beat, I dunno of GDAM currently support it (didn't find it but..) it would be nice if GDAM could be configured to generate a midi event (and perhaps flash CTS on a serial port) every time a beat occures in the playing music. I would use this as input to my midi->dmx perl script to sync up lighting. The serial interface could be used to drive strobes,etc.. (not as important as midi as a seperate midi app could perform that task).

    I'm not sure if alsa has virtual PCM devices like it has virtual midi devices, but if it does you might want to use them as alternative inputs to gdam.

    It would also be useful to have wfir as a filter. Sooner or later wfir will be a complete package for room EQ, very useful when playing a small venue with 1600watts of sub woofer.. You don't want to over boom the place. :)

    I'm sure I've dumped enough now..  I just wanted to get this posted before I forget it. :)

     
    • geoff matters

      geoff matters - 2000-06-23

      Lots of good ideas.

      I'm aware of and intrigued by vorbis and have considered support
      for it.   The simplest way would probably be to wrap a command-line
      player which could output pcm sound to stdout... we use mpg123 this
      way to play mp3 files.  When repositioning within songs, we start a
      new mpg123 process at closest point we can (mpg123 only starts at
      even frames) and read/discard data until we get to the exact starting
      sample.  If the vorbis/ogg player offered similar or better position control
      when starting a song, it should be simple to support it in a similar fashion.
      I haven't read technical details on vorbis format, but if there's a nice library
      and API available, direct support of the format might be preferred .  If
      anyone wants to try adding vorbis support, we'd be happy to help
      them out.   If nobody else does it, we might add support ourselves
      oneday.

        -geoff

       

Log in to post a comment.

MongoDB Logo MongoDB