By Ajay Kapur, Perry R. Cook, Ge Wang

Summary

Programming for Musicians and electronic Artists: growing tune with ChucK bargains a whole creation to programming within the open resource song language ChucK. In it, you will study the fundamentals of electronic sound production and manipulation if you observe the ChucK language. As you progress example-by-example via this easy-to-follow e-book, you are going to create significant and profitable electronic compositions and "instruments" that make sound and track in direct reaction to application good judgment, ratings, gestures, and different platforms hooked up through MIDI or the network.

Purchase of the print e-book contains a unfastened book in PDF, Kindle, and ePub codecs from Manning Publications.

About this Book

A electronic musician needs to manage sound accurately. ChucK is an audio-centric programming language that offers special keep an eye on through the years, audio computation, and person interface components like tune pads and joysticks. since it makes use of the vocabulary of sound, ChucK is straightforward to benefit even for artists with very little publicity to machine programming.

Programming for Musicians and electronic Artists deals an entire advent to tune programming. In it, you are going to study the fundamentals of electronic sound manipulation once you discover ways to software utilizing ChucK. Example-by-example, you will create significant electronic compositions and "instruments" that reply to software good judgment, rankings, gestures, and different structures attached through MIDI or the community. you will additionally adventure how ChucK permits the on-the-fly musical improvisation practiced through groups of "live track coders" round the world.

Written for readers acquainted with the vocabulary of sound and tune. No adventure with desktop programming is required.

What's Inside

  • Learn ChucK and electronic tune production side-by-side
  • Invent new sounds, tools, and modes of performance
  • Written through the creators of the ChucK language

About the Authors

Perry Cook, Ajay Kapur, Spencer Salazar, and Ge Wang are pioneers within the quarter of training and programming electronic track. Ge is the writer and leader architect of the ChucK language.

Table of Contents

  1. Introduction: ChucK programming for artists
    PART 1 advent TO PROGRAMMING IN CHUCK
  2. Basics: sound, waves, and ChucK programming
  3. Libraries: ChucK's integrated tools
  4. Arrays: arranging and getting access to your compositional data
  5. Sound records and sound manipulation
  6. Functions: making your personal tools
  7. PART 2 NOW IT will get relatively INTERESTING!
  8. Unit turbines: ChucK gadgets for sound synthesis and processing
  9. Synthesis ToolKit instruments
  10. Multithreading and concurrency: operating many courses at once
  11. Objects and periods: making your personal ChucK strength tools
  12. Events: signaling among shreds and syncing to the surface world
  13. Integrating with different platforms through MIDI, OSC, serial, and more

Show description

Read or Download Programming for Musicians and Digital Artists: Creating music with ChucK PDF

Similar Programming books

Embedded C

For those that are approximately to write down their first embedded software - or were suffering to benefit approximately this significant sector - this publication will shop weeks of attempt.

Cocoa Design Patterns

“Next time a few child exhibits up at my door soliciting for a code assessment, this can be the e-book that i'm going to throw at him. ”   –Aaron Hillegass, founding father of large Nerd Ranch, Inc. , and writer of Cocoa Programming for Mac OS X   Unlocking the secrets and techniques of Cocoa and Its Object-Oriented Frameworks   Mac and iPhone builders are usually crushed by means of the breadth and class of the Cocoa frameworks.

C++ Primer (5th Edition)

Bestselling Programming instructional and Reference thoroughly Rewritten for the recent C++11 common   absolutely up-to-date and recast for the newly published C++11 ordinary, this authoritative and complete creation to C++ may also help you to benefit the language quickly, and to take advantage of it in smooth, powerful methods.

Operating System Concepts

Retain velocity with the fast-developing global of working platforms Open-source working platforms, digital machines, and clustered computing are one of the prime fields of working platforms and networking which are swiftly altering. With immense revisions and organizational adjustments, Silberschatz, Galvin, and Gagne’s working process suggestions, 8th version is still as present and suitable as ever, supporting you grasp the basic thoughts of working platforms whereas getting ready your self for today’s rising advancements.

Extra info for Programming for Musicians and Digital Artists: Creating music with ChucK

Show sample text content

D noteUp functionality definition 1 to worldwide E provides be aware variable // observe half-step up // print new be aware worth // name play functionality G performs it. H enjoyable void noteDown() noteDown functionality { 1 -=> notice; // word half-step down Subtracts 1 from <<< word >>>; // print new observe price international be aware variable play(); // name play functionality } I J performs observe on Mandolin 1! Defines play functionality // play international word on worldwide mand UG enjoyable void play() { units international Mandolin Std. mtof(note) => mand. freq; frequency utilizing international notice 1 => mand. noteOn; Hangs out for a moment sooner than moment => now; returning to major loop } 1) 1@ Now let’s examine directory five. eleven, that is the most infinite-loop software B that makes use of our noteUp() and noteDown() features. observe that the loop doesn’t have any development of time in it. in lots of situations, this suggests this system wouldn’t paintings and ChucK may grasp! yet as you observed within the earlier swell() and granularize() examples, time might be complex inside of services. thus, keep in mind that whilst noteUp() is termed C, after it does its paintings, it calls the play() functionality (J within the past listing), which does its paintings and advances time by way of 1 moment. After this is often whole, play returns to noteUp(), which right away returns to the most application, the place noteDown() is named D. noteDown() decrements observe, prints it out, calls play(), after which returns. This approach keeps for the remainder calls to noteUp() and noteDown(). 104 bankruptcy five directory five. eleven capabilities: making your personal instruments utilizing the noteUp and noteDown capabilities in a prime loop B major software to check noteUp Calls noteUp... C …calls noteDown. D // major application, progressively emerging "melody" and noteDown features. whereas (true) { noteUp(); // execute noteUp, and while it is performed noteDown(); // execute noteDown, etc noteUp(); Then calls noteUp two times. noteUp(); noteDown(); Then calls noteDown and loops. } This method retains repeating, and this application performs the notes and prints out the next: sixty one :(int) 60 :(int) sixty one :(int) sixty two :(int) sixty one :(int) sixty two :(int) sixty one :(int) sixty two :(int) sixty three :(int) sixty two :(int) sixty three :(int) … and so forth … five. three. 2 altering scale pitches through the use of a functionality on an array You’ll now learn the way you should use arrays with capabilities. simply as you handed UGens as arguments to features, arrays are legitimate arguments to boot. for instance, you could outline a functionality referred to as arrayAdder that modifies one member (index) of an array (temp), to have a brand new worth (add one to it). You’ll use this presently to alter the pitches of a observe array referred to as scale. enjoyable void arrayAdder( int temp[], int index ) { 1 +=> temp[index]; } the next directory checks this new functionality, mentioning an international array B and our arrayAdder() functionality C after which trying out it out once or twice, editing components of the array. directory five. 12 features on arrays // international array [60,62,63,65,67,69,70,72] @=> int scale[]; // functionality to switch a component of an array enjoyable void arrayAdder( int temp[], int index) B worldwide notice array C arrayAdder functionality to change it Functions to make compositional varieties a hundred and five { 1 +=> temp[index]; } // try out all of it out <<< scale[0], scale[1], scale[2], scale[3] >>>; arrayAdder(scale, 2); <<< scale[0], scale[1], scale[2], scale[3] >>>; <<< "scale[6] = ", scale[6] >>>; arrayAdder(scale, 6); <<< "scale[6] = ", scale[6] >>>; The console prints out 60 sixty two sixty three 60 sixty two sixty four scale[6] scale[6] sixty five sixty five = 70 = seventy one exhibiting that the weather of the worldwide array have been certainly converted; array[2] went from sixty three to sixty four, and array[6] went from 70 to seventy one.

Rated 4.69 of 5 – based on 50 votes