Csound Csound-dev Csound-tekno Search About

[Csnd] "Diet Csound"

Date2023-09-23 15:44
FromAaron Krister Johnson
Subject[Csnd] "Diet Csound"
Hi all,

At various times I've wanted to embark on a process of _removing_ things from csound to make a trimmed-down "diet" version. It's probably OCD, but it also, I think, for me anyway, helps to not have distractions. There are currently, in a standard install, more than 1200 opcodes. Speaking personally, many of them have limited utility, and have the flavor of abandoned experiments, or are opcodes that I have estimated to be of limited musical utility _to me_ (everyone is different, see below).

I've made a curated fork here: github.com/akjmicro/diet_csound

It's a moving target snapshot of a process...it's working well, and takes less time to compile, and about half of the opcodes are gone. I also gave the codebase some love by more logical re-organization of things that I touched that seemed to make no sense (e.g. spectra.c/spectra.h was a dumping ground)

I realize that what one person (me) considers essential might be the complete opposite of what others do. And what I think is essential to my own work is likely to change over time...things will get added back, or taken away. My hope by starting the project is that I can contribute back to the community in the following ways:

* general cleanup and logical placement of code
* prettification of code with beautiful formatting
* most of all: encouraging a system that is customizable by providing general instructions/techniques/scripts that allow lean builds tailored to individual taste. I'm just not into the current monolithic kitchen sink approach of the main repo (I think this is partly the approach since CMake was chosen as the build system? It's possible, if one knows what one is doing, to customize, but it's less obvious than back in the day when it was ./configure; make; make install)...

With that in mind, I'm happy to give back cleanups that are wanted/welcome and make sense to the main developers. This community has given so much over the years to us all, it would be the least I could do!

Otherwise, I consider this a separate curated subset of the main repo, one that satisfies my OCD and desire to _not_ cater to the ideal of "well, if I wrote it 20 years ago, it needs to run today"...something which I've not found to be true even though it's stated as a support goal. The fact is, Csound has broken old orchestras for me on many occasions as new versions have come out. Not a terrible thing, actually -- normal in most software. My reasoning is: why not clean up the code, deprecate certain things, etc., while time marches on?

I only offer it as a template that might be useful for others who enjoy and/or desire a path w/re: customization hacking of Csound.

Cheers,

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2023-09-23 17:27
Fromjohn
SubjectRe: [Csnd] "Diet Csound"
I tried to interest people in a minimal csound but there seemed little 
enthusiasm.  I think the way to go is to identify core opcodes, and groups 
that belong together.  For the groups make loadable libraries -- plugins, 
and then they can be selected as needed for particular uses.

I would be interested in what you have included and what is excluded.

==John ff

On Sat, 23 Sep 2023, Aaron Krister Johnson wrote:

> Hi all,
> At various times I've wanted to embark on a process of _removing_ things
> from csound to make a trimmed-down "diet" version. It's probably OCD, but it
> also, I think, for me anyway, helps to not have distractions. There are
> currently, in a standard install, more than 1200 opcodes. Speaking
> personally, many of them have limited utility, and have the flavor of
> abandoned experiments, or are opcodes that I have estimated to be of limited
> musical utility _to me_ (everyone is different, see below).
> 
> I've made a curated fork here: github.com/akjmicro/diet_csound
> 
> It's a moving target snapshot of a process...it's working well, and takes
> less time to compile, and about half of the opcodes are gone. I also gave
> the codebase some love by more logical re-organization of things that I
> touched that seemed to make no sense (e.g. spectra.c/spectra.h was a dumping
> ground)
> 
> I realize that what one person (me) considers essential might be the
> complete opposite of what others do. And what I think is essential to my own
> work is likely to change over time...things will get added back, or taken
> away. My hope by starting the project is that I can contribute back to the
> community in the following ways:
> 
> * general cleanup and logical placement of code
> * prettification of code with beautiful formatting
> * most of all: encouraging a system that is customizable by providing
> general instructions/techniques/scripts that allow lean builds tailored to
> individual taste. I'm just not into the current monolithic kitchen sink
> approach of the main repo (I think this is partly the approach since CMake
> was chosen as the build system? It's possible, if one knows what one is
> doing, to customize, but it's less obvious than back in the day when it was
> ./configure; make; make install)...
> 
> With that in mind, I'm happy to give back cleanups that are wanted/welcome
> and make sense to the main developers. This community has given so much over
> the years to us all, it would be the least I could do!
> 
> Otherwise, I consider this a separate curated subset of the main repo, one
> that satisfies my OCD and desire to _not_ cater to the ideal of "well, if I
> wrote it 20 years ago, it needs to run today"...something which I've not
> found to be true even though it's stated as a support goal. The fact is,
> Csound has broken old orchestras for me on many occasions as new versions
> have come out. Not a terrible thing, actually -- normal in most software. My
> reasoning is: why not clean up the code, deprecate certain things, etc.,
> while time marches on?
> 
> I only offer it as a template that might be useful for others who enjoy
> and/or desire a path w/re: customization hacking of Csound.
> 
> Cheers,
> 
> Aaron Krister Johnson
> Music, etc.:
> https://soundcloud.com/aaron-krister-johnson
> https://soundcloud.com/filtercreed
> https://www.youtube.com/channel/UC_utjGYbSizWE0dNyr0Vdmg
> https://aaronkristerjohnson.bandcamp.com/
> http://www.untwelve.org
> Code:
> https://github.com/akjmicro
> Csound mailing list Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
> https://github.com/csound/csound/issues Discussions of bugs and features can
> be posted here
>

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2023-09-23 22:58
Fromhljmm
SubjectRe: [Csnd] "Diet Csound"
Like an app I can run on my phone?

Hans



Sent from my Galaxy


-------- Original message --------
From: john <jpff@CODEMIST.CO.UK>
Date: 9/23/23 1:28 PM (GMT-04:00)
To: CSOUND@LISTSERV.HEANET.IE
Subject: Re: [Csnd] "Diet Csound"

I tried to interest people in a minimal csound but there seemed little
enthusiasm.  I think the way to go is to identify core opcodes, and groups
that belong together.  For the groups make loadable libraries -- plugins,
and then they can be selected as needed for particular uses.

I would be interested in what you have included and what is excluded.

==John ff

On Sat, 23 Sep 2023, Aaron Krister Johnson wrote:

> Hi all,
> At various times I've wanted to embark on a process of _removing_ things
> from csound to make a trimmed-down "diet" version. It's probably OCD, but it
> also, I think, for me anyway, helps to not have distractions. There are
> currently, in a standard install, more than 1200 opcodes. Speaking
> personally, many of them have limited utility, and have the flavor of
> abandoned experiments, or are opcodes that I have estimated to be of limited
> musical utility _to me_ (everyone is different, see below).
>
> I've made a curated fork here: github.com/akjmicro/diet_csound
>
> It's a moving target snapshot of a process...it's working well, and takes
> less time to compile, and about half of the opcodes are gone. I also gave
> the codebase some love by more logical re-organization of things that I
> touched that seemed to make no sense (e.g. spectra.c/spectra.h was a dumping
> ground)
>
> I realize that what one person (me) considers essential might be the
> complete opposite of what others do. And what I think is essential to my own
> work is likely to change over time...things will get added back, or taken
> away. My hope by starting the project is that I can contribute back to the
> community in the following ways:
>
> * general cleanup and logical placement of code
> * prettification of code with beautiful formatting
> * most of all: encouraging a system that is customizable by providing
> general instructions/techniques/scripts that allow lean builds tailored to
> individual taste. I'm just not into the current monolithic kitchen sink
> approach of the main repo (I think this is partly the approach since CMake
> was chosen as the build system? It's possible, if one knows what one is
> doing, to customize, but it's less obvious than back in the day when it was
> ./configure; make; make install)...
>
> With that in mind, I'm happy to give back cleanups that are wanted/welcome
> and make sense to the main developers. This community has given so much over
> the years to us all, it would be the least I could do!
>
> Otherwise, I consider this a separate curated subset of the main repo, one
> that satisfies my OCD and desire to _not_ cater to the ideal of "well, if I
> wrote it 20 years ago, it needs to run today"...something which I've not
> found to be true even though it's stated as a support goal. The fact is,
> Csound has broken old orchestras for me on many occasions as new versions
> have come out. Not a terrible thing, actually -- normal in most software. My
> reasoning is: why not clean up the code, deprecate certain things, etc.,
> while time marches on?
>
> I only offer it as a template that might be useful for others who enjoy
> and/or desire a path w/re: customization hacking of Csound.
>
> Cheers,
>
> Aaron Krister Johnson
> Music, etc.:
> https://soundcloud.com/aaron-krister-johnson
> https://soundcloud.com/filtercreed
> https://www.youtube.com/channel/UC_utjGYbSizWE0dNyr0Vdmg
> https://aaronkristerjohnson.bandcamp.com/
> http://www.untwelve.org
> Code:
> https://github.com/akjmicro
> Csound mailing list Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
> https://github.com/csound/csound/issues Discussions of bugs and features can
> be posted here
>

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2023-09-23 23:07
FromST Music
SubjectRe: [Csnd] "Diet Csound"
I don't think it would be easy to run on your phone but I could be wrong. Are you iOS or Android? The full Csound for Android app isn't that large, about 100 mb.

But don't get it from the PlayStore, the newest update is on github:

Direct download:

Not sure about iPhone.

Best,
Scott

On Sat, Sept 23, 2023, 10:45 a.m. Aaron Krister Johnson <akjmicro@gmail.com> wrote:
Hi all,

At various times I've wanted to embark on a process of _removing_ things from csound to make a trimmed-down "diet" version. It's probably OCD, but it also, I think, for me anyway, helps to not have distractions. There are currently, in a standard install, more than 1200 opcodes. Speaking personally, many of them have limited utility, and have the flavor of abandoned experiments, or are opcodes that I have estimated to be of limited musical utility _to me_ (everyone is different, see below).

I've made a curated fork here: github.com/akjmicro/diet_csound

It's a moving target snapshot of a process...it's working well, and takes less time to compile, and about half of the opcodes are gone. I also gave the codebase some love by more logical re-organization of things that I touched that seemed to make no sense (e.g. spectra.c/spectra.h was a dumping ground)

I realize that what one person (me) considers essential might be the complete opposite of what others do. And what I think is essential to my own work is likely to change over time...things will get added back, or taken away. My hope by starting the project is that I can contribute back to the community in the following ways:

* general cleanup and logical placement of code
* prettification of code with beautiful formatting
* most of all: encouraging a system that is customizable by providing general instructions/techniques/scripts that allow lean builds tailored to individual taste. I'm just not into the current monolithic kitchen sink approach of the main repo (I think this is partly the approach since CMake was chosen as the build system? It's possible, if one knows what one is doing, to customize, but it's less obvious than back in the day when it was ./configure; make; make install)...

With that in mind, I'm happy to give back cleanups that are wanted/welcome and make sense to the main developers. This community has given so much over the years to us all, it would be the least I could do!

Otherwise, I consider this a separate curated subset of the main repo, one that satisfies my OCD and desire to _not_ cater to the ideal of "well, if I wrote it 20 years ago, it needs to run today"...something which I've not found to be true even though it's stated as a support goal. The fact is, Csound has broken old orchestras for me on many occasions as new versions have come out. Not a terrible thing, actually -- normal in most software. My reasoning is: why not clean up the code, deprecate certain things, etc., while time marches on?

I only offer it as a template that might be useful for others who enjoy and/or desire a path w/re: customization hacking of Csound.

Cheers,

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2023-09-23 23:13
FromMichael Gogins
SubjectRe: [Csnd] "Diet Csound"
I am the maintainer of the Csound for Android app. It's a pretty complete release of Csound that seems to run on most Android devices and has a built-in text editor, the ability to use HTML for user interfaces, etc.

To the best of my knowledge, there is no complete version of Csound for the iPhone.

Regards,
Mike

-----------------------------------------------------
Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com


On Sat, Sep 23, 2023 at 6:08 PM ST Music <stunes6556@gmail.com> wrote:
I don't think it would be easy to run on your phone but I could be wrong. Are you iOS or Android? The full Csound for Android app isn't that large, about 100 mb.

But don't get it from the PlayStore, the newest update is on github:

Direct download:

Not sure about iPhone.

Best,
Scott

On Sat, Sept 23, 2023, 10:45 a.m. Aaron Krister Johnson <akjmicro@gmail.com> wrote:
Hi all,

At various times I've wanted to embark on a process of _removing_ things from csound to make a trimmed-down "diet" version. It's probably OCD, but it also, I think, for me anyway, helps to not have distractions. There are currently, in a standard install, more than 1200 opcodes. Speaking personally, many of them have limited utility, and have the flavor of abandoned experiments, or are opcodes that I have estimated to be of limited musical utility _to me_ (everyone is different, see below).

I've made a curated fork here: github.com/akjmicro/diet_csound

It's a moving target snapshot of a process...it's working well, and takes less time to compile, and about half of the opcodes are gone. I also gave the codebase some love by more logical re-organization of things that I touched that seemed to make no sense (e.g. spectra.c/spectra.h was a dumping ground)

I realize that what one person (me) considers essential might be the complete opposite of what others do. And what I think is essential to my own work is likely to change over time...things will get added back, or taken away. My hope by starting the project is that I can contribute back to the community in the following ways:

* general cleanup and logical placement of code
* prettification of code with beautiful formatting
* most of all: encouraging a system that is customizable by providing general instructions/techniques/scripts that allow lean builds tailored to individual taste. I'm just not into the current monolithic kitchen sink approach of the main repo (I think this is partly the approach since CMake was chosen as the build system? It's possible, if one knows what one is doing, to customize, but it's less obvious than back in the day when it was ./configure; make; make install)...

With that in mind, I'm happy to give back cleanups that are wanted/welcome and make sense to the main developers. This community has given so much over the years to us all, it would be the least I could do!

Otherwise, I consider this a separate curated subset of the main repo, one that satisfies my OCD and desire to _not_ cater to the ideal of "well, if I wrote it 20 years ago, it needs to run today"...something which I've not found to be true even though it's stated as a support goal. The fact is, Csound has broken old orchestras for me on many occasions as new versions have come out. Not a terrible thing, actually -- normal in most software. My reasoning is: why not clean up the code, deprecate certain things, etc., while time marches on?

I only offer it as a template that might be useful for others who enjoy and/or desire a path w/re: customization hacking of Csound.

Cheers,

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2023-09-24 03:40
FromST Music
SubjectRe: [Csnd] "Diet Csound"
I probably should have been more specific - I don't think the "diet" version would be easy to run on a phone, but perhaps possible with Linux or something like that, I haven't tried. But the app Michael maintains works great even on my old Android devices.

Best,
Scott

On Sat, Sept 23, 2023, 6:13 p.m. Michael Gogins <michael.gogins@gmail.com> wrote:
I am the maintainer of the Csound for Android app. It's a pretty complete release of Csound that seems to run on most Android devices and has a built-in text editor, the ability to use HTML for user interfaces, etc.

To the best of my knowledge, there is no complete version of Csound for the iPhone.

Regards,
Mike

-----------------------------------------------------
Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com


On Sat, Sep 23, 2023 at 6:08 PM ST Music <stunes6556@gmail.com> wrote:
I don't think it would be easy to run on your phone but I could be wrong. Are you iOS or Android? The full Csound for Android app isn't that large, about 100 mb.

But don't get it from the PlayStore, the newest update is on github:

Direct download:

Not sure about iPhone.

Best,
Scott

On Sat, Sept 23, 2023, 10:45 a.m. Aaron Krister Johnson <akjmicro@gmail.com> wrote:
Hi all,

At various times I've wanted to embark on a process of _removing_ things from csound to make a trimmed-down "diet" version. It's probably OCD, but it also, I think, for me anyway, helps to not have distractions. There are currently, in a standard install, more than 1200 opcodes. Speaking personally, many of them have limited utility, and have the flavor of abandoned experiments, or are opcodes that I have estimated to be of limited musical utility _to me_ (everyone is different, see below).

I've made a curated fork here: github.com/akjmicro/diet_csound

It's a moving target snapshot of a process...it's working well, and takes less time to compile, and about half of the opcodes are gone. I also gave the codebase some love by more logical re-organization of things that I touched that seemed to make no sense (e.g. spectra.c/spectra.h was a dumping ground)

I realize that what one person (me) considers essential might be the complete opposite of what others do. And what I think is essential to my own work is likely to change over time...things will get added back, or taken away. My hope by starting the project is that I can contribute back to the community in the following ways:

* general cleanup and logical placement of code
* prettification of code with beautiful formatting
* most of all: encouraging a system that is customizable by providing general instructions/techniques/scripts that allow lean builds tailored to individual taste. I'm just not into the current monolithic kitchen sink approach of the main repo (I think this is partly the approach since CMake was chosen as the build system? It's possible, if one knows what one is doing, to customize, but it's less obvious than back in the day when it was ./configure; make; make install)...

With that in mind, I'm happy to give back cleanups that are wanted/welcome and make sense to the main developers. This community has given so much over the years to us all, it would be the least I could do!

Otherwise, I consider this a separate curated subset of the main repo, one that satisfies my OCD and desire to _not_ cater to the ideal of "well, if I wrote it 20 years ago, it needs to run today"...something which I've not found to be true even though it's stated as a support goal. The fact is, Csound has broken old orchestras for me on many occasions as new versions have come out. Not a terrible thing, actually -- normal in most software. My reasoning is: why not clean up the code, deprecate certain things, etc., while time marches on?

I only offer it as a template that might be useful for others who enjoy and/or desire a path w/re: customization hacking of Csound.

Cheers,

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2023-09-24 21:59
FromAaron Krister Johnson
SubjectRe: [Csnd] "Diet Csound"
John,

Not today, but during next week, I'm going to document the opcodes covered by "diet csound". There are close to 630 or so. The master list will be available as part of the documentation, once I do that, moving forward.



On Sat, Sep 23, 2023 at 9:28 AM john <jpff@codemist.co.uk> wrote:
I tried to interest people in a minimal csound but there seemed little
enthusiasm.  I think the way to go is to identify core opcodes, and groups
that belong together.  For the groups make loadable libraries -- plugins,
and then they can be selected as needed for particular uses.

I would be interested in what you have included and what is excluded.

==John ff

On Sat, 23 Sep 2023, Aaron Krister Johnson wrote:

> Hi all,
> At various times I've wanted to embark on a process of _removing_ things
> from csound to make a trimmed-down "diet" version. It's probably OCD, but it
> also, I think, for me anyway, helps to not have distractions. There are
> currently, in a standard install, more than 1200 opcodes. Speaking
> personally, many of them have limited utility, and have the flavor of
> abandoned experiments, or are opcodes that I have estimated to be of limited
> musical utility _to me_ (everyone is different, see below).
>
> I've made a curated fork here: github.com/akjmicro/diet_csound
>
> It's a moving target snapshot of a process...it's working well, and takes
> less time to compile, and about half of the opcodes are gone. I also gave
> the codebase some love by more logical re-organization of things that I
> touched that seemed to make no sense (e.g. spectra.c/spectra.h was a dumping
> ground)
>
> I realize that what one person (me) considers essential might be the
> complete opposite of what others do. And what I think is essential to my own
> work is likely to change over time...things will get added back, or taken
> away. My hope by starting the project is that I can contribute back to the
> community in the following ways:
>
> * general cleanup and logical placement of code
> * prettification of code with beautiful formatting
> * most of all: encouraging a system that is customizable by providing
> general instructions/techniques/scripts that allow lean builds tailored to
> individual taste. I'm just not into the current monolithic kitchen sink
> approach of the main repo (I think this is partly the approach since CMake
> was chosen as the build system? It's possible, if one knows what one is
> doing, to customize, but it's less obvious than back in the day when it was
> ./configure; make; make install)...
>
> With that in mind, I'm happy to give back cleanups that are wanted/welcome
> and make sense to the main developers. This community has given so much over
> the years to us all, it would be the least I could do!
>
> Otherwise, I consider this a separate curated subset of the main repo, one
> that satisfies my OCD and desire to _not_ cater to the ideal of "well, if I
> wrote it 20 years ago, it needs to run today"...something which I've not
> found to be true even though it's stated as a support goal. The fact is,
> Csound has broken old orchestras for me on many occasions as new versions
> have come out. Not a terrible thing, actually -- normal in most software. My
> reasoning is: why not clean up the code, deprecate certain things, etc.,
> while time marches on?
>
> I only offer it as a template that might be useful for others who enjoy
> and/or desire a path w/re: customization hacking of Csound.
>
> Cheers,
>
> Aaron Krister Johnson
> Music, etc.:
> https://soundcloud.com/aaron-krister-johnson
> https://soundcloud.com/filtercreed
> https://www.youtube.com/channel/UC_utjGYbSizWE0dNyr0Vdmg
> https://aaronkristerjohnson.bandcamp.com/
> http://www.untwelve.org
> Code:
> https://github.com/akjmicro
> Csound mailing list Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
> https://github.com/csound/csound/issues Discussions of bugs and features can
> be posted here
>

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here