On Thu, Dec 19, 2002 at 02:41:47PM +0100, David Olofson wrote:
On Thursday 19 December 2002 04.33, Tim Hockin wrote:
The net
result is that if tempo is 120 BPM and SPEED is 2.0, you
get fast forward at 240 BPM.
Of course, you may run backwards and stuff that way as well, but
don't expect the synths to play sounds backwards... ;-)
Sounds sane - and that implies negative tempo?
Yes.
True, the effective tempo is negative, but think the SPEED control should be
decoupled.
- the SPEED control also affects the effective sample rate (not the rate in
the processing graph, but the rate at which the audio material is played).
Depending on the plugin it can decide how to implement it, eg. resampling,
pitch shifting, adjustment of LFO/envelope etc.
- tempo is indeed influenced, to keep the model consitent with the sample stream
and parameter values (for which only the plugin know what to do with in case
of a change of SPEED, eg. LFO)
- for plugins or hosts that do not support the SPEED, the repositioning
events are still usefull without the additional hinting from the SPEED
control. The SPEED only allows the plugins to generate usefull noise in
case the user starts fiddling with it.
- essential is that the relation between media time and musical time is not
changed! The whole perception of time is influenced.
A nice real-life example of use for this SPEED control is the pitch control
function as seen on CD decks and turntables. The DJ uses this control to
manualy obtain and maintain beat sync between sources. Modern CD decks
perform the SPEED changes without influencing the pitch of the song.
When running a MIDI sequencer or drum machine in beat sync with a record,
the dj (actually a gear jockey :-) simply fiddles with the tempo control to
keep every thing grooving. The SPEED control I proposed would provide the
additional abstraction layer to allow the plugins to be smart enough to keep
the sample and event streams running smoothly together.
I have no clue how this would be beneficial to classical or indian style of
music ;-)
It's scary, but I
guess correct... Do we really want to deal with playing during
shuttles?
Yes, I think so. If?you've done some sequencing of music with long
notes (strings and stuff), I think you know how frustrating it can be
to play 6 bars just to hear if you got that edited note right... :-)
If you can just FFWD with playback to the place you're interested in,
samples and stuff may be out of sync, but at least, all the notes
will be there. (And the beat sync effects will be in sync, BTW. :-)
a plugin _could_ be in sync (of course depends on the plugin).
Think of Sonic Foundry ACID. That is a in fact a sequencer which plays
samples (looped or not), and performs real-time timestreching/pitch
adjustment. The XAP API should certainly support a plugin with similar
capabilities as ACID's playback/resampling engine.
The sequencer needs to send reversed ON/OFF
events, but
that's no big deal..
Yeah, that's what a MIDI sequencer has to do as well, if it supports
backwards playback at all. (Only seen "retrograde" edit functions so
far; never real time reverse playback.)
I'm not sure it should at all times, though. Some synths might
actually want to understand reverse playback - but then again, there
would still be missing information. (Note duration, history of pitch
control, etc...)
//David Olofson - Programmer, Composer, Open Source Advocate
.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`--------------------------->
http://olofson.net/audiality -'
---
http://olofson.net ---
http://www.reologica.se ---
--
+---- --- -- - - - -
| Frank van de Pol -o) A-L-S-A
| FvdPol(a)home.nl /\\ Sounds good!
|
http://www.alsa-project.org _\_v
| Linux - Why use Windows if we have doors available?