Change Table name

    Feb 18 2020 | 5:55 pm
    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

    • Feb 18 2020 | 6:02 pm
      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...
    • Mar 23 2020 | 12:55 pm
      Try putting three dashes for the name [table ---myname]
    • Mar 23 2020 | 12:58 pm
      BTW, I started using computers with Octamed on an Amiga 500 in the early 90's Is Octatrack a simular "tracker"?
    • Mar 23 2020 | 7:05 pm
      Are you sure you don't know Octatrack is? Although it's not a tracker it sure is a hybrid!!
    • Mar 23 2020 | 7:08 pm
      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.
    • Mar 24 2020 | 8:04 am
      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 :
      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.
    • Mar 24 2020 | 8:54 am
      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?
    • Mar 24 2020 | 9:29 am
      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.
    • Mar 24 2020 | 11:19 am
      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.
    • Mar 24 2020 | 4:04 pm
      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.
    • Mar 24 2020 | 9:44 pm
      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
    • Mar 25 2020 | 12:05 pm
      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.
    • Mar 26 2020 | 2:29 pm
      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
    • Mar 27 2020 | 12:48 am
      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!
    • Mar 28 2020 | 10:59 am
      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 ?
    • Mar 28 2020 | 11:51 am
      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.
    • Mar 28 2020 | 12:20 pm
      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
    • Mar 28 2020 | 1:10 pm
      only 1 of many simple solutions
    • Mar 28 2020 | 2:19 pm
      Source Audio thank's for the answer, simple but efficient ;)