Old 02-11-2017, 08:47 PM   #1
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default O/T: Matlab > Octave?

If this is too off-topic, please delete.

Can I get by with Octave, or should I go for Matlab? Numerical precision/accuracy matter to me, and documentation-quality does too, so if Matlab's docs are definitely superior, that might be reason enough. I also have a lot to learn about DSP, so if Matlab/Matlab-docs would be a good learning-source, that's another factor. I've Googled on this question, but curious what residents here think?

I'm also getting ready to buy Mathematica, unless anyone convinces me to look closer at Maple. I've tried Maxima, but I'm preferring Mathematica-demo enough to take the plunge.

Last edited by TryingToMakeMusic; 02-11-2017 at 08:55 PM.
TryingToMakeMusic is offline   Reply With Quote
Old 02-12-2017, 03:25 AM   #2
SaulT
Human being with feelings
 
Join Date: Oct 2013
Location: Seattle, WA
Posts: 750
Default

I like Octave, it's been built to be Matlab compatible and it seems to do the job pretty well. It does not have full Matlab functionality, though, there are a number of functions and features that are not implemented. If you need one of those, then you need Matlab. Just a few minutes ago I used Matlab documentation to do some basic number crunching stuff in Octave though, so there is that. If you download Octave make sure you rebuild the package from the program's commandline, I started downloading the packages before I realized I didn't have to.

I haven't used Mathematica/Maple/Maxima enough to have a strong opinion in any direction.
SaulT is offline   Reply With Quote
Old 02-12-2017, 12:01 PM   #3
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by SaulT View Post
I like Octave, it's been built to be Matlab compatible and it seems to do the job pretty well. It does not have full Matlab functionality, though, there are a number of functions and features that are not implemented. If you need one of those, then you need Matlab. Just a few minutes ago I used Matlab documentation to do some basic number crunching stuff in Octave though, so there is that. If you download Octave make sure you rebuild the package from the program's commandline, I started downloading the packages before I realized I didn't have to.

I haven't used Mathematica/Maple/Maxima enough to have a strong opinion in any direction.
Thanks, SaulT. I'll go forward with Octave, and I'll make a habit of cross-referencing the Matlab docs online.
TryingToMakeMusic is offline   Reply With Quote
Old 02-12-2017, 02:54 PM   #4
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Germany
Posts: 6,612
Default

Quote:
Originally Posted by TryingToMakeMusic View Post
If this is too off-topic, please delete.
Can I get by with Octave, or should I go for Matlab?
To get it on-topic: why not use JSFX as a DSP development tool ?
-Michael
__________________
www.boa-sorte.de
mschnell is offline   Reply With Quote
Old 02-12-2017, 04:28 PM   #5
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by mschnell View Post
To get it on-topic: why not use JSFX as a DSP development tool ?
-Michael
I am using JSFX, but Octave/Matlab offer:

- libraries of documented DSP functions (beyond the offerings here: http://reaper.fm/sdk/js/advfunc.php#js_advanced);

- if you have two buffers b1 and b2 and you want to sum them, just type "b1+b2";

- it solves equations;

- it crunches numbers to estimate solutions for unsolvable integrals;

- interactivity, which makes experimenting go faster;

- makes it easy to produce documents which are a mix of comments and successive calculations.

JSFX is the coolest system for extending a DAW's functionality I have ever seen, but would you use it to prepare a report for other humans to read? If you want to try a DSP function that's built in to Octave (free), why not use Octave instead of taking a day to implement the function in JSFX? (Maybe it's already coded somewhere in JSFX, but how do you find the location of the code?) For typesetting, I use Latex. Would you use JSFX for typesetting?

Last edited by TryingToMakeMusic; 02-12-2017 at 11:45 PM.
TryingToMakeMusic is offline   Reply With Quote
Old 02-16-2017, 02:18 PM   #6
jcjr
Human being with feelings
 
Join Date: Dec 2015
Location: SE TN USA
Posts: 74
Default

I've wondered if it would make sense for somebody to make a "standalone" slightly expanded jsfx. Add maybe some simple extra file functions, and maybe "OnStart" and "OnStop" sections.

Write the code, click the js shell "Start" button, and either call "OnExit" in the code when done, or click a js shell "Stop" button.

Have only been using js for about a year, but sometimes have written js code to do a non-audio calculation or whatever, because it is so EASY quick and low-hassle compared to C++ or Object Pascal or whatever.

For "non-dsp" use, or "non realtime use" a little slicker file i/o added to js running from a lightweight shell would be more convenient than having to run Reaper and view the calc results in the debugger pane, or print to the plugin window or whatever.
jcjr is offline   Reply With Quote
Old 02-16-2017, 04:02 PM   #7
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by Veto View Post
As much as I love JSFX, +1M for using Octave and Matlab docs for reference.

If you'd like to generate human readable documents though another option would be Jupyter:
...
(To not run into dependency issues, I recommend to get it installed alongside the Anaconda python distribution)

Concerning functionality, despite the vast amount of Octave resources, I would prefer Python over Octave.
Syntax wise I personally prefer Matlab/Octave over Python/Numpy. But that's just me and I feel that I'm in a minority group.
Jupyter looks great. I don't know the first thing about Python, but I haven seen others recommend it for math/DSP things. I will look into it.
TryingToMakeMusic is offline   Reply With Quote
Old 02-16-2017, 04:09 PM   #8
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by jcjr View Post
I've wondered if it would make sense for somebody to make a "standalone" slightly expanded jsfx. Add maybe some simple extra file functions, and maybe "OnStart" and "OnStop" sections.

Write the code, click the js shell "Start" button, and either call "OnExit" in the code when done, or click a js shell "Stop" button.

Have only been using js for about a year, but sometimes have written js code to do a non-audio calculation or whatever, because it is so EASY quick and low-hassle compared to C++ or Object Pascal or whatever.

For "non-dsp" use, or "non realtime use" a little slicker file i/o added to js running from a lightweight shell would be more convenient than having to run Reaper and view the calc results in the debugger pane, or print to the plugin window or whatever.
I don't see why JSFX should add new features for non-real-time work. JSFX is for real-time; that's the whole things about JSFX, I think.

When C++/Java is overkill, and you don't need real-time, Octave is nice (and free). Probably Python too, from what I hear. I've done substantial programming in the Lisp that's built into Emacs. Weird, but I like it.
TryingToMakeMusic is offline   Reply With Quote
Old 02-16-2017, 04:16 PM   #9
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Matlab has tools for designing filters. I haven't seen anything as advanced in Octave.
TryingToMakeMusic is offline   Reply With Quote
Old 02-16-2017, 05:53 PM   #10
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by Veto View Post
If you go the python route, be sure to check out SciPy too.
Looks interesting. Thank you.
TryingToMakeMusic is offline   Reply With Quote
Old 02-17-2017, 01:43 PM   #11
jcjr
Human being with feelings
 
Join Date: Dec 2015
Location: SE TN USA
Posts: 74
Default

Quote:
Originally Posted by TryingToMakeMusic View Post
I don't see why JSFX should add new features for non-real-time work. JSFX is for real-time; that's the whole things about JSFX, I think.

When C++/Java is overkill, and you don't need real-time, Octave is nice (and free). Probably Python too, from what I hear. I've done substantial programming in the Lisp that's built into Emacs. Weird, but I like it.
Thanks. Granted it is probably a silly idea.

JSFX is simple, very near C, allows "object-like" programming technique, and was very easy to learn. Took about a day to get completely comfy with it.

I fooled with matlab/octave coding "just a little bit" and to me the language seems kinda bass-ackwards. Haven't recently looked at java and never examined python. The learning curve looks steeper than the "dead simple" JSFX, like one would need to study up on it. And if code needs later implemented in C++, would need rewriting.

Maybe my impression is wrong on that point, but on a KVR discussion an expert programmer was bragging about the strong features of Python, then got into all the libraries and python versions and such. Gave the impression of quite a bit of study before programming py would be "natural as falling off a log". Java similarly has a big headroom of libraries and such to learn.

For instance, a couple of years ago wrote a simple free program in Delphi object pascal (it was installed on the computer and I know it backwards/forwards) to load Room EQ Wizard measurement files and do simple statistics on the measurements. Then last year REW improvements introduced bugs in my program and I haven't currently got Delphi installed, so haven't got around to fixing the new bugs.

If there was a jsfx "runtime shell" and just a couple of extra features in jsfx to run "like an application", I could write that simple program quicker/easier in jsfx than in Pascal or C++, and the code would be more compact/easier for strangers to read or modify.

Another example, I sometimes use openoffice spreadsheet to calculate abstract filter responses and such. It is tedious but not too bad. I should look at Octave again, but it just wasn't much fun the last times I looked at it. I calculate some of those things in a dummy jsfx plugin. Do the calculations in @init and then examine the results in the debugger pane. Just seems that if there was a standalone jsfx it would be more convenient for such tasks.
jcjr is offline   Reply With Quote
Old 02-17-2017, 02:51 PM   #12
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by jcjr View Post
JSFX is simple, very near C, allows "object-like" programming technique, and was very easy to learn. Took about a day to get completely comfy with it.
Yes.

Quote:
Originally Posted by jcjr View Post
I fooled with matlab/octave coding "just a little bit" and to me the language seems kinda bass-ackwards. Haven't recently looked at java and never examined python. The learning curve looks steeper than the "dead simple" JSFX, like one would need to study up on it. And if code needs later implemented in C++, would need rewriting.
I read the Wikipedia page about Python and was impressed. Installing Python was easy, but now I've spent a few unsuccessful hours trying to integrate it into Eclipse or Visual Studio. I probably need to read the docs.

Quote:
Originally Posted by jcjr View Post
Maybe my impression is wrong on that point, but on a KVR discussion an expert programmer was bragging about the strong features of Python, then got into all the libraries and python versions and such. Gave the impression of quite a bit of study before programming py would be "natural as falling off a log". Java similarly has a big headroom of libraries and such to learn.
Start here, it has a good tutorial. I haven't got into the libraries yet, though. https://www.python.org/

Quote:
Originally Posted by jcjr View Post
For instance, a couple of years ago wrote a simple free program in Delphi object pascal (it was installed on the computer and I know it backwards/forwards) to load Room EQ Wizard measurement files and do simple statistics on the measurements. Then last year REW improvements introduced bugs in my program and I haven't currently got Delphi installed, so haven't got around to fixing the new bugs.

If there was a jsfx "runtime shell" and just a couple of extra features in jsfx to run "like an application", I could write that simple program quicker/easier in jsfx than in Pascal or C++, and the code would be more compact/easier for strangers to read or modify.

Another example, I sometimes use openoffice spreadsheet to calculate abstract filter responses and such. It is tedious but not too bad. I should look at Octave again, but it just wasn't much fun the last times I looked at it. I calculate some of those things in a dummy jsfx plugin. Do the calculations in @init and then examine the results in the debugger pane. Just seems that if there was a standalone jsfx it would be more convenient for such tasks.
You could write one in C, if Cockos doesn't.

I haven't had any problems from Octave, but I haven't used it much yet. The docs are good enough. Python is a more advanced language, so a little harder to learn, and I don't know how extensive the DSP libraries are.
TryingToMakeMusic is offline   Reply With Quote
Old 02-17-2017, 03:03 PM   #13
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,657
Default

at what point does one need matlab or octave? why can't you just make a slider with a float and sweep through "coefficients" until you find one that sounds good?
reapercurious is offline   Reply With Quote
Old 02-17-2017, 03:36 PM   #14
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by reapercurious View Post
at what point does one need matlab or octave?
It depends on what you're doing. If what you're doing is making a slider and sweep-and-listen, JSFX would be best. Slider/sweep/listen isn't what I'm doing though.

Quote:
Originally Posted by reapercurious View Post
why can't you just make a slider with a float and sweep through "coefficients" until you find one that sounds good?
Sound good on which test signals? How will it sound on signals you don't test? How will you estimate?

"Why use meters and spectrum analyzers? Why not adjust parameters until it sounds good?"

Quote:
1 A Brief Introduction to Octave
********************************

GNU Octave is a high-level language, primarily intended for numerical
computations. It is typically used for such problems as solving linear
and nonlinear equations, numerical linear algebra, statistical analysis,
and for performing other numerical experiments. It may also be used as
a batch-oriented language for automated data processing.

Last edited by TryingToMakeMusic; 02-17-2017 at 03:43 PM.
TryingToMakeMusic is offline   Reply With Quote
Old 02-17-2017, 04:40 PM   #15
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,657
Default

i understand that matlab does "x" thing in order to "y" but what are "x" and what is "y"?

i want a "top 5" of what matlab or octave does that is vital and fundamental for DSP
reapercurious is offline   Reply With Quote
Old 02-17-2017, 04:43 PM   #16
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by reapercurious View Post
i understand that matlab does "x" thing in order to "y" but what are "x"
https://www.gnu.org/software/octave/
https://www.mathworks.com/

Quote:
Originally Posted by reapercurious View Post
and what is "y"?
I'll let you know when it's done.
TryingToMakeMusic is offline   Reply With Quote
Old 02-17-2017, 04:50 PM   #17
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,657
Default

i've heard of matlab and octave for ages. I do know how to use google, but this particular subforum is very specific and i want to know what matlab octave or scipy or numpy can do that is useful in this subforum.

edit

like "where were you when you first realized that matlab or octave could be useful"?

at what stage of the game does it become useful? i always hear talk of "coefficients" in connection with matlab and octave. but how does one get from "i want this sound effect" to "i need this coefficient now"? There's got to be a rational explanation.

if you can answer this, then i would be much more able to help you decide which one to use.

Last edited by reapercurious; 02-17-2017 at 04:56 PM.
reapercurious is offline   Reply With Quote
Old 02-17-2017, 05:15 PM   #18
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

Quote:
Originally Posted by reapercurious View Post
i've heard of matlab and octave for ages. I do know how to use google, but this particular subforum is very specific and i want to know what matlab octave or scipy or numpy can do that is useful in this subforum.
http://forum.cockos.com/showpost.php...87&postcount=5

Quote:
Originally Posted by reapercurious View Post
like "where were you when you first realized that matlab or octave could be useful"?
Quote:
Originally Posted by TryingToMakeMusic View Post
I'll let you know when it's done.
Quote:
Originally Posted by reapercurious View Post
at what stage of the game does it become useful?
When you want to use its features.

Quote:
Originally Posted by reapercurious View Post
if you can answer this, then i would be much more able to help you decide which one to use.
I'm sorry, but I'm going to stop trying to satisfy your curiosity now. I will go forward without your advice on whether I should use Octave or Matlab.

Last edited by TryingToMakeMusic; 02-23-2017 at 06:14 PM.
TryingToMakeMusic is offline   Reply With Quote
Old 02-17-2017, 05:18 PM   #19
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,657
Default

ok no worries!
reapercurious is offline   Reply With Quote
Old 02-18-2017, 02:00 PM   #20
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

"where were you when you first realized that JSFX was a better tool for the job than matlab/octave?"

"at what stage of the game does JSFX become useful?"

"i understand that JSFX does 'x' thing in order to 'y' but what are 'x' and what is 'y'? i want a 'top 5' of what JSFX does that is vital and fundamental for DSP"
TryingToMakeMusic is offline   Reply With Quote
Old 02-18-2017, 02:17 PM   #21
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,657
Default

it took trillions of programmer hours to produce those three fundamental questions. Of my previous replies, you have isolated my favourites.

Have you had a chance to take a crack at them? I realize they aren't easy to answer.
reapercurious is offline   Reply With Quote
Old 02-18-2017, 02:48 PM   #22
TryingToMakeMusic
Banned
 
Join Date: Nov 2016
Posts: 416
Default

i need your answers to my questions please
TryingToMakeMusic is offline   Reply With Quote
Old 02-18-2017, 04:35 PM   #23
reapercurious
Human being with feelings
 
reapercurious's Avatar
 
Join Date: Jul 2007
Posts: 1,657
Default

Aha, I see that those quotes have been altered! (second time that's happened to me on the internet today!)
reapercurious is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 06:41 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.