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. :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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. :)
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