So we collect ideas for the new firmware here? i think it has allready started so lets keep it here?
I bad guy messed up the cpu thread with some demands regarding clocking...
while it seems to be agreed on that a new 256k flash cpu is the way to go for the future i dont think it hurts to theorize about an ideal OS for the xox..
In a later step this should be streamlined and evaluted for cost/effort ratio..
However...
Ideal clocking in 21th century hardware sequencers
part 1... brainstroming
features one like to see that is working in allways changing hard and software setups in studios and on stages...
1) the clocking and its handling should be apllied on rootlevel of the OS.. all other functions second to that and not interfearing with it.. clock priority..
the elektron machine drum is an example of a sequencer that handles the clock with priority tight, but has "problems" with the execution of its own sequencer.. in reality this results in a rather groovy sounding tool one can rely on as clock master or slave.. a good example that glitches in the sound creation actually can be beneficial while errors in the internal process timing are usually distracting..see doepfer MAQ sequencer as negativ example here...
2) low latency operation.. regardless of what fancy features are applied, a modern machine should be able to be fast on external clock..
And it shouldnt loose a single clock tick...
There is an absolute amount of clockticks in a given time.. If internal processes need time, the sequencer should be able to lock back to its absolute position along the timeline afterwards..
3) the plain clocking by the midi ticks should have priority and the handling of realtime midi commands should interupt all other incoming midi streams ..or handled in seperate buffers wher the realtime clock buffer is allways executed first...
4) it should be possible to have clock/midi thru on root level.. with or without merge of the generated midi notes? i know this is a questionable feature because it can eat to much processing power and therfore interfears with the other demands ... however.. would be a handy tool in certain stage situations.. if the clock can be only applied in such a scenario with an offset delay it still might be usefull...
there should be midi out On/Off options for clock, notes and controlers regardless in what sync/master mode the maschine is running..
5) offset delays... an important aspect..overseen by many but.. the truth is..any machine on the market starts at a different time regarding to the incoming midi clock/start command..
You cant run a korg electribe es together with an mfb 522.. they are such a big amount off..the mfb is so early..the electribe so late...
That is not a new thing..even under din sync we know that problem.. a 909 and a 808 and a 303 dont go togehter too well.. you need the 909 as midi clock master and a half tick delayed korg kms 30 to sinc the 808 while the 303 is synced directly by the 909..than its fine...
some people might have another opinion here.. but in reality more and more producers buy clock shifters to get their machines in line..
with the xox we have a rather good compromise.. its faster than the original 303.. but not too earlie..still a bit late...but as slave it sounds totaly different as master... as master its earlier..and thats a nice feel too.. i like to have booth options without changing my sync setup
I wish for all modern sequencers the ability to shift the event timing..
because shifting earlier is difficould.. or??
the internal event timing should be very fast..much less than 1ms... but
WITH an OFFSET delay..fine adjustable in 0,1 ms steps at least 5 ms later.. maybe 64 steps later...and 64 steps earlier? than the whole machine starts one bar later?
a point to discuss.. but i vote for an offset parameter to allow a desired feel.. as a system setting
user interface idea:
a midi setup page where one can dial the offset with graphical indication in the 16 leds..while the key leds show which offset range is actually dialed.. so maybe e key highlighted no step led is zero offset,,,while f key and all 16 steps lid is = 32 steps = 3,2 ms late.. ...
other keys like the transpose switches switch midi out of notes and clock... something like that..or better
...
6) shuffle.. while some think that shuffle can be applied by shifting the ppq clock i strictly opt to implement shuffle in the way its done in the other sequencer designs on the market..as a delay setting on actual sequencer steps..after the global offset delay.. just applied to certain steps..
Look at the elektron machine drum..that is a pretty good example how shuffle is implemented. as a sequencer that controls an event delay
There the shuffle has an own sequencer track..where each step set delay on/off for that step.
So when you set all steps you move the machinedrums drum sequencer later.. when you only set the odd steps we have normal shuffle and when you set all even steps you have negative shuffle..
this just as an example how the mechanics work there.. dont need such a feature,,the xox is no drummachine... but.. shuffle is an interpretation that is happening on top of a steady clock and not as the result of a modulation of that clock..
however.. a natural shuffle that is based on a real sine lfo modulation ca be interesting aswell..something that is not happening between 16th notes.. on a longer scale..over 4 bars or so..
anyway.. the unit should be able to perform shuffled grooves.. in ideal with an remotable shuffle amount via midi controler... so multiple units can be shuffled at once..
shuffle settings should be cpmpatible with the standards.. so a 63% shuffle is the same as on other machines..
user interface idea:
shuffle needs to be adjustable while running... i wouldnt say thats necessary to be stored with the pattern.. might be nice if.. but its rather something that is a performance parameter...
so it shoul be accesible while running..maybe with a double keystroke the keyboard key allow the input of 12 defined shuffles? maybe in conjunktion with the tempo dial for fine adjustments?
so actually other effects might be selected ther as well..with fine adjust actually 3 or 5 shuffel setings would be enough to cover the whole range with little moves... so 5 coarse steps with fine adjustment..
The shuffle value should be kept on pattern changes... Or? maybe in one of the user pages one can select the behavior how the xox handles shuffle and transpose on pattern changes? or the possebility to decide in edit mode how the pattern behaves.. either on select it uses the pattern settings for shuffle and rests transpose
or it takes the values of transpose and shuffle from the previous settings?
would be maybe good to use the exsisting user pages for such setup things... maybe even while running...
maybe it would be good to have a key that while pressed allows to dial the mode select button and its only read out when you release that function key?
7) start performance.. refference akai mpc 3000.. this machine starts imeadeatly.. as master..and in external sync...
the trick here is that the machine dont waits for clock pulses or tempo information..it just starts imeadeatly on the start BANNED recieved..and than starts the calculation.. within the first quarter note its locked..
result... you can play the mpc 3000 as a drumer with a trigger pad.. and it just starts exactly when you hit the pad and not some little time later.. that is big fun.. and actually one thing that should be implemneted in any modern sequencer..especially when the xox acts as master that is beneficial...
But also when the mpc 3000 is slave you can stop it at any time and start it by hand again..it will start imideatly without waiting for a clockpulse.. what actually results in a situation that with an mpc 3000 that actually works, and you dont need 3 trys or have to restart the master clock to get it tight.
Most machines on the market are pretty unprdictable when restarting them again while being clock synced because they wait for the next tick to start.. or even worse..wait for theire own internal get ready routines and than wait for the next incoming clock...
the mpc 3000 uses the set tempo as start tempo..so when master clock tempo and machine internal tempo are maching you dont even get that the first quarter note is a bit jumpy..
in any way this behavior sound musical.. a drummer that starts playing is also a bit jumpy on the first hit..but usually never too late... The mpc 3000 is really outstanding regarding this..and maybe the mpc 60 aswell..never measured an mpc 60 in such great detail as i did with my mpc 3000..modern mpc´s are not this good anymore regarding that details.. at least the mpc 2000 wasnt... i havent tetsted any later mpc´s
7.2) when the xox is sync slave it would be nice when as in the akai mpc 3000 any start BANNED is performed as described.. but.. an option would be nice..where starts are quantized to the next one..
therfore the modern sequencer should be able to read song position pointer if available..
that comes in handy when the xox acts as din sync interface for macines that need to be stopped to enter the write mode ( 808 for example ) . that should be a global setting...
in any case the xox should be able to act as din sync master while being a mid clock slave...
in ideal with an own offset delay for the din sync output.. that would be perfect to act as 808 sub master... i reality din sync machines are usually earlier than theire modern midi brothers... so if the dinsync out while beeing a slave needs a little process delay it wouldnt hurt anyway...
8 ) dejittering external clocks.. of cause we dont work with jittering clocks..but many do..
again the mpc 3000 as an example..this machine has its legendary name as time keeping tight running machine not at last because it actually is dejittering incoming clocks...
So its actually tighter than the clock it recieves.. simple trick.. as soon this machine has set its tempo after its imeadeate start..after the first quarter note.. it applies an smoothing of maybe 1 bar ( maybe a second?) to the incoming clocks... you can test that by applying tempo changes to the mpc 3000..it reacts late..with a lag.. cant tell exactly how big the lag is.. but its easy to get...this machine is dejittering...no imideate followig on any little tempo fluctuation...not bad sounding ..rather musical..
So it starts imeadeatly.. gets the tempo wright within 1 quarter note.and afterwards is dejiitering incoming clock and reacts musicaly lagged to tempo changes..
applause to Roger Linn.. great design. the ideal behaviour of a slaved sequencer..already concieved in the 80´s..
Its a total musical missconception that a clock slave has to follow the clock like a slave in realtime. thats just a primitiv because simple algorythm to handle incoming clock..actually no algorythm..just 1:1...
And so any usb related jitter is transported to the musical system.. instead just acting musicaly.. no band is performing a tempo change within a 16th note.. a lag on a tempochange is just natural..
the main reason why ableton live is bad as clockslave while native instruments reaktor is perfect..
try tempo changes on reaktor and you will see the lag
************************************
So..that it was for now..some ideas regarding clocking.. this of cause would take quite some coding..
But Roger Linn has seen sense in that and gave his drumcomputers more than just primitv clock following..
Even if that is not the most desired thing or most important enhancement for a new OS..
it wouldnt hurt to have highend clocking algorythms in the xox..
problem..when this is nt planed from the beginning its maybe not possible to implement it later without rewriting everything
So...my main suggestion..
At least implement a clocking system.. on the root of the new os ..that allows later modification and enhancements in the mentioned directions..
the os should have something like modules.. where the first one is clock handling.. in conjunction with porthandling.. and on top of that the sequencer... and booth of theese fuctional blocks should have designed space for later enhancements..
because all sequencers relate on clock handling this should be handled as a seperate machine inside the machine.. and the actual i/o..editing sequencer style on top of that...
so people could have a 303 style sequencer ..but all core xox functionality.. or an original xox sequencer..with all core enhancements of the new os... or even turn the xox into a drumcomputer without rewriting everything...
my 25 cents