Coder Social home page Coder Social logo

csound.github.io'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.github.io's People

Contributors

anton-k avatar aure avatar berntisak avatar daveseidel avatar elevien avatar emma-sg avatar fggp avatar forrcaho avatar fsateler avatar giovannibedetti avatar gogins avatar hlolli avatar iainmccurdy avatar iver56 avatar joachimheintz avatar joshkopecek avatar jpffitch avatar ketchupok avatar kunstmusik avatar lufevida avatar luisjure avatar mantaraya36 avatar paulbatchelor avatar rorywalsh avatar serkansevilgen avatar suhascv avatar tgrey1 avatar tqmbanados avatar vlazzarini avatar zabiem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

csound.github.io's Issues

Get started: add sound file of output

There were ;[TODO] add sound file of output comments in the Rory's code examples. I removed them from the HTML and made this issue to not forget about them.

32bit limitation in bitwise logic opcodes, except | (or)

I ran into oddities while using bitwise logic with huge numbers. They are not working as expected on 64bit Csound.

You will find a boiled down version of my analysis in the attached csd (renamed to *.txt due to file type limits).
bitwise.txt

Tested with Csound 6.17 in Ubuntu and Win10.

Cheers, Jana

Add news for VClick

Email posted to csound list today (2017-06-27):

Hi,

I am pleased and proud to announce that the first post-beta release of my wireless visual clicktrack system vClick (previusly called eClick) is out!

Now the player's app vClick client available for Android via Google Play:
https://play.google.com/store/apps/details?id=org.vclick.client

and for iOs in App Store:
https://itunes.apple.com/us/app/vclick-client/id1247820434?mt=8

About: http://tarmoj.github.io/vclick/pages/about.html
Downloads: http://tarmoj.github.io/vclick/pages/download.html
Getting started: http://tarmoj.github.io/vclick/pages/getting-started.html
Demo: https://www.youtube.com/watch?v=-w_sGl_7SuQ&feature=youtu.be

This version include so called multi-channel support - it is possible o send individual messages to players, including different meters, subdivisions, notifications etc. It may help to play complex polyrhythms or even different tempos can be encoded to the score (in relation to basic tempo).

vClick is built using Qt SDK and Csound library in vClick server.

If you find it somehow useful, give a go!

Best!
tarmo

GENpadsynth docs are wrong (missing arguments)

The padsynth doc page for the reference manual is wrong.
doc page

There are two missing parameters according to the source code.

   p8  harmonicStretchScale -- ratio of stretch of thre overtoes.

   **** missing args *****

    p9      Number specifying the shape of the bandwidth profile:

             1  Gaussian
             2  Square
             3  Exponential

    p10     Profile function parameter.

  ********************************

   p11-pN  The amplitudes of the partials (may be 0).

Also there is a broken link to the original paper at the end of the docs.
It should lead to the other site but it redirects to the csound's site.

Write a website maintenance guide

At some point in a hopefully near future I'd need to write up a website maintenance, as I did some internal logic there, which needs to be explained (like yaml configuration, etc.).

Reorganize download section

Hi all!

I'd like to put down some ideas based on what we've discussed at the round table. The key topic of the discussion was reorganizing the web site to make it more accessible to newbies. One of the points made in the speech was that often users think that CsoundQt is Csound… But this may be just a consequence of the problem and not the problem itself. The thing is that we have several type of users and we ship one package for everyone. Maybe you guys can better categorize users as you have Csound teaching experience, but I'd like to speculate on this topic too. So I tried to categorize the users by answering the following questions:

  1. What do users do? Who are the users?
  2. What are the level of the user?
  3. Why hypothetically have they choose Csound?
  4. What is their workflow?
  5. What features are important for them?
  6. What software package could be suitable for their workflow?
  • DSP coders / scientists
    1. Design audio processing algorithms, sound-related research.
    2. These users are (probably) have some theoretical knowledge of the sound and have concrete tasks or clear goals.
    3. You can do low-level per-sample calculation in Csound, OS-specific audio i/o abstractions, ready-made primitives for the DSP stuff development (for example, there are waveguide opcodes that could be used in reverb design).
    4. Probably a lot of coefficient tuning, a lot of orchestra reloading, a lot of data plotting, etc…
    5. Solid visualization tools (frequency/phase response, oscilloscope, etc.), ability to work with data and analyze it.
    6. CsoundQt, icsound.
  • Musicians / sound designers
    1. Explore sonic spaces, make new sounds
    2. The level of the users can vary highly—from complete newbie to DSP-guru. Most of such activities doesn't have a clear goal or concrete tasks.
    3. Csound has opcodes for (almost) every sound synthesis/processing method, and hence it's sonic capabilities are unlimited. Csound has very simple and readable syntax (comparing, for example, to SuperCollider), relatively easy to get into.
    4. Most of sound or music enthusiasts and professionals probably developed their own work habits, set of tools, etc. So Csound should be embedded to their work process. Most of these people are working in DAWs, so they're forced to go back and forth between softwares.
    5. Integration with their tools, GUI with knobs and switches, ability to make things quickly, a bunch of ready-made stuff available for experiments.
    6. Csound as VST — together with @rorywalsh we've made a prototype of Csound editor in Cabbage, which allows to edit .csd right in VST. It worked, but they were bugs. csound~ and csoundapi~ are also fall in this category.
  • Interactive stuff makers

OK, we can continue to add another use cases, but now it's too late and my brain declined to provide more.

What I think:

  • We can create several Csound distributions (no more than 3 or it'd be confusing), and provide an explanation on what audience it's attended to. At least Sound Design and Scientific packages are sounds good.
  • It may be worth it to develop existing tools with target audience in mind and not do one-for-everything tools.

Audio rate `expsegr` opcode is affected by control rate.

MINIMUM_BUG_EXAMPLE.csd.zip

When using the audio rate expsegr opcode, (specifically the version of expseg with the release segment), the results are impacted by the control rate.

Attached is a minimal example in which I have one instrument using expsegr, and a different version of the same instrument using the non release version expseg commented out so they can be quickly switched between for testing. With the first instrument, ksmps up to around 96 produce audio, but the audio varies with the ksmps value. For ksmps > 96, there is silence (I think the first trigger has infinite amplitude and I guess the rest are silenced). The second version is unaffected by the value of ksmps.

I believe linesegr works as expected.

Please add ModulysCS to related projects

Hello,

ModulysCS is build around ModulysVst which is a giant step-sequencer/phrase generator in Vst-plugin format.
ModulysCS is a portable app for Windows (15MB zip-file) and includes a Csound CSD-editor.

You can create your own presets and instruments.
It uses Csound 6.15.0 api for communication and sound generation.

It's totally free without restrictions.

For more info
www.raxntrax.com
www.raxntrax.com/modulys/modulyscs

Thanks in advance!

Add a prominent Download button and a new Downloads page

A prominent Download button should be added to the site template to make it easy to find where to download Csound. That should link to a page that has links separated into groups (Desktop, iOS, Android, Web, Embedded, etc.), then an entry there per-platform. The platform links should go straight to the download for that platform.

Fill out contribute.md page

I have added a skeleton contribute.md page with headings. We need to fill out the sections with information.

Projects using Csound

Currently, the “projects” section on the web site looks lonely and leaves impression that there's not much things what people do with Csound, which is most certainly not true. Thus, we need to fill this section up with the projects we know about. I propose to add add ~20–30 projects ourselves (I can definitely contribute much to that) and after that to write an instruction for the fellow visitors explaining how to add their projects to the web site. This way we can fill the section in a matter of a week or two.

To help us with this I'd like to ask the community to list the projects they know about in the comments to this issue, and I'll be adding them to the website when I have some spare time. It'll be awesome if, besides project links, one would post some additional info: a name, a description and an image.

You can also add a project yourself by submitting a pull request. All you need to do is to create a .md file in the _post/showcase directory following the example: https://raw.githubusercontent.com/csound/csound.github.io/master/_posts/showcase/01-03-2016-Cabbage.md

So let's make this section nice and cool!

Getting Started examples need "0dbfs = 1"

The "full examples" on https://csound.com/get-started.html will produce silence if the reader doesn't include the at least the header line:
0dbfs = 1
This can be frustrating for someone who is just trying to 'get started'. If they just used the example they would only get silence and probably have no idea why.
I recommend somewhere after describing the header mentioning that it needs to be included in any examples on this page, and then a reminder for the first "full example" , perhaps just including the header in that example.

In other words, the first full example would become:

<CsoundSynthesizer>
<CsInstruments>
sr = 44100
nchnls = 2
0dbfs = 1

instr 1
aOut vco2 1, p4
out aOut
endin

</CsInstruments>
<CsScore>
i1 0 1 100
i1 1 1 200
i1 2 1 300
</CsScore>
</CsoundSynthesizer>

Installation instructions

Currently, the “Download” page has no description of what are differences between different installation options, how to install, etc.

Manual: pchbend

In the manual entry of

ibend pchbend [imin] [, imax]

the arguments are explained as:

imin, imax (optional) -- set minimum and maximum limits on values obtained

I don't think it really works like this. Rather the first argument is a midpoint and the second a width. So the range spanned by the pitch bender is not imin...imax but rather imin-imax...imin+imax. I suggest to use different dummy names in the manual.

New CSound front end, CSound Generator.

I have written a program to front-end CSound and used it to compose microtonal music. I am releasing the code as open source on github: https://github.com/jjsansing/csnd_generator. This includes an application to generate all possible scales within a tuning for scales of a given size. For example, all the 7 note scales in a 15 EDO tuning. When the scales are generated, they can be played using the CSound front end so you can compare them. I have created demos for this at https://www.youtube.com/watch?v=ZDQJxi2O7Ds&list=PLEQ2UEeEQ_VutimRr1IY1QPeZpb7ruhSP.

I would like to add this to the CSound site, but felt I should contact someone before updating the site. If this is acceptable, I can handle the update myself.

If you're curious about the compositions, they can be found at https://soundcloud.com/jim-sansing/sets.

Fix mobile layout on main page

The "Get started" and "Download" elements on the main page are overlapping on the mobile layout (tested on iPhone 5 in Chrome and Safari). They should probably scale automatically somehow.

Bitwise logical operators

Bitwise logical operators (&, |...) would be really useful both in score and orchestra.

Hexadecimal numbers inherently determine binary strings which can be used as rhythms.

Grammar

On the website homepage itself. "Csound has traditionally being used in a..." Should be 'been'.

Cheers!

Getting Started example inaccurately described

Before the final code listing for "Your First Synthesizer," it reads:

"A second, slightly out of tune vco2 has been added to provide a little warmth to the overall sound."

This is incorrect; the example only contains a single vco.

I think it would be useful to add a second vco to the example, but I'm a bit too new to csound to do it myself. ;)

Restructure create page

The create page needs some restructuring to be more user friendly. The sidebar solution for the contents is not a very good solution IMHO, but should rather be presented in the first paragraph. Though you can use the sidebar to jump down, once you reach the paragraph you want there is no quick of getting back up except manually scrolling.

Perhaps individual pages for each application would be better?

Make ways of using csound more visible

The web site should promote ways of using csound including:

  • desktop applications (include csound~ and csoundapi~)
  • mobile applications
  • embedded devices
  • web applications

This might be good to mention on the main page, as well as have a Showcase page that would direct people to examples of projects using Csound in particular ways.

Add a Contribute Link

Add a Contribute link and page that explains ways users and developers can contribute, as well as pointers on how to do so. For example, things we may want to cover are "Submitting a bug", "Submitting a feature request", "Correcting a manual entry", "contribute code", etc. We can then point to using the issue tracker with some guidance on what to do, or ask for pull-requests and how to do that, etc.

Add info on pull requests

Some information about how to contribute to the csound repo using pull requests ("best practices guide or anything to lay out expectations for PRs") should be outlined under Core Development on the Contribute page. Possibly with link to more comprehensive info on pull requests in general.

Add Bol Processor to related projects

Hello,

I suggest that you add Bol Processor (https://bolprocessor.org/) to the list of Csound-related projects (https://csound.com/projects.html).

Bol Processor is (probably with Csound) the oldest program for music composition which has been around for almost 40 years… We are still sharing the initial Apple II version as a vintage souvenir… We are in the process of implementing a multiplatform version running with both 32 and 64-bit processors — and looking for talented developers to join the venture!

Bol Processor BP2 won the Bourges 1997 international award (ex aequo with Cecilia) in the category of computer-aided composition and realization software. This was mainly due to its efficient interfacing with Csound.

In-consistent sidebar

Learn and Create has Contents on its sidebar, while Community and Download has Links. The sidebar should be consistent across pages and links to valuable resources should be put in relevant pages under Learn, Create or Community instead (or worst case make a new "Links" page)

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.