25 ms·
Csound: A sound and music computing system
- benpm 7y agocsound is trash edit: whoever flagged me is being paid off by csound
- h-jones 7y agoI actually really enjoy using it, why do you not like it? It has its quirks but for me they almost make me enjoy the creative process more.
- bensonalec 7y agoWhile conceptually sound, CSound offers an unintuitive interface and program flow in my opinion. Also the lack of ability to do more "human-readable" actions like use music notes out of the box is a point of frustration (although it is possible with some extra steps.)
- kristopolous 7y agoHave you tried other musical programming languages like supercollider and puredata? I find them to be quite a bit crazier. Csound is ridiculously straight forward in comparison. Absurdly more comprehensible to me
- benpm 7y agosupercollider is way better than csound
- kristopolous 7y agoI honestly find it way way easier to do FFTW manually in C and then convert the output with ffmpeg then use supercollider, like by a significant number of orders of magnitude. I've given sc 5 years, usually I'll try to use it, give it a few days of effort to do what I want, then give up, rewrite what I want in C, and be done with it in an hour Some people love it. More power to them. I wish I was one of them
- basementcat 7y agoThis has got to be one of the sickest burns I've ever seen.
- kristopolous 7y agoI'm not trying to burn anyone. The people who make the project really care about it and have put a lot of effort in it. I personally am just too stupid to figure it out. I think like Haskell and R it's designed for a different profession so to people like me who are programmers first I am scratching my head the whole time. I can do some thing in it, yeah eventually, usually... The documentation appears complete and I'm sure the compilers are well written, an enormous amount of effort went into it, it's just a problem with me here.
- noobly 7y agoDo you have any recommendations for learning sound synthesis and such (for the purpose of music production) for those who are, as you say, programmers first? Most the materials I’ve found teach using Csound, PD, SC etc (understandably), and that’s always a bit off-putting to me and appears as another obstacle / headache, so the projects get shelfed more quickly. I’ve begun reading Miller Puckett’s book Theory and Technique of Electronic Music and quite like that, though, despite strongly disliking the PD interface.
- kristopolous 7y agono. I don't know what you're trying to do. You can make midi interfaces in Python and plugins in LADSPA and other things with Jack ... lots of programs are fairly extensible these days. so for instance, instead of a physical instrument connected to a usb port, your software is feeding the midi input into some other software, say something simple like seq42 (https://github.com/Stazed/seq42 https://github.com/Stazed/seq42) Synthesizers have some interesting things too. https://zynaddsubfx.sourceforge.io/ https://zynaddsubfx.sourceforge.io/ uses an XML format for its synthesis definition. It also has "learnable midi" as in parts of the interface can be instrumented from a midi controller - so you turn a knob in physical space and it turns in the software accordingly. So let's go back to the previous part, the part about software defined midi. You can now emit the mutation of the sound and the sound itself into software like that. Here's a 2005 linux journal article with a screen shot (https://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/083/8304/8304f5.resized.jpg https://www.linuxjournal.com/files/linuxjournal.com/linuxjou...) essentially the stack I just said. https://www.linuxjournal.com/article/8304 https://www.linuxjournal.com/article/8304 ... "2005" you say? yeah, old pianos also still work. The linux space is littered with generic audio tools that don't really work on their own and must be pasted together with other tools in order to get anywhere, much like in the shell. I did a bit of editing on the linux audio wiki about 3 years ago, it's probably the best place to look: https://wiki.linuxaudio.org/wiki/introduction https://wiki.linuxaudio.org/wiki/introduction It's still just a bunch of hacks on top of hacks. Things break all over the place and latency is a bitch ... I dunno, there's a lot out there.
- klyrs 7y agoYou're getting downvoted and flagged became you're violating site guidelines, and it kinda looks like you've made two throwaway accounts to do so. You like supercollider. That's fine but it doesn't make csound "trash." You want a gui. That's fine, but csound users like myself and others here prefer a solid scripting environment.
- kristopolous 7y agoThanks. As a rule on HN, everyone should act like the author of what they're thinking of trashing is reading through the comments and will take your comments about their hard work in open source to heart, this happens more than you think. If you wouldn't say it to the author, don't say it here, because it's often the same thing
- dang 7y agoThat's particularly true because HN threads usually have high search ranking. Anyone personally connected to a theme can easily get directed to an HN thread on that topic. That includes authors and project creators. It also includes family members of people being discussed. There was a horrible case yesterday where someone died and the thread filled up with generic dross. People weren't being malicious. It's just what happens when internet commenters aren't familiar with the specifics of a topic (more about that at https://news.ycombinator.com/item?id=22027453 https://news.ycombinator.com/item?id=22027453). But we ended up getting an anguished email from someone close to the person who had just died. This is a systemic problem and I wish we knew what to do about it.
- TheAsprngHacker 7y agoHi, maybe this is offtopic, but I felt this way when anime studio KyoAni was arsoned and many of its employees died in a horrific way, and the news got to the front page of HN: https://news.ycombinator.com/item?id=20468395 https://news.ycombinator.com/item?id=20468395 Even though the people there weren't necessarily violating the site guidelines per se, the commentary that some people were making (e.g. discussion about IP stemming from the murderer's unsubstantiated accusation of plagiarism, or discussion about Japan's culture) felt insensitive and hurt me as someone who was greatly impacted by KyoAni's work. I didn't understand how to express my feelings about this, but the way you describe it ("generic dross") explains it perfectly.
- bensonalec 7y agoI suppose I should say the language itself is hindered by the horrible GUI application it runs in, the interface is ancient and dated, and the application crashed constantly on Mac. I took a class that that required the use of CSound, so I haven't explored the various options
- kristopolous 7y agoJust do it with makefiles, the workflow is pretty similar to C
- benpm 7y agothe gui is pretty useful though because it allow you to look up help for statements in your code. this is necessary to do anything because everything is completely unintuitive and nonsensical, so you constantly need to be racing through the docs to make anything interesting
- kristopolous 7y agoThis is 20 years ago, but I always wrote scripts in perl to generate the orc and sco and then generate the audio. I remember it being petty fun. Maybe it's gotten more complex since then. Lots of things were more fun twenty years ago, or maybe it's just declining executive function. I dunno, have things gotten less fun?
- dang 7y agoHey, it's clear that you've got a lot of experience with this and related tools. But discussion on HN requires comments to be more substantive than this comment (not to mention "csound is trash", which was correctly flagged upthread). Since you know more than others, please make sure that each of your posts shares some of what you know, so that the rest of us can learn. If a comment only contains putdowns and no solid information, please edit it to take out the putdowns and add solid information; or delete it; or simply don't post it to begin with. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- TheAsprngHacker 7y agoCare to explain why, for someone who hasn't used this tool?
- benpm 7y agothe syntax for the language is horrible and very difficult to understand, the gui is hard to use and unstable, its just generally worse than other sound programming langs like supercollider
- DonHopkins 7y agoI'm being paid off by CSound, but I sure didn't flag you. It must have been one of the many other people that CSound is paying off. CSound sends me thousands of dollars per month to work from home, safely in isolation! You too can make money fast, by promoting CSound on blogs and web sites across the world wide web, and flagging people who call it trash! Simply email me your social security number, bank account information, and mother's maiden name, and you too can make money by promoting CSound online! Operators are standing by. Order before midnight tonight, or it will be tomorrow. Thanks, CSound! ;)
- rorywalsh 7y agoCsound is a programming language. Whatever GUI you are referring too is a third party application. There is no doubt the syntax takes a little getting used it, after all it is a direct descendant of the Music N languages. But in recent years the language has seen many improvements and updates.
- rkagerer 7y agoWhat does it do? These hint at some neat possibilities but I still don't get it: a sound and music computing system a tool for composing electro-acoustic pieces real-time
- bensonalec 7y agoBasically it's for creating music programmatically, conceptually it's solid although it does lack some major features (you have to convert frequencies to notes, and as far as I'm aware there's no inherent option to use the note itself).
- AndrewUnmuted 7y agoThis is one of the reasons why many of us in this field have moved on to SuperCollider[0] since the late 90s. [0] https://supercollider.github.io/ https://supercollider.github.io/
- kroger 7y agoYou can use different ways to enter pitch [0]. A common way is to use the "octave.pitch" format, such as 08.04, where 08 is the central octave (if I remember correctly) and 04 is the note E. It's common to use a score generator such as PythonScore [1, 2], and some people (myself included) like to use a regular programming language to generate the scores. I've used Common Lisp, Tcl, and Python in the past. Csound has a few frontends [3] that people may like. AFAIK, Csound can read notes from a MIDI keyboard as well. [0] http://www.csounds.com/manual/html/PitchTop.html http://www.csounds.com/manual/html/PitchTop.html [1] http://jacobjoaquin.github.io/csd/pysco.html http://jacobjoaquin.github.io/csd/pysco.html [2] http://write.flossmanuals.net/csound/methods-of-writing-csound-scores/ http://write.flossmanuals.net/csound/methods-of-writing-csou... [3] https://csound.com/frontends.html https://csound.com/frontends.html EDIT: remove some repetition
- phlakaton 7y agoAt its base, it is a system that takes a programmatic score, as well as programmatic descriptions of synthesized instruments or processors, and produces audio output. Other tools in this category include CLM, Supercollider, and STK, though Csound has a history that predates all of them. What makes it different from popular music tools is that you are in control of the instruments' guts, and can create custom instruments, so you can apply virtually any form of synthesis, any type of audio transformation or generation, you can imagine. This makes it ideal for experimenting with synthesis and algorithmic composition. "Electro-acoustic" is an academic term that encompasses various forms of experimental music and research involving artificial sound sources, including electronic music, electric instruments, tape loops and manipulation, computer-generated music, and so forth. Roughly: "any avant-garde music that requires loudspeakers to perform." You can of course use Csound for more popular music applications as well, but you would typically find traditional DAW tools to be more convenient in those cases.
- matt2000 7y agoI don't know much about this, but sure did like seeing this in the description: "One of the main principles in Csound development is to guarantee backwards compatibility. You can still render a Csound source file from 1986 on the latest Csound release, and you should be able to render a file written today with the latest Csound in 2036." I wish more "modern" languages and frameworks put in the effort on this point as well.
- kitotik 7y agoI think most have moved on to supercollider or puredata. A proprietary but much more approachable and functional offshoot is Max/MSP.
- kristopolous 7y agoHave you used it? I usually don't use proprietary software but I've been thinking of giving it a go. Supposedly bitwig has a language as well but I haven't used it either
- Q6T46nT668w6i3m 7y agoI’ve used Max for more than 20 years. It’s awesome. If you use Ableton, Max is far simpler to use than the alternatives.
- DonHopkins 7y agoMiller Puckette originally created Max at IRCAM (Institut de Recherche et Coordination Acoustique/Musique) in 1985, which is now marketed by Cycling '74. Then he later developed the open source Pure Data (PD) in the 90's, which also included real time signal processing features (flowing streams of high frequency audio over wires whose samples are at a much higher rate than the frame rate of the visual program's control signals). Max/MSP and PS are both visual data flow programming languages, where data flows along wires between icons, but some data (like audio stream samples) flow much faster than others (like messages, logic, and control signals). Cycling '74 Max later adapted Puckette's work on Pure Data and called it "Max/MSP", which stands for both "Max Signal Processing" and his initial "Miller Smith Puckette". https://en.wikipedia.org/wiki/Miller_Puckette https://en.wikipedia.org/wiki/Miller_Puckette https://en.wikipedia.org/wiki/IRCAM https://en.wikipedia.org/wiki/IRCAM https://en.wikipedia.org/wiki/Pure_Data https://en.wikipedia.org/wiki/Pure_Data https://en.wikipedia.org/wiki/Max_(software) https://en.wikipedia.org/wiki/Max_(software) >Max is named after composer Max Mathews, and can be considered a descendant of his MUSIC language, though its graphical nature disguises that fact. Like most MUSIC-N languages, Max distinguishes between two levels of time: that of an event scheduler, and that of the DSP (this corresponds to the distinction between k-rate and a-rate processes in Csound, and control rate vs. audio rate in SuperCollider).
- ofrzeta 7y agoThere's also ChucK from Princeton which I find more intuitive than Csound or alternatives such as Supercollider. Much smaller community that Supercollider, though, I guess. https://chuck.cs.princeton.edu/ https://chuck.cs.princeton.edu/
- zebproj 7y agoAlso a fraction of the DSP capabilities, even with the available third-party plugins (chugins).
- musikele 7y agoI've used CSound for a university project some years ago, to manipulate a bunch of files to play together - adjust volumes, modify speed of playing without modifying tonality, etc. I then wrote a GUI to manage CSound. After 8 years, here's what I remember: - It was very complicated to wrap a C library in Java, at least for a new graduate like me. - There was no learning material for the kind of things I needed to do (manipulating wav files). learing CSound at the time was a mess - no blog posts in 2010. - If I read the CSound source file I wrote in 2010 I'm sure I would not understand a single line. Some years later, when Coursera was just starting to offer free courses to the world, I encountered another musical programming language called ChucK (https://chuck.cs.princeton.edu/ https://chuck.cs.princeton.edu/). The course was very well done and ChucK too, was so simple that I almost decided to rewrite the whole project with it. I wrote some very nice pieces of music while studying ChucK. Good luck to all the musicians out there!
- DonHopkins 7y agoI don't know what the state of CSound's SWIG support was when you integrated it with Java by hand, but CSound now uses SWIG to generate Python and Java wrappers. (I know what you mean: writing wrappers for something as complex as CSound for any language is an enormous tedious error-prone pain in the wazoo, which is why it's so nice to have a tool like SWIG that does it automatically for you.) http://write.flossmanuals.net/csound/a-the-csound-api/ http://write.flossmanuals.net/csound/a-the-csound-api/ The cool thing about SWIG (Scripting Wrapper and Interface Generator) is that it supports multiple scripting languages (and other kinds of languages, since it's debatable if Java is a "scripting language"). It understands most of C++, so it can automatically read in header files and generate wrappers from them, but you can also tailor and customize the interfaces and how it marshals different data types back and forth, to create more efficient, convenient wrappers, too. http://www.swig.org/ http://www.swig.org/ SWIG is the brainchild of David Beazley, Python hacker extraordinaire. His talks are amazing! https://www.dabeaz.com/talks.html https://www.dabeaz.com/talks.html https://en.wikipedia.org/wiki/David_M._Beazley https://en.wikipedia.org/wiki/David_M._Beazley >David Beazley is an American software engineer. He has made significant contributions to the Python developer community, which includes writing the definitive Python reference text Python Essential Reference, the SWIG software tool for creating language agnostic C and C++ extensions, and the PLY parsing tool. He has served on the program committees for PyCon and the O'Reilly Open Source Convention, and was elected a fellow of the Python Software Foundation in 2002.
- DonHopkins 7y agoHere are some notes I wrote about some visual programming languages and real time performance tools for music and video that I wrote to the LEV mailing list in 2000 (and some additional notes and email I saved over the years). https://www.donhopkins.com/home/archive/visual-programming/bounce-notes.txt https://www.donhopkins.com/home/archive/visual-programming/b... That link also includes some interesting discussion with Jaron Lanier about visual programming language design. Image/ine was a software instrument for realtime video manipulation and MIDI processing from STEIM (Studio for Electro-Instrumental Music) in Amsterdam, by Steina Vasulka and Tom Demeyer (1996-2001). It ran on a Mac, and you could write plug-ins for it. https://steim.org/ https://steim.org/ https://en.wikipedia.org/wiki/STEIM https://en.wikipedia.org/wiki/STEIM https://v2.nl/archive/works/image-ine https://v2.nl/archive/works/image-ine Hookup is a real time visual programming language for controlling MIDI and playing music and rendering graphics, developed by David Levitt (who shared an office with Miller Puckette at MIT), which also incorporated the Macromedia Director MMP player plug-in (so it could read in Director files and play their content under visual program control). http://www.sdela.dds.nl/sfd/isadora.html http://www.sdela.dds.nl/sfd/isadora.html >Mark Coniglio: Here's a bit of history. In 1986 my soon-to-be mentor and Interactor collaborator Mort Subotnick had just come from a residency at MIT where he was using a program called Hookup created by a student there named David Levitt. Hookup was the first program I know of that used the "patch-cord" metaphor, i.e., modules that manipulate data are linked by virtual wires, the connection of which is determined by the user. For those in the world of early analog, patch-cord programmed synthesizers, this was a familiar interface. Mort was using David's program to do tempo following of MIDI instruments -- this allowed him to lock hardware MIDI sequences to the tempo of the live performers. I was a composition student at CalArts at the time, and word had gotten around that I was a good programmer. So Mort contacted me to see if I could hardcode some of the ideas he had implemented in Hookup on a Mac, so that he could use them in his next performance. That program (used in Mort's 1987 multimedia work "Hungers") would eventually become Interactor. Mort designed the functionality of the early versions, but I became more influential in the design as time went on. [...] >Mark: Yes, that's true and importantly a kind of creative intuition was creeping back in through the development of these new visual interface possibilities for software. Part of the thing I reacted to in Hookup was the way you could easily drop modules into the program and try things; a lot like you could do with the patch-cord synthesizers. I may not have realized it explicitly then, but this ability to program improvisationally allowed for that kind of artful playfulness that is so important. So I set out to make a similar user interface for Interactor. The creation of Isadora was a natural outgrowth of Interactor. In 1996 Troika Ranch had a two-week residency at STEIM, where I first saw Tom Demeyer's real-time video processing program Image/ine. I first started using Image/ine in concert with Interactor, because Image/ine didn't allow the kind of complicated interactive decision making that I was used to having in Interactor. So, Interactor would process the MIDI data from my interactive sensors, and then tell Image/ine what to do. By 1998 I was using Image/ine in a major way in my performances with Troika Ranch. [...] >Mark: Isadora and Max both inherit the modules linked by the patch-cord metaphor from Hookup. But unlike Max, each Isadora module shows the parameter names and current values for all of its inputs and outputs, and many modules give real-time graphic feedback about their operation. This is important from the perspective of helping new users understand what's going on right away. But perhaps the biggest difference is that Max is a very powerful, open-ended programming language in which you could solve any number of problems. Isadora isn't that. It is a lot like Interactor in that each module is essentially a macro that accomplishes some specific function. This approach helps people who are just beginning to do this kind of work, as it means that useful functionality is already embodied for you and it's very easy to start doing things and getting interesting results quickly (like with Image/ine). Max allows the most flexibility, but may be somewhat more difficult to program because more things have to be built up from scratch. Isadora offers somewhat less flexibility, but is still open-ended enough for the user to imprint his or her aesthetic on the result. While working at VPL, David also integrated the MMP library into Body Electric (below) to make Bounce (also below). The MMP player plug-in is what eventually became Macromedia Shockwave once it was plugged into the web browser (which wasn't nearly as fun as plugging it into a full fledged real time interactive visual programming language). Body Electric is a real time visual programming language for VR and music and hardware control, developed at VPL by Chuck Blanchard, which Jaron Lanier and others used to create virtual reality simulations and virtual interactive musical instruments. http://www.jaronlanier.com/vpl.html http://www.jaronlanier.com/vpl.html https://wiki.c2.com/?JaronLanier https://wiki.c2.com/?JaronLanier https://www.vrs.org.uk/virtual-reality-profiles/vpl-research.html https://www.vrs.org.uk/virtual-reality-profiles/vpl-research... https://web.archive.org/web/20050228021115/http://www.well.com/user/jaron/vr.html https://web.archive.org/web/20050228021115/http://www.well.c... https://web.archive.org/web/20040414174418/http://www.well.com/user/jaron/instruments.html https://web.archive.org/web/20040414174418/http://www.well.c... https://web.archive.org/web/20050211182929/http://www.well.com/user/jaron/knittalk.html https://web.archive.org/web/20050211182929/http://www.well.c... Body Electric supported all kinds of interesting input and output devices, including MIDI, sending and receiving UDP packets over Ethernet, loading Swivel3D 3D skeleton files and animating them, sending their state over the network to a pair of SGI workstations for rendering with the Isaac rendering engine to the VPL "EyePhones" VR headset (one SGI workstation per eye, with a Mac to run the simulation), VR input devices like VPL's DataGlove and Body Suit, 3D input devices like the Ascension Flock of Birds, Polhemus, and Spaceball, 3D audio output devices like the Convolvotron, and lots of other cool stuff. https://est-kl.com/manufacturer/ascension/flock-of-birds.html https://est-kl.com/manufacturer/ascension/flock-of-birds.htm... https://polhemus.com/ https://polhemus.com/ http://www-cdr.stanford.edu/DesignSpace/sponsors/Convolvotron.html http://www-cdr.stanford.edu/DesignSpace/sponsors/Convolvotro... https://www.researchgate.net/publication/253921765_The_Convolvotron_Real-time_demonstration_of_reverberant_virtual_acoustic_environments https://www.researchgate.net/publication/253921765_The_Convo... Bounce is a derivative of Body Electric, that David Levitt integrated with the MMP player, and that I helped him develop, and used for some fun projects. Extremely weird and esoteric, but still one of the must productive, delightful visual programming languages I've used! https://medium.com/@donhopkins/bounce-stuff-8310551a96e3 https://medium.com/@donhopkins/bounce-stuff-8310551a96e3 https://wiki.c2.com/?BounceLanguage https://wiki.c2.com/?BounceLanguage
- flats 7y agoLong-time user of Csound, Max, and Pd (& have spent a little time with ChucK & Supercollider). Max & Pd are fantastic for incorporating sensors & other physical interfaces, real-time interactivity, routing signals, creating visualizations, & all that. Supercollider is fantastic for generative music & using control flow compositionally. Csound, on the other hand, is really, really great for creating beautiful & nuanced electronic compositions. The sound quality is unrivaled (emphasis on accuracy over interactivity), the interface is great (plain text, which, as a programmer, I prefer), and GEN routines plus the myriad opcodes allow you to do some heavy, intricate aural spelunking. As a bonus (& as mentioned by others), it’s highly performant & fairly easy to integrate with other languages & environments (including Max & Pd!). The syntax is a bit strange, but once you get over that, Csound is an amazing piece of software.
- dominotw 7y ago> beautiful & nuanced electronic compositions. wondering if you have any favorites that you can recommend.
- andrewg 7y agoThis one’s my favorite: https://m.youtube.com/watch?v=TecDlpGAhq0 https://m.youtube.com/watch?v=TecDlpGAhq0 Really beautiful album, especially the 5.1 surround version.
- lukasb 7y agoI clicked the link and was like "ha, what, no way BT uses CSound" but I was wrong! http://simoncpage.co.uk/blog/2008/10/bt-this-binary-universe/ http://simoncpage.co.uk/blog/2008/10/bt-this-binary-universe...
- TheRealPomax 7y agoThere's no real reason to consider csound any different from any other synthesiser in this respect: someone who understands how to program a synth just needs to know "which knobs and switches" there are - whether they're physical hardware, a virtual instrument's GUI, or xml statements doesn't matter all that much... the only thing that matters is being able to set and control VFOs/LFOs, ADSR, resonance, unison, etc. =) And dear lord do some people understand synths.
- hnhg 7y agoHow does something like sonic-pi or tidal cycles compare with this? I wanted to try those out since they look fun and accessible. http://sonic-pi.net/ http://sonic-pi.net/ https://tidalcycles.org/ https://tidalcycles.org/
- Optimal_Persona 7y agoSonic Pi (IMO) is very quick to get started with because it's batteries included - you have everything needed in a single installer. Within the UI are tutorials, samples, synths, effects, a language reference, metering, 10 code buffers, and an OSC server built in - so once you config audio/MIDI devices you should be good to go. Sonic Pi is based on a subset of Ruby (though it's not clear which Ruby version, and what's left out) and Sam Aaron (dev) has indicated he's considering moving to another language. Though I haven't played around with Raspberry Pi, Sonic Pi integration is another benefit if you're into hardware. I remember trying to install Tidal Cycles a few years back and having some difficulty - IIRC it's a library that requires other components/config. Same for Overtone [1] (Clojure frontend to SuperCollider), it took a bit of time to configure Leinengen at first. Cabbage [2] interface to CSound would probably be closest to Sonic Pi, rather than straight CSound iteself. Also worth investigating is Pyo [3] - a Python interface to DSP code written in C. So many interesting (and free) choices - it really just comes down to your language preference. I make a lot of music in DAWs like Ableton Live & Apple Logic, but I have some fairly original, very specific ideas around exploring pitch, rhythm & harmony that a text-based language is better suited for. [1] https://github.com/overtone/overtone https://github.com/overtone/overtone [2] https://cabbageaudio.com/ https://cabbageaudio.com/ [3] http://ajaxsoundstudio.com/software/pyo/ http://ajaxsoundstudio.com/software/pyo/
- hnhg 7y agoVery helpful, thanks.
- DonHopkins 7y agoThe One Laptop Per Child (OLPC) project adopted CSound for use in its interactive musical activities via Python. https://en.wikipedia.org/wiki/Csound#One_Laptop_per_Child_(OLPC) https://en.wikipedia.org/wiki/Csound#One_Laptop_per_Child_(O... >Csound5 was chosen to be the audio/music development system for the OLPC project on the XO-1 Laptop platform. http://wiki.laptop.org/go/Csound http://wiki.laptop.org/go/Csound Csound is the music and audio signal processing language originally developed by MIT's Barry Vercoe and now expanded and maintained by a world-wide community, as Free Software. Csound will provide audio services for the XO computer. Csound is both a programming language and a sound synthesis engine. Csound, as included in the OLPC project, can be used by Activities or directly by children and teachers. It can be accessed in a variety of ways. In the XO platform, two basic ways are provided: Through the Python programming environment: eg. programmed in Activities. Through its 'classic' command-line frontend, directly invoking it from the Terminal activity. Further information about Csound can be found on its official website: http://csounds.com/ http://csounds.com/. The canonical Csound sources and multi-platform binaries are hosted by Sourceforge. Activities Csound Editor - view, edit and perform Csound files http://wiki.laptop.org/go/Csound:Csound_Editor http://wiki.laptop.org/go/Csound:Csound_Editor Audio Loop Remixer - perform audio loops and apply a variety of effects http://wiki.laptop.org/go/Csound:Audio_Loop_Remixer http://wiki.laptop.org/go/Csound:Audio_Loop_Remixer MIDI File Player - performs MIDI files using the donated General MIDI soundfont http://wiki.laptop.org/go/Csound:MIDI_File_Player http://wiki.laptop.org/go/Csound:MIDI_File_Player Instrument Player - a keyboard interface to play a variety of instruments http://wiki.laptop.org/go/Csound:Instrument_Player http://wiki.laptop.org/go/Csound:Instrument_Player TamTam - Tam Tam uses Csound, but you would never know it as its interface is designed to wrap the Csound engine with a child-friendly look and feel. This excellent group of Activities allows kids to make sounds, make music, jam, record and transform their voices in an intuitive way. TamTam Edit allows students to patch together Csound's opcodes (modules) and teaches them all about signals, synthesis, and synthesizers. TamTam Activities demonstrate well how the power of Csound can be harnessed in the XO platform. http://wiki.laptop.org/go/TamTam http://wiki.laptop.org/go/TamTam GregCsoundActivities.zip - A number of Csound Server-based activities developed by Greg for Build 542 including a pretty cool Pitch-Tracker Bouncing Ball Activity and a Pitch Reverse Game – both lot's of fun for kids, but not currently supported by the latest builds and security models. http://csounds.com/GregCsoundActivities.zip http://csounds.com/GregCsoundActivities.zip Pippy - Pippy uses Csound to help teach children the Python programming language and to build XO Activities. http://wiki.laptop.org/go/Pippy http://wiki.laptop.org/go/Pippy Step - A simple 8-note step sequencer that children will use to play music and record their own loops for use in other sample-based activities. Step uses csndsugui. http://www.thumbuki.com/xo/step.activity.zip http://www.thumbuki.com/xo/step.activity.zip Funny Talk - An activity that children can use to record their voices with the built-in microphone, and process them with effects such as reverb, echo, chorus, etc. Funny Talk allows a child to save their manipulated voices as soundfiles so that they can be used in other musical activities. Funny Talk uses csndsugui. http://wiki.laptop.org/go/Csound:Funny_Talk http://wiki.laptop.org/go/Csound:Funny_Talk http://wiki.laptop.org/go/Csound_tutorials http://wiki.laptop.org/go/Csound_tutorials http://wiki.laptop.org/go/Csound_TOOTS http://wiki.laptop.org/go/Csound_TOOTS
- vortico 7y agoI'm looking for a volunteer to add Csound as a script backend to VCV Prototype (https://vcvrack.com/Prototype https://vcvrack.com/Prototype), or any other scripting language of your choice that's not already available. Open an issue if interested. https://github.com/VCVRack/VCV-Prototype#adding-a-script-engine https://github.com/VCVRack/VCV-Prototype#adding-a-script-eng...
- processing 7y agoLove Csound. Does anyone use Csound for Live? It's no longer working since the Ableton 10.1 update and the Developers do not respond to emails. Incredible set of audio tools. https://csoundforlive.com/ https://csoundforlive.com/ Anyone managed to fix in Max/Cabbage for Live 10.1/Max 8.1?
- rorywalsh 7y agoLatest Csound object for Max is here: https://github.com/csound/csound_tilde/releases https://github.com/csound/csound_tilde/releases And I've not had an reports of problems with Cabbage in Live 10. It's what I use myself for testing..
- phronesis 7y agoThis track by BT was written entirely in Csound and is one of my favourite pieces of electronic music: https://www.youtube.com/watch?v=ve8WaGmyhfI https://www.youtube.com/watch?v=ve8WaGmyhfI
- zebproj 7y agoYeah this piece was a huge piece of inspiration for me when I was learning Csound. I actually had a chance to ask BT about this particular piece once and if the rumors were true about it being all done in Csound. The guitar riff you hear halfway through the piece is actually sampled and played via the diskin opcode. Other than that, all Csound. Still a very impressive feat, especially considering the fact that the piece itself was originally mixed in 5.1.
- phronesis 7y agoNice! I'd wondered about that guitar, it sounds impossibly real to be pure Csound. Thanks for the insight. And yes, I had the opportunity to listen to the whole album on a decent 5.1 system at uni a while back and it's pretty spectacular.
- ddingus 7y agoThis piece is amazing! Thank you for linking it. This made in C sound? I have no words.
- DonHopkins 7y agoFrom "Recontextualizing Ambient Music in Csound" by Kim Cascone, on the CSound Community web site: http://csounds.com/ http://csounds.com/ http://csounds.com/cascone/ http://csounds.com/cascone/ "One of the motives for being an artist is to recreate a condition where you're actually out of your depth, where you're uncertain, no longer controlling yourself, yet you're generating something, like surfing as opposed to digging a tunnel. Tunnel-digging activity is necessary, but what artists like, if they still like what they're doing, is the surfing" — Brian Eno (Aurora Musicalis. ArtForum Magazine. 24:10. 1986)
- zebproj 7y agoCsound is a fantastic sound design tool. It was my main composition tool for many years, before I started building my own system. The score/orchestra paradigm is incredibly powerful. It's something I miss quite often in my current system. When I was in music school, I learned how to program by writing programs in Python to generate scores that could then be played by Csound. Scores are so trivial to generate, that you actually don't need to learn that much programming to generating very satisfying algorithmic compositions. I appreciate that the title of this post calls it a "sound and music computing system" rather than a "musical programming language". In truth, Csound is more of a text-based modular synthesis environment than a programming language. As others have said, the orchestra syntax is a bit strange at first, but you do get used to it. Writing Csound code feels more like patching a modular synthesizer rather than writing a computer program. It's basically a DSL for connecting small sound/signal modules (called opcodes) together. Most of the time one thinks about things in terms of signal flow and not computer logic. A common mistake I see new Csounders make is to immediately reach for the conditional statements and loops. They often don't behave the way you expect, so people get frustrated. The Csound dev team has a very strong emphasis on backwards compatibility, to the point where the older opcodes do not get bugfixes in case someone is exploiting the bug in the compositions. The programmer in me groans a little bit, but the composer takes great comfort in the fact that pieces I write now will be playable for many years or even decades (some of the Csound test pieces, like Trapped In Convert by Richard Boulanger or Xanadu by Joeseph Kung, are over 30 years old and still run). I've been told that many works written in MusicN languages (a precursor to Csound) have been ported to run in Csound, which means that the legacy of Csound includes computer music written in the 60s! I wish I knew where to find those, as I quite enjoy computer music history.
- severak_cz 7y ago> Writing Csound code feels more like patching a modular synthesizer rather than writing a computer program. I agree with this point. I am using Csound for creating VST plugins (with Cabbage framework[1]) for which is Csound extremely productive. I can have working prototype (which I can actually play on my keyboard) ready in something like 15 minutes. Once you get over somewhat strange syntax[2] and understand difference between k-time and i-time[3] you can do any DSP processing without actually diving into hard math. Cabbage has nice beginner documentation on Csound[4]. [1]: https://cabbageaudio.com/ https://cabbageaudio.com/ [2]: output operand, paramA, paramB [3]: k-time - on every step of audio processing, i-time - on initialization of instrument/note [4]: https://cabbageaudio.com/docs/file_structure_and_syntax/ https://cabbageaudio.com/docs/file_structure_and_syntax/
- DonHopkins 7y agoHere's an interview with Aaron McLeran, who has done a lot of work with CSound, and collaborated with Brian Eno on the procedural music in Will Wright's "Spore" computer game at Maxis, using Pure Data (PD). Immersive Audio Podcast Episode 7 Aaron McLeran https://podcasts.apple.com/ie/podcast/immersive-audio-podcast-episode-7-aaron-mcleran/id1360242294?i=1000408230767 https://podcasts.apple.com/ie/podcast/immersive-audio-podcas... https://soundcloud.com/user-713907742/immersive-audio-podcast-episode-7-aaron-mcleran https://soundcloud.com/user-713907742/immersive-audio-podcas... >In today’s episode Oliver was joined via Skype by Aaron McLeran, Lead Audio Programmer at Epic Games. Aaron’s first taste of audio programming was writing computer music in CSound while in graduate school at University of Notre Dame (when he was supposed to be doing astrophysics research). Realising his true calling, he left physics to study procedural and interactive computer music, audio synthesis, and audio analysis with Dr. Curtis Roads at the University of Santa Barbara. His first game audio experience was writing procedural music on Spore where he got to collaborate with Brian Eno and Maxis’ audio director Kent Jolly on writing much of the game’s truly procedural music. His next game audio gig was a sound designer on Dead Space 2 where he wrote much of the games interactive audio systems in Lua along with accomplished audio director Don Veca. He made the leap from technical sound designer to audio programmer at Sledgehammer Games where he worked on Call of Duty: Modern Warfare 3 and Call of Duty: Advanced Warfare. His next audio programming gig was at ArenaNet where he got to wrangle with the unpredictability and scale of game audio in the context of an MMO and developed some pretty cool tech around for player-created music and musical interaction. He’s currently working on a new multi-platform audio mixer backend for UE4 and developing new tech and approaches to game audio for VR. >Aaron speaks to Oliver about all things Game Audio and Procedural Audio and his unusual entry into the industry. GDC Vault: Procedural Music in SPORE, with Kent Jolly, Aaron McLeran https://www.gdcvault.com/play/323/Procedural-Music-in https://www.gdcvault.com/play/323/Procedural-Music-in MAKE YOUR OWN KIND OF MUSIC IN 'SPORE' WITH HELP FROM BRIAN ENO (LISTEN TO THIS) http://www.mtv.com/news/2456432/make-your-own-kind-of-music-in-spore-with-help-from-brian-eno-listen-to-this/ http://www.mtv.com/news/2456432/make-your-own-kind-of-music-... THE BEAT GOES ON: DYNAMIC MUSIC IN SPORE: Audio engineers Kent Jolly and Aaron McLeran unveil Spore's procedural music generation. https://www.moredarkthanshark.org/eno_int_gspy-feb08.html https://www.moredarkthanshark.org/eno_int_gspy-feb08.html Will Wright and Brian Eno - Generative Systems https://www.youtube.com/watch?v=UqzVSvqXJYg https://www.youtube.com/watch?v=UqzVSvqXJYg Pure Data https://en.wikipedia.org/wiki/Pure_Data#Projects_using_Pure_Data https://en.wikipedia.org/wiki/Pure_Data#Projects_using_Pure_... >Projects using Pure Data >Pure Data has been used as the basis of a number of projects, as a prototyping language and a sound engine. The table interface called the Reactable and the abandoned iPhone app RjDj both embed Pd as a sound engine. >Pd has been used for prototyping audio for video games by a number of audio designers. For example, EAPd is the internal version of Pd that is used at Electronic Arts (EA). It has also been embedded into EA Spore. >Pd has also been used for networked performance, in the Networked Resources for Collaborative Improvisation (NRCI) Library.
- Lord_Nightmare 7y agoThere was once another sort of 'competitor' to csound called cmusic, I believe the last surviving unmaintained port of it can be found at http://yadegari.org/carl.html http://yadegari.org/carl.html
- fushifushi 7y agoI’ve been learning Csound for about a year now, and I’ve documented my experiences in my blog at https://jasonhallen.com/blog https://jasonhallen.com/blog. My first three blog posts talk about 1) why I chose Csound over Max/MSP, SuperCollider, and ChucK, 2) how mysterious the online presence of Csound is, and 3) what resources have been most helpful for me as I’ve learned Csound. I love Csound, but it has been very challenging to learn. The first two or three months were an uphill battle where I thought about quitting a few times. Admittedly, I was brand new to both computer programming and digital audio generation. I’m sure if I had more experience with those then picking up Csound wouldn’t have been as painful. The biggest early challenge for me was understanding how the three variable rates (initialization rate, control rate, and audio rate) work. I felt like I had to hit my head against a wall for three weeks before that clicked. But once you become familiar with the basic principles and syntax of Csound you start picking up other topics and opcodes quicker. I’ve used both CsoundQt and Cabbage as Csound development environments. They each have their pros and cons and best use cases. I’ve been using Cabbage more because it has an ingenious way of controlling the instrument interface within the Csound code itself. There are a ton of opcodes available to do many sound design techniques out of the box, or you can code your own opcodes to do anything you’d like. The user community is very responsive and helpful on the Csound listserv (http://csound.1045644.n5.nabble.com/ http://csound.1045644.n5.nabble.com/). And the developers have made it so you can integrate Csound with all sorts of other languages and software.