AUXLAB vs MATLAB, what's the difference?

Post Reply
bjkwon
Posts: 111
Joined: September 26th, 2018, 9:36 pm

AUXLAB vs MATLAB, what's the difference?

Post by bjkwon » September 27th, 2018, 11:02 pm

While there are several common features of AUXLAB and MATLAB. They are different in the following ways:

Audio signals exist in AUXLAB as a dedicated datatype, audio.They come with timing information; i.e., the begin and end time points. For example, x=tone(200,400) shows a 200-Hz tone from 0 ms to 400 ms. Another signal y=tone(200,400)>>500 is the same tone but present from 500 ms to 900 ms. An audio signal may have multiple intervals of signals that are not contiguous in time. For example, the signal, x+y, has two intervals of actual audio present, (0~400ms) and (500~900ms).

As seen in the example, x+y, the + (plus) operation has a somewhat different meaning from that in MATLAB: if the operands are at the same time point, they are added; otherwise, they are recognized as separate objects and do not affect each other (the same goes for the * (multiply) operation. Operations between vectors, non-audio objects, are similar to those in MATLAB, except that two operands may have different lengths. That is, AUXLAB is a lot more "forgiving" and we are liberated from this hideous error message:

Error using +
Matrix dimensions must agree.


Not only the newbies to MATLAB, but also seasoned users are haunted by this error and we all swear at it, don't we? Move on and use AUXLAB. You deserve better.

Having said that, matrix operations have somewhat more stringent dimension requirements for operands. Nevertheless, AUXLAB is overall less stringent in the syntax.

There are other numerous differences in syntax conventions. For example, many functions that process a primary input argument may be written in the form of a class member. For example, the square-root function, sqrt, can be written in the following way:

x.sqrt

The classic style sqrt(x) still works, but once you start to use this new style, you probably wouldn't want to go back. You could appreciate the beauty of this style when you have a lot of nested function calls: for example,

sqrt(abs(fft(x)))
or
x.fft.abs.sqrt

Which one would you go for? Nested vs. cascaded. The answer is obvious.

In terms of the application GUI, AUXLAB offers something better than MATLAB. Say, you have defined x and you want to plot it. Then make a "named" plot of x (That's easy--just press enter key from the Settings and Variables window). Then a plot, entitled with "x" is made, which is locked into the content of x. This plot automatically updates itself as x changes. This feature is tremendously useful as you don't have to keep typing plot(x) every time you do something to x . By the way, plot(x) still works in AUXLAB, but just like in MATLAB, that is what I call a static plot or an "unnamed" plot and it does not update itself as the content of x changes.

Finally, AUXLAB offers a slew of features for audio playback, such as multiple play event handling, looping, pause and resume.

Post Reply