Change Table name
Hi,
I I've made a M4L device to control Octatrack Midi tracks in Live.
I Use Table object to store Midi CC's of each scenes. This allow me to use the octatrack crossfader like in audio tracks.
My main problem is a can't use multiple instance of the device since there all have the same Table object.
I've tried to store table of each instance in a separate file loading then loading them on each instance without sucess...
I could create 8 version of the devices each one with is own Table but I would prefere change on the fly the name of the table
While waiting for a better solution, I used the "refer" function of the Table object. I've create 8 tables with a control who allow my to switch beetween table...
Try putting three dashes for the name [table ---myname]
BTW, I started using computers with Octamed on an Amiga 500 in the early 90's Is Octatrack a simular "tracker"?
Are you sure you don't know Octatrack is? Although it's not a tracker it sure is a hybrid!!
I would be curious to see what you've done with Max and Octatrack.
I am into midi editors my self too. I will be giving a shot to M4l and Octatrack too in the future. I've made a in the past a lemur patch (under the name kraftf) which I will probably combine it with.
Hi Frans-Jan Wind, Octatrack is standalone and it's not a tracker I put the link to the product page if you want more informations :
https://www.elektron.se/products/octatrack-mkii/
Kyros Tsartinoglou
The brief is pretty simple, the Octatrack has 8 audio tracks and 8 midi tracks. the octatrack crossfader is amazing unfortunatly it only work on audio tracks... Elektron always said that it won't be possible to use it on midi tracks. luckly the octatrack have CC for the crossfader.
So the idea is pretty simple : Create a M4L patch that listen to crossfader CC and emulate the feature of the crossfader like on audio tracks.
For the moment I have a working prototype, I use it to see what works or not and what to add or remove.
At start I had only implement control for the "ctrl" pages of the midi tracks. Now I'm thinking to add all the other pages, "note", "arp" etc.
The only problem will be the table size, due to the octatrack structure with banks, pattern and part, the table would have 30 720 variables per instance...
I'm thinking to use more (small) tables per instance something like a table for each parts or each bank maybe.
Now I need to try the better solution between one big table or many little table.
Something like 1 table of 1000 variables or 10 tables of 100variables.
Thank you! I looked it up. What a cool product, a bit pricy though! Great inspiration for some new Max patches :-). But did the three dashes solve your naming problem with the tables?
Frans-Jan Wind to be honest haven't tried yet but I've already use the "---" on other patch and works well no reason it doesn't work with this patch.
at the end of the day I think I going to keep the refer solution. If I go for a table per "part" for example the refer function will be easier to use.
Alexandre hi. I think you missed the part where I said that I have already made a template in Lemur for octatrack under the name kraftf. I know octatrack inside out. Own it since 2012.
Since I will be working on max or max for live template we can cooperate. I can help you.
You need to describe more thoroughly the structure. Maybe instead of tables you can use the pattr system with pattrstorage.
I can't really understand why you are calculating that hi number of variables.
The midi controllers are 10 and the tracks are 8 so you have 80 variables. If you want to include all midi parameters then you you have 30 parameters X 8 tracks = 240. All these parameters can be included in a pattr system and use presets to recall them.
Note : 6 parameters
Arp : 6 parameters
LFO : 6 parameters
Ctl1 : 6 parameters
Ctl2 : 6 parameters
total : 30 parameters
30 parameters * 4 parts (per pattern) : 120 values
120 values * 16 patterns : 1920 values
1920 values * 16 banks : 30720 values
I won't use all parts on all patterns on all banks but to be the more flexible I need to have the possibility to use any parts on any pattern on any bank and jump to another banks pattern or part.
And this is only for 1 instance I'm planned to use the 8 midi tracks so 8 instances, this is why I'm thinking to using more small tables than a big one.
I've don't really dig the pattr and pattrstorage object for the moment but I will. My patch is on stand-by for the moment I use my free time to finish a midi controller based on arduino and I test my patch prototype when I make music.
I hope I'll have some time in the next few days to get on the patch, and try the pattr solution.
Thanks for the help I won't forget to keep you inform of the improvement and/or the issues.
actually it is 30 parameters X 4 parts( per bank) X 16 banks = 15360.
Anyway I don't really understand your design scope.
Are you trying to control OT or simulate its behaviour.
If you want to control OT midi params per pattern then you have to make these 30 parameters and control them with pattrstorage presets. These presets can be controlled from OT's program change messages that is to say 256 presets, aka 61440 saved values that will live in your pattrstorage. No need to think about tables and other limitations.
Here it is how you would make it
Actually it's :
-30 parameters per scene
-(16scenes * 4 parts) * 16 banks
total : 30 720 values
I've looked the pattr object and it won't match with what I want to do.
Like I already said I want to emulate the feature of the crossfader on midi tracks, so basically morphing between two values on each parameter.
For what I've seen the "pattr" object look like a string when I need a array.
Using multiples small tables or any kind of array object look like the way to go.
Correct calculation since you need to emulate the scenes in midi tracks.
However i think you are missing the point here.
The pattr system can accept almost all types of data(integers, floats even dictionaries...).
The pattr system has a feature called interpolation between presets which is exactly what the crossfader in OT is doing.
So you need to create (16scenes * 4 parts) * 16 banks = 1024 presets and build the interpolation mechanism between them. The cool thing will be that you can interpolate between 2 of any of the 1024 presets that you will make and not only between 16 that you can do in OT per part.
Actually it is a pretty good idea!
If you try the table option and use seperate tables for the values you need I think you will lose track with what you are trying to achieve.
Anyway I will post later what I described above so you can check for yourself.
Cheers
So I prepared the skeleton for you.
Connect OT midi in , change patterns and store per pattern 16 scenes (256 in a bank!! way more than the 64 that parts would give you).
Control with the crossfader your 30 parameters.
Voila!!
Now is your turn to finish it!
Thank for the patch, meanwhile I've also made my sketch using pattstorage and I've end up with something pretty similar from your's.
My part who send/receive PC's and crossfader from OT is different but at the end their almost the same.
I'have to said, you was right pattstorage is more indicate than table in my case!
I look forward to make my patch using pattstorage and be able to control each parameters, but before, I've to finish my Arduino/Midi controller patch.
I kind of struggle to find a solution to handle min and max value of the encoder. I've tried few object such as "INCDEC" "Counter" etc. but nothing work.
I search a solution to incremente value until 127 then I can turn the knob but the value stay a 127 and when I decrement the value go to 126, same with the lower limit.
May-be you can advise me a object ?
Hi!
Glad you found your way with pattrstorage.
About your encoder, I can't really understand. Do you mean you have a hardware endless encoder, or software inside max. Please describe the issue more thoroughly.
I have a rotary encoder wired to an arduino acting as a midi device. the encoder send CC relative (binary offset) to Live. In m4l I get the value thru "ctlin" and select values to "inc" "dec" message. the problem is the "overflow", when control go over 127 or bellow 0. I'm search a way to limit the range to 0-127
only 1 of many simple solutions
Source Audio thank's for the answer, simple but efficient ;)