Coder Social home page Coder Social logo

csound_pd's Introduction

CSOUND

Version 6.18.0

Build Status

A sound and music computing system.

Csound is copyright (c) 1991-2020 The Csound Developers, see CONTRIBUTORS

Csound is free software; you can redistribute them and/or modify them under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

Csound is distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this software; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

GETTING STARTED

This repository contains the code for the core Csound library, the interfaces library, and the command-line interface frontend. It also contains specific code for ports to various embedded, mobile and web platforms.

For general project information, please look at http://csound.com, where all details about Csound, what it does, its history, music made with it, and many other things can be found.

The Csound Reference Manual can be found online at http://docs.csound.com.

The Csound API application programming interface reference may be found online at http://csound.github.io/docs/api/index.html.

Information on how to build Csound on various platforms is given in the BUILD.md file at the top level directory of this repository.

Information about build pipelines with Azure and Github actions is given in DockerFiles/Readme.md.

CONTRIBUTORS

Csound contains contributions from musicians, scientists, and programmers from around the world. They include (but are not limited to):

  • Allan Lee
  • Andres Cabrera
  • Anthony Kozar
  • Barry Vercoe
  • Bill Gardner
  • Bill Verplank
  • Dan Ellis
  • David Macintyre
  • Ed Costello
  • Eli Breder
  • Fabio P. Bertolotti
  • Felipe Sataler
  • François Pinot
  • Gabriel Maldonado
  • Greg Sullivan
  • Hans Mikelson
  • Henri Manson
  • Ian McCurdy
  • Istvan Varga
  • Jean Piché
  • Joachim Heintz
  • John Ramsdell
  • John ffitch
  • Marc Resibois
  • Mark Dolson
  • Matt Ingalls
  • Max Mathews
  • Michael Casey
  • Michael Clark
  • Michael Gogins
  • Mike Berry
  • Nate Whetsell
  • Paris Smaragdis
  • Perry Cook
  • Peter Neubäcker
  • Peter Nix
  • Rasmus Ekman
  • Richard Dobson
  • Richard Karpen
  • Rob Shaw
  • Robin Whittle
  • Rory Walsh
  • Sean Costello
  • Stephen Kyne
  • Steven Yi
  • Tito Latini
  • Tom Erbe
  • Victor Lazzarini
  • Ville Pulkki

csound_pd's People

Contributors

gogins avatar joachimheintz avatar jpffitch avatar mantaraya36 avatar rorywalsh avatar titola avatar umlaeute avatar vlazzarini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

csound_pd's Issues

get ready for double precision

Pd-0.54 has been released, and we think that we finally have a way to double-precision processing (about 20 years after Csound...).

a double-precision external must:

  • use t_float/t_floatarg/t_sample (instead of float) for all the interfacing with Pd
  • be compiled with -DPD_FLOATSIZE=64
  • use a special filename extension: .<os>-<cpu>-<floatsize>.<ext> with
    • <os>: being the operating system ("windows", "darwin", "linux",...)
    • <cpu>: the CPU-identifier, similar to the Debian arch specs (e.g. amd64 for x86_64, i386 for x86, arm64 for M1,...)
    • <floatsize>: size of floats in bits ("64")
    • <ext>: the system-native extension of dynamic libraries (dll for Windows, so for Un*xes)
      the entire extension is lower-case, e.g.
    • .windows-amd64-64.dll
    • .linux-arm64-64.so
    • .darwin-fat-64.so (for universal binaries)

for now, I would suggest allowing to pass the extension to the buildsystem via some CMake variable (so you don't have to handle special cases like the s390x architecture manually)
it's already possible to pass some CPPFLAGS to the buildsystem, so the PD_FLOATSIZE define shouldn't be a problem.

static declaration of ‘error’ follows non-static declaration

System : Linux Mint 20
Csound 6.18

/home/johann/Documents/GitHub/csound_pd/src/csoundapi_tilde.c:40:13: error: static declaration of ‘error’ follows non-static declaration
   40 | static void error(const char *fmt,...) {
      |             ^~~~~
In file included from /home/johann/Documents/GitHub/csound_pd/src/csoundapi_tilde.c:27:
/usr/include/m_pd.h:537:13: note: previous declaration of ‘error’ was here
  537 | EXTERN void error(const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
      |             ^~~~~
make[2]: *** [CMakeFiles/pdcsound.dir/build.make:79: CMakeFiles/pdcsound.dir/src/csoundapi_tilde.c.o] Error 1
make[2]: Leaving directory '/home/johann/Documents/GitHub/csound_pd/build'
make[1]: *** [CMakeFiles/Makefile2:86: CMakeFiles/pdcsound.dir/all] Error 2
make[1]: Leaving directory '/home/johann/Documents/GitHub/csound_pd/build'
make: *** [Makefile:94: all] Error 2

removing the static attribute in csoundapi_tilde.c solved the issue.

question regarding monotonic versioning

afaik, csound_pd used to be part of Csound and carried the same version number as the mother project.
don't users find it confusing to suddenly have to downgrade from 6.x to 1.y?

would you consider bumping the version of csound_pd to a number that it strictly monotonic with regard to the old external?

background story

i'm mainly concerned about the Debian packages.
pd-csound used to be built from the csound sources, but since the external is no longer part of Csound (proper), there currently is no Debian package pd-csound anymore. So I'm creating a new pd-csound package based on this repository.
Debian packages allow for easy upgrading between versions; however, the package management system uses version numbers to determine which of two packages with the same name is the newer one.
While pd-csound was part of Csound, it used to have the same version number as Csound, so the last pd-csound package that was in Debian carried the version 6.10.0.
Now this repository (currently) has the version 1.01.0, which sorts before 6.10.0, thus creating a bit of headache for people who want to do a simple system upgrade: pd-csound would be left at the old version :-(

there are possibilities to handle this (since there are a number of projects that don't always have monotonic version numbers), but if possible i'd rather avoid such quirks.

make install installs cound6~.pd_linux in a bogus place

doing a make install will create /usr/lib/csound6~.pd_linux which is plain wrong.

the correct installation path should be something like ${prefix}/lib/pd/extra/csound6~/.

however, since the examples aren't installed either, it's probably best to just not install the external in the first place.

'const' error with Pd>=0.49

since Pd>=0.49, the t_symbol holds a const char* (rather than a char*).

This breaks compilation, as csoundSetStringChannel expects a char* pointer, when we only really have a const char* (in csoundapi_tilde.c:736).

A quick and dirty fix is to just cast away the constness (assuming that the 3rd argument of csoundSetStringChannel is really handled as a const string)

CMake Error: PD header not found

Hello!

While trying to build csound_pd this error occurred:
CMake Error at CMakeLists.txt:37 (MESSAGE):
PD header not found
I'm on Mac OsX 13.4, Intel.
I don't know what to do with this. I'm more on the consumer side of computing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.