Is there a timestamp implemented that will allow for reverse playback of a channel or even control settings?
I am thinking of reverse sequence playback or just setting a register to "reverse" so things like scratching with midi will be possible.
I've never heard of anything existing, but it would be easy enough to do - play a midi file in reverse.
However, just off the top of my head, there is ar least one midi process that would not readily work, and would need extra intervention. There are other aspects of this.
The Bank Select/Instrument select process requires at least 3 midi commands in a set sequence (more specifically the last line MUST be the last line), these could NOT merely be reversed.
More generally, any PC command obviously affects all the following notes on that channel, these could not just be reversed. Other CC events could have a similar problem, although maybe not so dramatic.
And of course, this would not alter the 'sound' of the notes being played, which would still be the 'correct' war round.
I would conclude that while this might be possible, it will not be practical, and may not produce the effect you are seeking.
Geoff
I've never heard of anything existing, but it would be easy enough to do - play a midi file in reverse.
However, just off the top of my head, there is ar least one midi process that would not readily work, and would need extra intervention. There are other aspects of this.
The Bank Select/Instrument select process requires at least 3 midi commands in a set sequence (more specifically the last line MUST be the last line), these could NOT merely be reversed.
More generally, any PC command obviously affects all the following notes on that channel, these could not just be reversed. Other CC events could have a similar problem, although maybe not so dramatic.
I would conclude that while this might be possible, it will not be practical, and may not produce the effect you are seeking.
Geoff
Thanks for the response.
I think the concept I am looking for would require multiple clocks controlled by a master clock - meaning each channel will have its own clock + a forward backward register.
If I break it down for a eurorack example for a sampler with a "MIDI to CV controller" you would implement the reverse register on the target device.
Then have a separate "reset" register or gate input just to trigger the sample or midi sequence in time on the measure you like.
Like this you get one measure of "freedom" from what the master clock does and still be "in synch" measure wise.
Most midi Controllers for DJ's I have seen work around those limitations in some way or let you use a timecode that basically is a concept we all know from syncing audio to video and this was existing before MIDI even.
I would love to have this possibilities especially for DJ control added to the MIDI protocols itself already than having to implement it on the target later for my personal taste.
From a sound design perspective just having slight changes in the clocks is as well extremely handy for controlling multiple sound sources.
Time would be controllable in MIDI then and open possibilities most people would not use even or think of yet.
I understand that it might not be feasible to implement in the current design - however I think this is something we need to look into in the future.
Otherwise it will be difficult to get a real standard for midi time control if you still want to have a human taking control over the clock like a DJ would or many other examples. Everyone will work around this Limitation in another way for those products and sound designs.
Hm, just thought of another problem!
All notes are implemented via a Note On event, followed some time later by a Note Off event. The required volume (velocity) setting is part of the Note On event. If you try to play the midi file in reverse, then the 'play' will hit the Off event first, and this will do nothing as the note is not playing, then later it will come to the note On event which will start the note playing, but there will likely be no Off to follow, so the note will just play, notes playing will accumulate, and this will produce a cacophony??
I would suggest that the only viable way to do what you (I think) want to achieve will be to have a separate program that will process the midi data from the original midi file into a new file. This process will preserve the order of some events, and move other events as required (such as reverse Note On and Off events, move PC events to preceed the new note On, etc) and then play the new modified midi file, although the individual notes (sounds) will still play the 'normal' way around because that is nothing to do with midi, it is dependant on the sound engine that is receiving and acting upon the midi instructions. I guess that this will NOT give you the 'scratching' you refer to?
Geoff