{"id":43881935,"url":"https://github.com/gogins/csound-extended","last_synced_at":"2026-02-06T15:39:06.245Z","repository":{"id":40557845,"uuid":"118136197","full_name":"gogins/csound-extended","owner":"gogins","description":"Extensions for Csound including algorithmic composition, Android app, and WebAssembly.","archived":false,"fork":false,"pushed_at":"2023-01-01T18:29:47.000Z","size":420973,"stargazers_count":38,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2023-03-01T00:01:13.588Z","etag":null,"topics":["algorithmic-composition","algorithmic-composition-library","c-plus-plus","csound","linux","music-composition","music-synthesis","python","synthesis"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gogins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-19T14:38:24.000Z","updated_at":"2022-12-14T22:47:21.000Z","dependencies_parsed_at":"2023-02-01T00:16:34.714Z","dependency_job_id":null,"html_url":"https://github.com/gogins/csound-extended","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/gogins/csound-extended","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogins%2Fcsound-extended","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogins%2Fcsound-extended/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogins%2Fcsound-extended/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogins%2Fcsound-extended/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gogins","download_url":"https://codeload.github.com/gogins/csound-extended/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogins%2Fcsound-extended/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29167383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T14:37:12.680Z","status":"ssl_error","status_checked_at":"2026-02-06T14:36:22.973Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithmic-composition","algorithmic-composition-library","c-plus-plus","csound","linux","music-composition","music-synthesis","python","synthesis"],"created_at":"2026-02-06T15:39:03.207Z","updated_at":"2026-02-06T15:39:06.236Z","avatar_url":"https://github.com/gogins.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# csound-extended\n![GitHub All Releases (total)](https://img.shields.io/github/downloads/gogins/csound-extended/total.svg)\u003cbr\u003e\nMichael Gogins\u003cbr\u003e\nhttps://github.com/gogins\u003cbr\u003e\nhttp://michaelgogins.tumblr.com\n\n## Deprecation Notice\n\nCurrently, I am not maintaining this repository. In general, my priority is \ncomposing music, not programming. However, I do create open-source GitHub \nrepositories in order to share tools that I make for composing. As my \nworking methods change, so do the tools I make. \n\nI now use [csound-ac](https://github.com/gogins/csound-ac) instead of \ncsound-extended to implement my C++ algorithmic composition library, my \nhelper scripts for my computer music playpen, and my Csound patches.\n\nHowever, this repository will remain available.\n\n## Introduction\n\nThis repository contains various extensions to Csound that have been moved\nout of the core Csound Git repository at https://github.com/csound/csound,\nor collected from older projects of mine. These extensions include:\n\n1.  CsoundAC, an algorithmic composition library designed to be used with\n    Csound. CsoundAC is written in C++ and has C++, JavaScript, and Python \n    interfaces.\n\n2.  A port of the algorithmic composition program CMask by Andre Bartetzki\n    to WebAssembly and to a Linux Csound plugin opcode.\n\n3.  Silencio, a JavaScript algorithmic composition library designed to work\n    with all Csound/HTML5 environments. __PLEASE NOTE: This library is now \n    deprecated, please use the WebAssembly build of CsoundAC instead.__\n  \n4.  Some plugin opcodes for Csound, including cmask and MVerb.\n    \nWith regret I must announce that CsoundVST and the vst4cs opcodes are no longer\nmaintained here. This is due to efforts by Steinberg to force developers to move\nto the VST3 SDK. **However, CsoundVST and the vst4cs opcodes are still avaiable \nfrom me as freeware binaries from https://michaelgogins.tumblr.com/csound_extended.** \n\nAs an alternative to the vst4cs opcodes, I recommend using Rory Walsh's \n[Cabbage](https://github.com/rorywalsh/cabbage) system for creating VST \nplugins using Csound. Or, consider using my \n[csound-vst3-opcodes](https://github.com/gogins/csound-vst3-opcodes) that provide \nVST3 plugin support for Csound on Linux, and soon on Mac OS and Windows. \n\nNew extensions may be added by me in the future. If you would like to add your\nown extensions, enter an issue in this repository or submit a pull request.\n\nThis repository uses the core Csound packages, and some other third-party\ndependencies, as Git submodules, packages, or direct source downloads. For each\nplatform, there is one build system.\n\nPlease log any bug reports or requests for enhancements at\nhttps://github.com/gogins/csound-extended/issues.\n\n## Examples\n\nExamples (some of which can also serve as tests) for the various aspects of \ncsound-extended are maintained in my separate \n[csound-examples](https://github.com/gogins/csound-examples) \nrepository. Some of the examples there will run in WebBrowsers using \nWebAssembly, and these can be viewed at \nhttps://gogins.github.io/csound-examples.\n\n## Changes\n\nSee https://github.com/gogins/csound-extended/commits/develop for the commit\nlog.\n\n## Installation\n\n1.  You must first install Csound on your system, e.g. as instructed at \n    `https://github.com/csound/csound`.\n    \n2.  CsoundAC can both import and export MusicXML scores. To enable this,\n    you must be first clone the master branch of libmusicxml from \n    `https://github.com/grame-cncm/libmusicxml/tree/dev/build` and then \n    build according to `https://github.com/grame-cncm/libmusicxml/tree/dev/build` \n    but with this command `cmake -DCMAKE_C_FLAGS=\"-fPIC -flto\" -DCMAKE_CXX_FLAGS=\"-fPIC -flto\"`, \n    and finally `sudo make install`.\n    \n3.  There are prebuilt binary releases for this package available at \n    https://github.com/gogins/csound-extended/releases. These can be downloaded,\n    unzipped in your home directory, and used from there. You will need to add \n    the directory containing the CsoundAC shared library to your binary search \n    path.\n\n3.  CsoundAC and other Linux binaries and other resources are installed from\n    the Debian package released from this repository, e.g.\n    `sudo apt install ./csound-extended-dev-version-Linux.deb`.  Please note,\n    this package conflicts with the system packages for CsoundAC.\n    \nYou may also install locally by first building from sources, as described\nbelow. You may then install the software by running `sudo make install` in\nthe build-linux directory. However, be warned that this installs the\nsoftware in /usr/local. \n\nThere are files and directories in the Git repository and in the packages that \ncan be used as helpers for csound-extended. You can create symbolic links from \nthese files to your home directory or other places.\n\n- `build-env.sh`: Source this to set useful environment variables for the \n  build and runtime environment on Linux. You may need to copy and modify this \n  script.\n  \n- Create a symbolic link from `csound-extended/playpen/.SciTEUser.properties` to your \n  home directory, to create custom commands and editor features in the SciTE \n  text editor. This makes it possible to run various kinds of Csound pieces, \n  and even to build C++ pieces and plugin opcodes, from the editor. Believe \n  me, I tried all the other editors, and this is the one that is both simple \n  and useful. For more information, see `playpen/README.md`.\n\n- `silencio`: Create a symbolic link to this directory in every directory in \n  which you are writing or running a piece that uses the Silencio library.\n\n## Building\n\nCurrently, the supported platform is Linux. The code is generally \n\"cross-platform\" in nature and this build system could be adapted to build for \nWindows or OS X.\n\n### Build and Install Csound\n\nThe system packages for Csound are out of date, so you must perform a local \nbuild and installation of Csound. Clone the Csound Git repository from \n`https://github.com/csound/csound`, and build and install Csound according to \nthe instructions there. \n\n### Build, Package, and Install csound-extended\n\nFirst clone the Git repository at https://github.com/gogins/csound-extended.\n\nThen copy the Custom.cmake.ex file to Custom.cmake and customize it for your \nsystem. It is _essential_ to set a CMake variable CSOUND_SOURCE_HOME to the \nroot directory for the Csound source code, which could be as simple as \"~/csound\".\n\n#### Building on Linux\n\nThe build is highly automated. Many dependencies are local. Most dependencies \nare fetched automatically. Most targets are built for release with debug \ninformation. I have tried to keep configuration options, and manual \nconfiguration steps, to an absolute minimum, all controlled by environment \nvariables in `build-env.sh`.\n\nWhen the build is complete, all targets have been built and the package \nfiles have been generated.\n\nManual configuration steps include, but are not necessarily limited to:\n\n1.  Lance Putnum's Gamma library for C++ audio signal \n    processing must be cloned from GitHub, built with the addition of the \n    `-fPIC` compiler option, and installed (CMake should be able to find it in \n    the `/usr/local` tree).\n\n2.  CsoundAC can both import and export MusicXML scores. To enable this,\n    in the `csound-extended/dependencies/libmusicxml` directory,  \n    build according to `https://github.com/grame-cncm/libmusicxml/tree/dev/build` \n    and finally `sudo make install`.\n\n3. The following environment variables MUST be set before building, perhaps in\nyour `.profile` script. Obviously, modify the paths as required to suit your\nhome directory and installation details. These are exported in `build-env.sh` \nwhich you can source in your `.profile` script.\n\n```\nOPCODE6DIR64=/usr/local/lib/csound/plugins64-6.0\nRAWWAVE_PATH=/home/mkg/stk/rawwaves\n\n```\n\nThe very first time you build csound-extended, go to about line 260 in \nCMakeLists.txt and do as it says there:\n```\n# For your first build on your system, set this to \"OFF\", build, and install.\n# Then, set this to \"ON\", rebuild, and reinstall. This is a workaround for a \n# bug in how CPack interacts with shlibdeps.\nset(CPACK_DEBIAN_PACKAGE_SHLIBDEPS \"ON\")\n```\nChange to your csound-extended repository and execute\n```\nbash fresh-build-linux-release.sh`\n```\n\nduring which sudo may prompt you for your password. This script does the \nfollowing:\n\n1.  Execute `bash update-dependencies.sh`. Do this periodically or whenever\n    you think a dependency has changed.\n\n2.  Execute `bash build-linux.sh`. The build compiles all targets and creates\n    all packages.\n\nSubsequently, you can perform these steps independently.\n\nTo make clean, execute `bash clean-linux.sh`.\n\nTo install, change to build-linux and execute `sudo install\n./csound-extended-dev-{version}-Linux.deb --reinstall`.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgogins%2Fcsound-extended","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgogins%2Fcsound-extended","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgogins%2Fcsound-extended/lists"}