Alternative programming paradigms for music software

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

Post Reply
Basslint
Established Member
Posts: 1511
Joined: Sun Jan 27, 2019 2:25 pm
Location: Italy
Has thanked: 382 times
Been thanked: 298 times

Alternative programming paradigms for music software

Post by Basslint »

A few days ago I came across TablaZinc, a tab generator which uses MiniZinc, a constraint modeling language. It really blew my mind because I never thought of using a language outside of the procedural, object-oriented or functional (or even dataflow, in the case of PureData) paradigms to make music software, and maybe some of those paradigms are the "right tool for the job" in many cases.

By using something else than C, C++ or Python you lose the ability to attract contributors, but you may be able to write clearer code, which is in the long run easier to maintain, provided that the front-end probably has to be written in those familiar languages due to the lack of good GUI libraries outside of them.

What do you think about it?
The community of believers was of one heart and mind, and no one claimed that any of his possessions was his own, but they had everything in common. [Acts 4:32]

Please donate time (even bug reports) or money to libre software 🎁

Jam on openSUSE + GeekosDAW!
User avatar
sadko4u
Established Member
Posts: 986
Joined: Mon Sep 28, 2015 9:03 pm
Has thanked: 2 times
Been thanked: 359 times

Re: Alternative programming paradigms for music software

Post by sadko4u »

Basslint wrote: Wed Mar 11, 2020 12:24 pm By using something else than C, C++ or Python you lose the ability to attract contributors, but you may be able to write clearer code, which is in the long run easier to maintain, provided that the front-end probably has to be written in those familiar languages due to the lack of good GUI libraries outside of them.

What do you think about it?
When I hear 'clearer code', I recall 'Lie # 3':
https://cellperformance.beyond3d.com/ar ... -lies.html
LSP (Linux Studio Plugins) Developer and Maintainer.
CrocoDuck
Established Member
Posts: 1133
Joined: Sat May 05, 2012 6:12 pm
Been thanked: 17 times

Re: Alternative programming paradigms for music software

Post by CrocoDuck »

I think that the use of a particular paradigm with a particular set of capabilities is useful when those capabilities are particularly compelling for the problem at hand. Forcing a paradigm that does not fit the data and the problem is not wise. I am not familiar with the project you mention, but I can imagine that the author found the problem could be solved with optimization, hence using a domain specific language for that must have made a lot of sense. I highly doubt that, for music software (or any other subdomain of software for the matter), you can find one single paradigm that always wins above anything else. As far as DSP is concerned, I find myself switching between imperative and functional all of the time.

So, I guess that my stance is: choose the paradigm that most naturally addresses your problem. And as @sadko4u said, remember that most of the problem is in the data. And yeah, I would say that getting a very good understanding of the problem and the data would be the hardest part, and that makes me slow AF at developing. Once you understand the problem the software writes itself. Almost.
Post Reply