mozaic_tips_and_tricks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revisionBoth sides next revision
mozaic_tips_and_tricks [2020/01/12 20:46] – Added 'Store two positive values into a single combined variable' _kimozaic_tips_and_tricks [2020/01/12 21:09] – Added two and multi dimensional array acces _ki
Line 8: Line 8:
   * [[mozaic_tips_and_tricks#Use the SHIFT Button to toggle to HELP View]]   * [[mozaic_tips_and_tricks#Use the SHIFT Button to toggle to HELP View]]
   * [[mozaic_tips_and_tricks#Use a Knob to toggle 16 Pads View to HELP View]]   * [[mozaic_tips_and_tricks#Use a Knob to toggle 16 Pads View to HELP View]]
 +
 +===== Two dimensional Arrays =====
 +<html><p align = "right"><small><i>From -ki</i></small></p></html>
 +Each variable in Mozaic is in fact an array with a maximum of 1024 elements. Scripting often needs two dimensional arrays, but the variables only offer one dimensional access.
 +
 +Its is very easy to 'fold' two or more dimensions into a normal array if the row length is fixed:
 +
 +<code>
 +  xMax = 16
 +
 +  x = 2
 +  y = 5
 +  value = 42
 +
 +  // write the value to position x,y : 
 +  twoDimStorage[ x + xMax *y] = value
 +</code>
 +
 +Retrieval of values is done using the same folding:
 +<code>  
 +  // retrieve value from 5,3
 +  x = 5
 +  y = 3
 +  value =   twoDimStorage[ x + xMax *y ]
 +</code>
 +
 +Mozaics array length is limited to 1024, so 32x32 just fits - but 128x16 (often needed in midi programming) doesn‘t.
 +
 +\\ 
 +
 +There is a single two dimensional array in Mozaic that fits this dimensions, the note state array. Since it is special, there are separate functions:
 +<code>
 +  ResetNoteState initValue         // Fills all 16x128 elements with the given value
 +  
 +  SetNoteState row, column, value  // Sets a value
 +  value = GetNoteState row, colum  // Retrieves the value
 +</code>
 +There is only one array of this kind, but sometimes you Need to store multiple values. In such a case, its possible to fold these values into a single value - see the tricks below:
 +
 +\\ 
 +
 +
 +===== Multi dimensional Arrays =====
 +<html><p align = "right"><small><i>From -ki</i></small></p></html>
 +
 +The above folding can be expanded to multiple dimension, here an example for a 3 dimensional array folded into one dimensions:
 +<code>
 +  array[x + xMax * y + xMax*yMax *z] = value
 +</code>
 +
 +Since Mozaic arrays are limited to 1024 elements, xMax * yMax * zMax needs to be less or equal 1024.
 +\\ 
  
 ===== Store two positive values into a single Variable ===== ===== Store two positive values into a single Variable =====
  • mozaic_tips_and_tricks.txt
  • Last modified: 2024/04/23 19:07
  • by _ki