#bindings #multimedia #api-bindings #level #high #high-level

csound

Raw bindings to Csound High level Rust bindings are available in the csound crate

9 releases

0.1.8 Mar 27, 2020
0.1.7 Oct 4, 2019
0.1.6 May 6, 2019
0.1.5 Mar 3, 2019
0.1.2 Jan 31, 2019

#155 in Audio

Download history 1262/week @ 2024-03-14 1255/week @ 2024-03-21 1357/week @ 2024-03-28 1512/week @ 2024-04-04 1456/week @ 2024-04-11 1186/week @ 2024-04-18 1566/week @ 2024-04-25 1223/week @ 2024-05-02 1511/week @ 2024-05-09 1459/week @ 2024-05-16 2070/week @ 2024-05-23 1168/week @ 2024-05-30 1198/week @ 2024-06-06 1493/week @ 2024-06-13 1273/week @ 2024-06-20 1243/week @ 2024-06-27

5,459 downloads per month
Used in gst-plugin-csound

MIT/Apache

220KB
4K SLoC

Build Status

csound

Csound bindings for Rust.

Documentation can be found here

Table of Contents

  1. Installation
    1. Linux/BSDs
    2. macOS
    3. Windows
  2. Getting Started
  3. License
  4. Contribution

Installation

To build the Csound bindings or anything depending on this crate, you need to have at least Csound 6.11, previous versions are not suported. By default( The only supported way), this crate will attempt to dynamically link to the system-wide libcsound64.

Linux/BSDs

You can install Csound using your distro-package manager, or in case your package manager has a unsupported version of Csound( <6.11 ) you have to build it from source.

On Debian/Ubuntu Csound can be installed with

# Make sure the version of this package is >= 6.11
$ apt-get install libcsound64-6.0 libcsound64-dev

Also, You can compile it from source and install(recommended)

# First, install all the csound's dependencies
$ apt-get install build-essential libportaudio2 portaudio19-dev cmake /
flex bison libsndfile1-dev libsndfile1

then, clone the csound's source code

# Clone Csound from its repository
$ git clone https://github.com/csound/csound.git

Compile and install the library.

# Clone Csound from its repository
$ cd csound/
$ cmake . && make && sudo make install
$ sudo ldconfig

Csound will be installed in /usr/local/lib, there is where the build.rs script will look at, for the csound's binaries. so, It could be a good idea if you export this path in your bashrc or write a propper pkg-config file.

macOS

Please be free to send a pull request with the changes applied to the build scripts and instructions about how to use this crate along csound's native library

Windows

Download the csound's installer for windows Follow the instalation steps.

  1. Locate your csound installation directory ( commonly it is C:\Program Files\Csound6_x64)
  2. Open Command Prompt (make sure you Run as administrator so you're able to add a system environment variable).
  3. Set the environment variable as follows:
$ setx CSOUND_LIB_DIR "C:\\Program Files\\Csound6_x64\\lib"
  1. Restart Command Prompt to reload the environment variables then use the following command to check the it's been added correctly.
$ echo %CSOUND_LIB_DIR%

You should see the path to your Csound's lib installation.

Getting Started

The API reference can be found here

For getting started withCsound-rs, you have to understand some basic concepts about Csound, before to try to use this bindigs. Please check the Get Started page in the Csound's site Get Started In addition there are csound api examples inside of the rust directory.

Csound's examples for rust

The easy way to get familiar with csound is to explore the examples. To get the examples we just need to clone this repository.

# Clone Csound from its repository
$ git clone https://github.com/neithanmo/csound-rs.git

Now, go to the repository directory

# Clone Csound from its repository
$ cd csound-rs

For running the examples 1 to 10 just:

# Runs the example 5
$ cargo run --release --example example5

The example 11 requires some dependencies, but you can run them through calling cargo on their own Cargo.toml file

# Runs the example 11
$ cd examples/example11
$ cargo --release build
$ cargo run

License

csound-rs is licensed under either

at your option.

Csound itself is licensed under the Lesser General Public License version 2.1 or (at your option) any later version: https://www.gnu.org/licenses/lgpl-2.1.html

Contribution

Any kinds of contributions are welcome as a pull request.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in csound-rs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~160KB