All Projects → gogins → csound-extended

gogins / csound-extended

Licence: LGPL-2.1 license
Extensions for Csound including algorithmic composition, Android app, and WebAssembly.

Programming Languages

javascript
184084 projects - #8 most used programming language
C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
assembly
5116 projects
Csound Document
19 projects
HTML
75241 projects

Projects that are alternatives of or similar to csound-extended

ziffers
Numbered musical notation for composing algorithmic and generative melodies
Stars: ✭ 53 (+39.47%)
Mutual labels:  music-composition, algorithmic-composition
alda-clj
A Clojure library for live-coding music with Alda
Stars: ✭ 54 (+42.11%)
Mutual labels:  music-composition, algorithmic-composition
Supercollider
An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Stars: ✭ 4,036 (+10521.05%)
Mutual labels:  synthesis, algorithmic-composition
Sc3
SuperCollider library for Python
Stars: ✭ 40 (+5.26%)
Mutual labels:  music-composition, synthesis
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-34.21%)
Mutual labels:  synthesis
reef
Automatically labeling training data
Stars: ✭ 102 (+168.42%)
Mutual labels:  synthesis
Gtr Cof
Interactive music theory dashboard for guitarists. http://guitardashboard.com/
Stars: ✭ 244 (+542.11%)
Mutual labels:  music-composition
Handel
a small procedural programming language for writting songs in browser
Stars: ✭ 185 (+386.84%)
Mutual labels:  music-composition
lessampler
lessampler is a Singing Voice Synthesizer
Stars: ✭ 59 (+55.26%)
Mutual labels:  synthesis
chords
A Kotlin multi-platform view library for displaying stringed instrument chord diagrams
Stars: ✭ 25 (-34.21%)
Mutual labels:  music-composition
musyn
Write music together, in real time.
Stars: ✭ 20 (-47.37%)
Mutual labels:  music-composition
gensound
Pythonic audio processing and generation framework
Stars: ✭ 69 (+81.58%)
Mutual labels:  music-composition
Dyci2Lib
"Dicy2 for Max" is a Max package implementing interactive agents using machine-learning to generate musical sequences that can be integrated into musical situations ranging from the production of structured material within a compositional process to the design of autonomous agents for improvised interaction. Check also our plugin for Ableton live !
Stars: ✭ 35 (-7.89%)
Mutual labels:  music-composition
Ensembles
A digital arranger workstation powered by FluidSynth
Stars: ✭ 312 (+721.05%)
Mutual labels:  music-composition
superfomus
SuperCollider bindings to Fomus Music Notation
Stars: ✭ 23 (-39.47%)
Mutual labels:  algorithmic-composition
Javascriptmusic
Live coding music and synthesis in Javascript / AssemblyScript (WebAssembly)
Stars: ✭ 193 (+407.89%)
Mutual labels:  music-composition
herbie
Optimize floating-point expressions for accuracy
Stars: ✭ 614 (+1515.79%)
Mutual labels:  synthesis
musicntwrk
Network Analysis of Generalized Musical Spaces
Stars: ✭ 37 (-2.63%)
Mutual labels:  music-composition
hmsl
Hierarchical Music Specification Language, Forth tools for experimental music from the 1980's
Stars: ✭ 80 (+110.53%)
Mutual labels:  music-composition
chords
Text-based chord progression editor
Stars: ✭ 25 (-34.21%)
Mutual labels:  music-composition

csound-extended

GitHub All Releases (total)
Michael Gogins
https://github.com/gogins
http://michaelgogins.tumblr.com

Notice!

The csound-extended package is now deprecated and is soon going to be replaced by the more or less equivalent, but much easier to maintain and extend, csound-ac package. Watch this space.

Introduction

This repository contains various extensions to Csound that have been moved out of the core Csound Git repository at https://github.com/csound/csound, or collected from older projects of mine. These extensions include:

  1. CsoundAC, an algorithmic composition library designed to be used with Csound. CsoundAC is written in C++ and has C++, JavaScript, and Python interfaces.

  2. A port of the algorithmic composition program CMask by Andre Bartetzki to WebAssembly and to a Linux Csound plugin opcode.

  3. Silencio, a JavaScript algorithmic composition library designed to work with all Csound/HTML5 environments. PLEASE NOTE: This library is now deprecated, please use the WebAssembly build of CsoundAC instead.

  4. Some plugin opcodes for Csound, including cmask and MVerb.

With regret I must announce that CsoundVST and the vst4cs opcodes are no longer maintained here. This is due to efforts by Steinberg to force developers to move to the VST3 SDK. However, CsoundVST and the vst4cs opcodes are still avaiable from me as freeware binaries from https://michaelgogins.tumblr.com/csound_extended.

As an alternative to the vst4cs opcodes, I recommend using Rory Walsh's Cabbage system for creating VST plugins using Csound. Or, consider using my csound-vst3-opcodes that provide VST3 plugin support for Csound on Linux, and soon on Mac OS and Windows.

New extensions may be added by me in the future. If you would like to add your own extensions, enter an issue in this repository or submit a pull request.

This repository uses the core Csound packages, and some other third-party dependencies, as Git submodules, packages, or direct source downloads. For each platform, there is one build system.

Please log any bug reports or requests for enhancements at https://github.com/gogins/csound-extended/issues.

Examples

Examples (some of which can also serve as tests) for the various aspects of csound-extended are maintained in my separate csound-examples repository. Some of the examples there will run in WebBrowsers using WebAssembly, and these can be viewed at https://gogins.github.io/csound-examples.

Changes

See https://github.com/gogins/csound-extended/commits/develop for the commit log.

Installation

  1. You must first install Csound on your system, e.g. as instructed at https://github.com/csound/csound.

  2. CsoundAC can both import and export MusicXML scores. To enable this, you must be first clone the master branch of libmusicxml from https://github.com/grame-cncm/libmusicxml/tree/dev/build and then build according to https://github.com/grame-cncm/libmusicxml/tree/dev/build but with this command cmake -DCMAKE_C_FLAGS="-fPIC -flto" -DCMAKE_CXX_FLAGS="-fPIC -flto", and finally sudo make install.

  3. There are prebuilt binary releases for this package available at https://github.com/gogins/csound-extended/releases. These can be downloaded, unzipped in your home directory, and used from there. You will need to add the directory containing the CsoundAC shared library to your binary search path.

  4. CsoundAC and other Linux binaries and other resources are installed from the Debian package released from this repository, e.g. sudo apt install ./csound-extended-dev-version-Linux.deb. Please note, this package conflicts with the system packages for CsoundAC.

You may also install locally by first building from sources, as described below. You may then install the software by running sudo make install in the build-linux directory. However, be warned that this installs the software in /usr/local.

There are files and directories in the Git repository and in the packages that can be used as helpers for csound-extended. You can create symbolic links from these files to your home directory or other places.

  • build-env.sh: Source this to set useful environment variables for the build and runtime environment on Linux. You may need to copy and modify this script.

  • Create a symbolic link from csound-extended/playpen/.SciTEUser.properties to your home directory, to create custom commands and editor features in the SciTE text editor. This makes it possible to run various kinds of Csound pieces, and even to build C++ pieces and plugin opcodes, from the editor. Believe me, I tried all the other editors, and this is the one that is both simple and useful. For more information, see playpen/README.md.

  • silencio: Create a symbolic link to this directory in every directory in which you are writing or running a piece that uses the Silencio library.

Building

Currently, the supported platform is Linux. The code is generally "cross-platform" in nature and this build system could be adapted to build for Windows or OS X.

Build and Install Csound

The system packages for Csound are out of date, so you must perform a local build and installation of Csound. Clone the Csound Git repository from https://github.com/csound/csound, and build and install Csound according to the instructions there.

Build, Package, and Install csound-extended

First clone the Git repository at https://github.com/gogins/csound-extended.

Then copy the Custom.cmake.ex file to Custom.cmake and customize it for your system. It is essential to set a CMake variable CSOUND_SOURCE_HOME to the root directory for the Csound source code, which could be as simple as "~/csound".

Building on Linux

The build is highly automated. Many dependencies are local. Most dependencies are fetched automatically. Most targets are built for release with debug information. I have tried to keep configuration options, and manual configuration steps, to an absolute minimum, all controlled by environment variables in build-env.sh.

When the build is complete, all targets have been built and the package files have been generated.

Manual configuration steps include, but are not necessarily limited to:

  1. Lance Putnum's Gamma library for C++ audio signal processing must be cloned from GitHub, built with the addition of the -fPIC compiler option, and installed (CMake should be able to find it in the /usr/local tree).

  2. CsoundAC can both import and export MusicXML scores. To enable this, in the csound-extended/dependencies/libmusicxml directory,
    build according to https://github.com/grame-cncm/libmusicxml/tree/dev/build and finally sudo make install.

  3. The following environment variables MUST be set before building, perhaps in your .profile script. Obviously, modify the paths as required to suit your home directory and installation details. These are exported in build-env.sh which you can source in your .profile script.

OPCODE6DIR64=/usr/local/lib/csound/plugins64-6.0
RAWWAVE_PATH=/home/mkg/stk/rawwaves

The very first time you build csound-extended, go to about line 260 in CMakeLists.txt and do as it says there:

# For your first build on your system, set this to "OFF", build, and install.
# Then, set this to "ON", rebuild, and reinstall. This is a workaround for a 
# bug in how CPack interacts with shlibdeps.
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "ON")

Change to your csound-extended repository and execute

bash fresh-build-linux-release.sh`

during which sudo may prompt you for your password. This script does the following:

  1. Execute bash update-dependencies.sh. Do this periodically or whenever you think a dependency has changed.

  2. Execute bash build-linux.sh. The build compiles all targets and creates all packages.

Subsequently, you can perform these steps independently.

To make clean, execute bash clean-linux.sh.

To install, change to build-linux and execute sudo install ./csound-extended-dev-{version}-Linux.deb --reinstall.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].