Releases: gogins/csound-extended
New release of the Csound for Android app
This release updates the Csound for Android app to reflect the need for using the public data directory for samples and other Csound resources.
On startup, the app prints to the Message pane:
- The Csound for Android app version code.
- The Csound native library version number.
- The full path of the app's public data directory.
The User Guide has been updated to reflect these changes.
New release of csound-extended and the Csound for Android app
Release Notes for csound-extended and Related Projects
Michael Gogins
https://github.com/gogins
http://michaelgogins.tumblr.com
3 June 2013
I am pleased to announce new releases of various extensions to Csound written or
maintained by me for Linux and Android. These include:
csound-extended package 1.3.2
https://github.com/gogins/csound-extended
The csound-extended Debian package includes the CsoundAC algorithmic composition
library for C++, the nudruz algorithmic composition library for Common Lisp,
csound.node for running Csound in NW.js, the LuaJIT opcodes for Csound, and the
cmask opcodes for Csound. Changes in this release include
-
Changed from the v8 API to the Node Addon API for better maintainability of
csound.node. -
New KMeansMCRM node in CsoundAC that uses k-means clustering to translate IFS
attractors to scores. -
Improved ImageToScore2 node in CsoundAC that enables some image processing
before translation to a score. -
Consistency of dimensions of notes across languages in csound-extended,
-
The addition of the LuaJIT opcodes, which have been removed from the core
Csound repository. -
Better Doxygen documentation.
-
Instructions for building csound-extended with the current version of Csound.
-
Updated playable (run examples in Web browsers) version of the Csound
Reference Manual at
https://gogins.github.io/csound-extended/html/indexframes.html. -
Added CsoundProducer header-file-only class to integrate post-processing and
tagging of pieces. -
Embeddable Common Lisp now embedded in CsoundProducer, enabling Common Lisp
code e.g. from nudruz to run in CsoundAC and csound.node. -
Improved Csound patch library.
-
Improved spatialization system in Csound patch library.
-
Removal of CsoundHtml5 due to instability and overlapping functionality with
both CsoundQt and csound.node.
Csound for Android app release 19
https://play.google.com/store/apps/details?id=com.csounds.Csound6&hl=en_US
The Csound for Android app includes most of Csound, including a number of plugin
opcodes. Changes in this release include:
-
Built-in text editor based on CodeMirror.
-
Improved tabbed user interface; it is not necessary to change settings to
work with HTML, builtin widgets, or plain Csound. -
Corrected bug for "Save" which now works.
-
Oboe audio stream now stopped from a separate thread to prevent crashing.
-
Built-in browser for the Csound Reference Manual.
-
Restored user-configurable audio driver.
-
Improved audio stability and performance.
-
Improved "Scrims" example piece.
csound-aeolus package 2.1.1
https://github.com/gogins/csound-aeolus
The csound-aeolus package provides Fons Adriaensen's wonderful Aeolus pipe organ
emulation as a Csound opcode.
There are no major changes in this release.
csound-vst package 1.0.2
The csound-vst package includes both Csound as a VST 2 plugin, and opcodes for
hosting VST plugins in Csound.
There are no major changes in this release.
For more information, please consult the repository commit logs.
csound-extended-dev Now Available as a Debian Package
ANNOUNCING NEW RELEASES OF GOGINS CSOUND EXTENSIONS
I am pleased to announce new releases of my various extensions to Csound, designed to support algorithmic composition.
The biggest change is that wherever possible, my extensions are now released in regular Debian packages, which do not depend on my own build of Csound, but rather only on the publicly available system packages for Csound and other software. Therefore it should be possible, after downloading the packages from my GitHub release page, to install and uninstall these packages like any other Debian package, e.g.
sudo apt install ./package-version-linux.deb
This is my first stab at Debian packaging, so gentle feedback would be appreciated. These packages target Ubuntu 18.04, bionic beaver, but may work on other systems. Feedback on other issues is also welcome.
With the exception of csound-vst, all packages may also be installed from binary archives, or built and installed from source code.
Please note, all C/C++ based code uses Csound system packages, while all Android and WebAssembly code uses the current develop branch of Csound.
For a complete list of changes, see https://github.com/gogins/csound-extended/commits/develop for the commit log.
AVAILABLE PACKAGES
csound-extended-dev
https://github.com/gogins/csound-extended/releases
csound.node, my native add-on for running Csound in the JavaScript context of NW.js.
CMask, my Csound opcodes (and WebAssembly module) for the CMask granular synthesis and algorithmic composition program by Andre Bartetzki.
CsoundAC, my C++ algorithmic composition library with interfaces in C++, Python, Lua, and Java. Note: replaces the CsoundAC related packages in Debian. CsoundAC has been extended with support for running Common Lisp code in pieces defined by CsoundAC, using Embeddable Common Lisp. CsoundAC has been refactored so that the csnd6 library interfaces for Lua and Python are not required. The methods of CppSound have been exposed in the MusicModel class, e.g. CppSound::CompileCsdText is exposed as MusicModel::cppsoundCompileCsdText.
CsoundHtml5, my visual "front end" for Csound with HTML5 support.
nudruz, my Common Lisp package for the algorithmic composition library developed by Drew Krause, which extends Common Music version 2 for Common Lisp. My package includes Common Music 2, Fomus for automatically notating generated scores (works sometimes), and support for running Csound directly from Lisp using cffi, both in the Common Music package and (as a drop-in replacement for the OM2Csound module) in OpenMusic. Tested with Steel Bank Common Lisp and Embeddable Common Lisp.
csound-extended-wasm
https://github.com/gogins/csound-extended/releases
CsoundAudioNode.js, my own WebAssembly build of Csound, for running Csound in the JavaScript context of any recent standard Web browser.
silencio, my algorithmic composition library for JavaScript, works with any WebAssembly build of Csound.
csound-aeolus
https://github.com/gogins/csound-aeolus/releases
My Csound opcodes for Fons Adriaenson's excellent software emulation of pipe organs.
CsoundForAndroid
https://play.google.com/store/apps/details?id=com.csounds.Csound6
The Csound for Android app has been updated to Android API level 26 and is available for beta testing on the Play store; also available at https://github.com/gogins/csound-extended/releases.
Please note that Android has tightened security restrictions on the file system, so now only certain public directories can be used from the CsoundForAndroid app.
Google now requires NDK builds to use clang, but LuaJIT cannot be built for Android with clang, so the LuaJIT opcodes are no longer part of the Csound for Android app.
csound-vst
https://michaelgogins.tumblr.com/csound_extended
Includes CsoundVST for running Csound as a native VST plugin on Linux, and the vst4cs opcodes for running VST plugins in Csound.
csound-extended-0.1.2
CsoundAC
Removed setting thisown=0
in CsoundAC Python interface (#27).
Csound for Android
Disable orientation by sensor if widgets are used in Csound for Android app (#33).
Changed User Guide to .pdf in Csound for Android app (#35).
Don't try to "Save as..." if there is no file to save in the Csound for Android app (#36).
Created a foreground service to keep the Csound for Android app running in the background.
In Lua opcodes use C snprintf insteadl of C++ std::snprintf to work around NDK bug.
Updated permissions.
Improved some examples.
Csound for WebAssembly
Embedded a basic SoundFont and some HRTF data files as Csound resources for WebAssembly (#32).
Improved some examples.
csound-extended-0.1.2-beta
Note: I have changed version names so that they no longer track the version of the core Csound dependency. This was confusing to some people.
This release adds a new build of Csound for WebAssemby, CsoundAudioNode.js
, based on AudioWorklet, which replaces the soon to be deprecated ScriptProcessorNode for implementing Web Audio. This is an addition, not a replacement for the existing csound_extended.js
build.
So far, the AudioWorklet implementation seems to perform more stably than either the ScriptProcessorNode implementation or the csound.node implementation, no doubt because it is running in a separate thread in the JavaScript context, and communicates with the browser thread only asynchronously.
With NW.js 30.2, it is now possible to run not only csound.node, but also these WebAssembly builds of Csound, in NW.js, making it a good development environment for Csound pieces.
There two ways to use csound-extended's Csound for WebAssembly. In all cases, load the WebAssembly files from the same directory as your HTML pieces. If you simply want to use CsoundAudioNode.js
, then load CsoundAudioNode.js
and create the Csound object, like this:
<script src="CsoundAudioNode.js"></script>
<script>
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext();
audioContext.audioWorklet.addModule('CsoundAudioProcessor.js').then(function() {
console.log("Creating CsoundAudioNode...\n");
csound = new CsoundAudioNode(audioContext);
console.log("Csound audio worklet is available in this JavaScript context.\n");
}).catch(error => {
console.log(error);
});
</script>
Note that ksmps = 128
is mandatory. For CSDs, set that in the <CsOptions>
element. Otherwise, set it using csound.SetOption().
If you want to write a piece that will run equally well in csound.node. Csound for Android, CsoundQt, Web browsers, or NW.js, you can do this:
<script src="csound_extended.js"></script>
<script src="CsoundAudioNode.js"></script>
<script src="csound_loader.js"></script>
<script>
csound = get_csound(my_csound_message_callback);
</script>
Please note, the csound_extended.js
and cmask.js
libraries are now "modularized," that is, to use them one must call a global module function exported from the WebAssembly script. This is done to avoid polluting the global namespace, and thus enable loading several WebAssembly modules that can work together. In the future, WebAssembly may become able to load ES6 modules in a more standard way.
csound-extended-6.11.1
This release contains a new Csound opcode that encapsulates all functionality of
Andre Bartetzk's algorithmic composition program CMask. This is in addition to the WebAssembly
build of CMask introduced in the previous release.
cmask
Description
Encapsulates all functionality of Andre Bartetzki's CMask program
for algorithmic composition into one i-rate Csound opcode.
THe cmask opcode receives a string containing the text of a CMask
parameter file, and returns a string containing the generated Csound score.
If the optional play_immediately parameter is true, the generated score is
immediately played. See this reference and article.
Syntax
iscore_text cmask iparameters_text [, iplay_immediately]
Initialization
iparameters_text -- A string, usually multi-line (delimited {{
and }}
, that
contains any text that might be found in a CMask parameters file.
iplay_immediately -- If 1, the score events generated from the parameters are immediately scheduled
for performance. The default is 1.
Performance
iscore_text -- The text of all score events generated from the parameters, in case the user wishes to
further process these events before performing them.
Credits
Andre Bartetzki
http://www.bartetzki.de
1997
Michael Gogins
http://michaelgogins.tumblr.com
2018
Csound for Android fixes a bug where playing disabled the ring tone without re-enabling it after playing. The ring tone is no longer automatically disabled, the user has to do it. This build has also been published to the Google Play Store.
The Csound for Android duplex audio example has been fixed.
The WebAssembly build of Csound hosted here is now based on a new CsoundWebAudio class that supports both score-driven and live performance modes now work for WebAssembly, and follows the syntax and semantics of csound.hpp
more closely. Bindings to native code are implemented using the Emscripten Embind facility.
Static linking of select plugin opcodes has been re-enabled for WebAssembly.
Csound and its dependencies have been updated to Csound version 6.11.
The Csound version numbers in the release archives indicate compatibility with the same version of Csound, as csound-extended is built with the same same sources and compiler flags.
This release includes a WebAssembly port of CMask by Andre Bartetzki.
I have removed Debian binary packages. These will be restored here, or elsewhere, when I am confident that they can safely be installed and uninstalled.
In the meantime you can install the binary archives in /usr/local
and they should work with Csound 6.11 either from here, or from the regular Csound repository.
csound-extended 6.11.1
Csound for Android fixes a bug where playing disabled the ring tone without re-enabling it after playing. The ring tone is no longer automatically disabled, the user has to do it. This build has also been published to the Google Play Store.
The Csound for Android duplex audio example has been fixed.
The WebAssembly build of Csound hosted here is now based on a new CsoundWebAudio class that supports both score-driven and live performance modes now work for WebAssembly, and follows the syntax and semantics of csound.hpp
more closely. Bindings to native code are implemented using the Emscripten Embind facility.
Static linking of select plugin opcodes has been re-enabled for WebAssembly.
Csound and its dependencies have been updated to Csound version 6.11.
The Csound version numbers in the release archives indicate compatibility with the same version of Csound, as csound-extended is built with the same same sources and compiler flags.
This release includes a WebAssembly port of CMask by Andre Bartetzki.
I have removed Debian binary packages. These will be restored here, or elsewhere, when I am confident that they can safely be installed and uninstalled.
In the meantime you can install the binary archives in /usr/local
and they should work with Csound 6.11 either from here, or from the regular Csound repository.
Component Release
I have broken up the csound-extended package to make certain features available to people who already have installed Csound and now wish to add the VST opcodes (vst4cs), csound.node, the CsoundAC algorithmic composition package, or the CsoundHtml5 front end.
The Csound for Android app now supports out of real time rendering to soundfiles, as well as real-time audio.
I have added the WebAssembly package as well.
The Csound version numbers in the release archives indicate compatibility with the same version of Csound, as csound-extended is built with the same same sources and compiler flags.
WARNING! Although this repository builds Debian packages, they are NOT yet suitable for inclusion in Debian. The package is a work in progress. YOU ARE ADVISED TO INSTALL LOCALLY, i.e. with dpkg --instdir=/usr/local <csound-extended.deb>
or dpkg --instdir=~/ <csound-extended.deb>
. Currently, although the package files build, they do not pass lintian, and may conflict with external Csound packages. In the future, csound-extended packages may be submitted to the Debian archive.
Initial beta release of csound-extended
This is the initial beta release of csound-extended. It contains Debian binaries tested on Ubuntu 17.10, and a signed release of the Csound for Android app for Android Lollipop (SDK level 21) or later. This project continues CsoundAC, CsoundVST, csound.node, and the Csound for Android app in a new repository. This project also adds the CsoundHtml5 program, a simple but usable front end and editor for running Csound pieces, either regular .csd files or Csound pieces enhanced with HTML5 or in the form of .html pages.
Please note, this repository uses, and will continue to use, Csound source code from the core Csound repository. In other words, csound-extended is by no means a fork of Csound.
To install these programs, download the tar.gz file and install it locally according to the README.md of this repository. It may, however, be easier to install from source code as the build system installs or builds all required dependencies.
To obtain the source code, clone this repository or download a zip file of it.