In the World of Grains – Part 2
In the World of Grains – Part 2
(contains embedded video) If you want to support my work, please make use of the "PayPal" button - thank you very much indeed!
Impromptu and Extempore both focus on live coding. But as Impromptu is only for the Mac world, whereas Extempore is a multiplatform language, and Extempore is developed from Impromptu, I am going to talk only about Extempore here. Both, Impromptu and Extempore are designed by Andrew Sorensen, Extempore, the younger one, went public in 2011. Let me quote the documentation (see resources chapter):
“These two goals—dynamic flexibility and close-to-the-metal control—seem at odds. Extempore tries to offer both by supporting both a high-level dynamic language (Scheme) and a low-level ‘C like’ language (xtlang) simultaneously, with tight integration and transparency between the two. A running Extempore process will compile both valid scheme and xtlang forms. Scheme objects (lists, closures, continuations, etc.) coexist with the xtlang types and pointers to them to allocated memory, and with a few ‘helper functions’ data can even flow naturally between both languages.”
In other words, we get two languages in one, each of which deals with different types of tasks.
Extempore comes with a couple of functions, whichg allow granular processing of sound – mainly of samples, wav-files etc. - but those of you, who are not interested in live programming that much, will shy away quite soon, because the learning curve is extremely steep, as the syntax and structure are kind of hard to take. The documentation is excellent …. for a programmer, but hard to read for someone, who looks at the matter mainly from a musical, a sound designer view. And, well, considering the effort it takes to dive into Extempore, the granular functionality you get your hands on there is kind of meager. But, as I mentioned before, Extempore´s main goal is live programming – and here it´s a giant of a language.
Using the FAUST libraries (snippets of FAUST code) you can generate user interfaces (UI, GUI) to process your code. FAUST supports multithreading and parallel processing. FAUST comes under the GPL license, it is free to use, and it runs on Linux, OS X and Windows. You can use it online, directly on the server of Grame (Lyon, France), or download to use it offline on your computer.
FAUST comes with a bunch of libraries to deal with sound, it is an ideal piece of software to create granular sound processors, and even if its syntax needs getting used to, its logic is quite easy to grasp, and because of the automatically generated flow charts FAUST code is a clearly laid out thing to deal with.
JSyn is a JAVA-based musical application language, that comes with a set of unit generator classes, included one called “GrainFarm” to generate clouds of snippets of sound following a number of basic parameters like amplitude and amplitude range, density, duration and duration range, playback rate and playback rate range. The language was invented by Phil Burk, who has continued developing it until today. There´s a whole JSyn community around with newsletters and services (see Resources chapter). There is also a graphical user interface to JSyn, called “Syntona”. See more details in the next chapter.
The list of the people, who have contributed to Nyquist, reads like the who-is-who of sound design, coding, avantgarde composition and IT teaching. It was invented/developed by Roger Dannenberg. You can get it at SourceForge (see chapter “References and Sources”). It´s free. So, what´s so special about Nyquist after all? Besides its exceedingly rich variety of functions and libraries conserning the creation and manipulation of sound, it´s the way the aspect of time is integrated in the language.
Yes, the seamless connection of score and sound in the syntax and the grammar of Nyquist is remarkable (not put into practice as two distinct parts, like in Csound, but merged into a unified language). But the conception of time in Nyquist as a more important aspect, if you want to deal with granular sound processing. Telling apart logical time from physical (real) time, diverse functions concerning time manipulations, telling apart time, that occurs in rhythmical effects from time, that occurs in the development of a sound and a lot more.
Nyquist is based on LISP, but the NyquistIDE offers also a SAL editor (see linked video). It´s a software to create sounds and instruments as well as to compose scores.
The manual (see chapter “References and Sources”) is excellent, and helpful even for a beginner (not for an absolute beginner in coding at all though). Nyquist runs under OS X, Linux, Windows and other operating systems (e.g. Next). The download comes with an integrated development environment (IDE), but can also be operated without it (command line mode). I strongly recommend using the NyquistIDE though, as it enables a faster workflow (see linked video).
... to be continued
to part 1 ("A Short History of Granular Synthesis - Part 1"): https://www.dev.rofilm-media.net/node/340
to part 2 ("A Short History of Granular Synthesis - Part 2"): https://www.dev.rofilm-media.net/node/342
to part 3 ("A Short History of Granular Synthesis - Part 3"): https://www.dev.rofilm-media.net/node/346
to part 4 ("A Short History of Granular Synthesis - Part 4"): https://www.dev.rofilm-media.net/node/356
to part 5 ("In the World of Grains - Part 1"): https://www.dev.rofilm-media.net/node/364
to "Inthe World of Grains" part 3: https://www.dev.rofilm-media.net/node/378
to "In the World of Grains" part 4: https://www.dev.rofilm-media.net/node/385
to "In the World of Grains" part 5: https://www.dev.rofilm-media.net/node/390
to "In the World of Grains" part 6: https://www.dev.rofilm-media.net/node/398
to "In the World of Grains" part 7: https://www.dev.rofilm-media.net/node/407
to "In the World of Grains" part 8: https://www.dev.rofilm-media.net/node/414
to "in the World of Grains" part 9: https://www.dev.rofilm-media.net/node/421