Old 11th January 2005, 06:43   #1
thefellow3j
Junior Member
 
Join Date: Jan 2005
Posts: 2
Idea: Playback Speed Control... from input plug-ins?

While I was messing around with FruityLoops, I noticed that the "Sampler" channel settings showed "loop points" for certain sounds. So here's an idea:

What if an input plugin (or a plugin that operated between the input and output plugins) could be designed to control exactly how long a specific position in a music file was heard? (I guess you could use an MP3 frame, for example.)

If a plugin could control the amount of time one VERY SMALL position in the song was allowed to play, then it seems to me that it would be possible to alter the speed of the song. I also think this method would drastically cut down the distortion. Hey, it worked for FruityLoops...

Of course, if input plugins were designed, the algorithms used would have to change for each file format.

Just a possibility.
thefellow3j is offline   Reply With Quote
Old 11th January 2005, 13:16   #2
saivert
Banned
 
saivert's Avatar
 
Join Date: Jan 2001
Location: Norway
Posts: 927
There already are a couple of DSP plugins that allows you to adjust playback speed and pitch.
saivert is offline   Reply With Quote
Old 15th January 2005, 04:42   #3
thefellow3j
Junior Member
 
Join Date: Jan 2005
Posts: 2
Yes, there are, but those are all generalized, and aren't fully capable of delivering higher quality than what they already produce.

The perfect example of what I'm talking about is SNESAMP, the SNES music plugin. It features flawless pitch and tempo control.

That's what I meant by having the control nested in the actual input plugin. For example, I recall somewhere in the Pacemaker readme that the values for its Tempo and Speed ratings had a limit, due to limits in the ability of Winamp to output sound (most likely possible underrun errors).

No sound processing can start until the music is read from the disk. It seems to me that the best time to do any real-time editing of the music is right after the plugin reads the music off the hard disk, before sending the sound to the rest of Winamp.

BTW, that new Chronotron expired before I had a chance to use the thing! As such, I don't know if it does this any better or not, and it looks like it'll stay that way. Bummer.
thefellow3j is offline   Reply With Quote
Old 17th January 2005, 10:23   #4
saivert
Banned
 
saivert's Avatar
 
Join Date: Jan 2001
Location: Norway
Posts: 927
Thoughts...
The DSP and Output plugins depends on the input plugin to feed them data. The current Winamp plugin architechture specifies that input plugins must create a separate decode Thread which will manage the decoding (read from disk - decompress) and send the data to the DSP and then send the data modified by the selected DSP plugin/effect to the currently selected output plugin. Different plugins use different methods of doing this. There is no way of knowing this. Some plugins does not even let the DSP/output plugins get any data at all. They send data directly to the sound-card themselves.

Things to do
You may ofcourse write your own input plugin for decoding MP3 files. Just use the BASS Audio Library for decoding and set the playback rate yourselves. You may optionally create a window (like SIDAMP does) thta let the user control various parameters.
saivert is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > Winamp Development

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump