## Fill a 4 char matrix with noise, what is the Fastest way using JAVA ?

Oct 01 2015 | 2:52 am
Hi !
Since few days, I do my first steps with mxj and jitter, I'm searching about the fastest way for fill matrix with content. Do know a faster way that the one I'm using below? I think that using the method setcell2d is not a good idea...
import com.cycling74.max.*; import com.cycling74.jitter.*; import java.util.Random;
public class max_t extends MaxObject {
JitterMatrix outTest;
Random rand; int[] argb ; int a ;
public max_t(String context) { declareIO(1, 1); // declare 1 inlets, 1 outlet outTest = new JitterMatrix(4,"Char", 1280, 720); argb = new int[4]; }
public void bang() { for(int i = 0 ; i < 1280; i++) { for(int j = 0 ; j < 720; j++) { argb[0] = 255; argb[1] = (int) (Math.random() * 255); argb[2] = (int) (Math.random() * 255); argb[3] = (int) (Math.random() * 255); outTest.setcell2d(i,j, argb); } } outlet(0, "jit_matrix", outTest.getName()); } }

• Oct 01 2015 | 6:54 am
You can use most Jitter objects within Java. In this case you would simply use jit.noise.
import com.cycling74.jitter.JitterMatrix; import com.cycling74.jitter.JitterObject; import com.cycling74.max.MaxObject;
public class NoiseTester extends MaxObject { private JitterMatrix mx; private JitterObject noise;
public NoiseTester() { mx = new JitterMatrix( 4, "char", 1280, 720 ); noise = new JitterObject( "jit.noise" ); }
public void bang() { noise.matrixcalc( mx, mx ); outlet( 0, "jit_matrix", mx.getName() ); } }
• Oct 01 2015 | 4:46 pm
sorry to be unprecise (again). in fact I was more interested to find a "quick pixel per pixel" method. I found a method with array but I read that int java is about 4 bytes, right? so if a range value of 0-255 is sufficient in the case of a char matrice, it could be 4 times quicker using an array with a type data using 1 bytes only no ? but I don't know if this is possible to do
So using array I found this :
import com.cycling74.max.*; import com.cycling74.jitter.*; import java.util.Random;
public class max_t extends MaxObject {
JitterMatrix outTest;
Random rand;
int w = 1280; int h = 720; int[] argb = new int[w*h*4];
public max_t(String context) { declareIO(1, 2); // declare 1 inlets, 1 outlet outTest = new JitterMatrix(4,"Char", w, h);
}
public void bang() {
for(int i = 0 ; i < w*h; i++) { argb[i*4] = 255; argb[i*4+1] = (int) (Math.random() * 255); argb[i*4+2] = (int) (Math.random() * 255); argb[i*4+3] = (int) (Math.random() * 255); }
outlet(1, argb.length); outTest.copyArrayToMatrix(argb); outlet(0, "jit_matrix", outTest.getName()); } }