 |
|
|
07-30-2015, 06:44 AM
|
#1
|
Human being with feelings
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
|
JS enhancement for Midi processing
The current jsfx api is (for stream processing) based on three callbacks:
@init
@block
@sample
While this approach offers great opportunities for audio (sample) processing, it is not the perfect approach for midi stream processing, midi modifications on the fly....
Therefore I would like to suggest the following enhancement :
Two more callbacks could be added to the jsfx api :
@tick
Will be called on the smallest midi resolution, which is 1/96 note (1 midi timecode)
@event
Will be called whenever a midi event is processed (like @sample).This code can analyze, process, or synthesize, by reading, modifying, or writing to the variables evt0, evt1, evt2.. evt63. Evt0 is the current event.Further messages from running status mode will be on the evt1...63.
The evt structure will consist of the items msg1, channel, msg2 and msg3 like in midisend(offset,msg1,msg2,msg3) , a midisend (evt) and a a midisend(offset,evt) would make sense too.
A simple example could show the use of these features :
.... Shift all notes by a defined offset
@event
Int code = evt0.msg0;
(code == NOTE_ON ) ? msg1 += slider1; //0x1001
(code == NOTE_OFF ) ? msg1 += slider1; //0x1000
... Suppress cc portamento
@event
Int code = evt0.msg0;
(code == CC) ? (msg1==65)?evt0 = null ; // suppress
This is pseudo code, don't nail me on the syntax, the concept would be clear...
|
|
|
08-01-2015, 11:23 AM
|
#2
|
Human being with feelings
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
|
Thank you for your feedback. these enhancement are in fact aimed towards shuffling, modifying and creating midi on the fly, in a non-destructive manner.
And it should enable things like the drum mapper from cubase, where you could use a specific translation between gm drum mapping and a specific mapping for a dedicated drummie/sampler, that is not gm compatible.
Btw. I do not get the point with vangelis, vangelis is cs-80 and there is no midi...
|
|
|
08-01-2015, 01:36 PM
|
#3
|
Human being with feelings
Join Date: Apr 2014
Posts: 943
|
__________________
I hope you can understand me? Without german beer my written english is always very bad, with beer it becomes unbearable!.
Less is more! To much limited the own creativity.
|
|
|
08-01-2015, 01:37 PM
|
#4
|
Human being with feelings
Join Date: Jun 2009
Location: Croatia
Posts: 24,594
|
Quote:
Originally Posted by Mink99
@tick
Will be called on the smallest midi resolution, which is 1/96 note (1 midi timecode)
|
It should probably follow the Preferences setting for it, though...
|
|
|
08-01-2015, 11:10 PM
|
#5
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 11,746
|
Quote:
Originally Posted by Mink99
@event ...
|
I helped a friend of mine implement several JSFX plugins, that in the end create midi messages that via USB go to an USB-Midi to DMX-converter Box and then control appropriate lights.
We found that the timing with "@block" for doing smooth DMX changes sometimes is not quite fast enough.
-Michael
|
|
|
08-02-2015, 10:12 AM
|
#6
|
Human being with feelings
Join Date: Jan 2011
Location: Zürich
Posts: 1,008
|
Quote:
Originally Posted by TonE
Your jsfx implementations are a secret however.
|
Please enlighten me, what is your problem ...
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 02:34 AM.
|