Coypu is a package with methods and classes for Pharo designed for programming music on-the-fly.
It has been originally designed as a server for SymbolicSound Kyma but can be used with any OSC compatible application and external MIDI hardware. It also contains a 'string oriented syntax' heavily influenced by TidalCycles
to interact with SuperDirt
The name is an homage to Kyma's Capytalk 'dialect', being the coypu a rodent as the capybara. The coypu is very common on the banks of the rivers in Veneto; everybody thinks it's a rat , but it's a rodent. Originally from the southern part of the South American continent, introduced into Italy and then bred for fur production in the 1980s, after the end of the animal fur hype of the Yuppies' times it was made to escape from the farms instead of being killed. and it reproduced. It's a nice and peaceful animal, often adopted as a mascot from Italian hackers.
Metacello new
baseline: 'Coypu';
repository: 'github://lucretiomsp/coypu:master';
load
Coypu can be used to play the SuperDirt audio engine for SuperCollider.
Download SuperCollider Start SuperCollider and type:
include("SuperDirt");
evaluate this line of code by placing the cursor on it and pressing Cmd+Enter=MacOs) or Ctrl+enter(Windows).
Download the sc-3 plugins Unzip the release and move it to your SuperCollider extensions folder. You can find it by evaluating in SuperCollider:
Platform.userExtensionDir;
If the folder does not exist, create it yourself. You can do this in your operating system's file explorer or from within SuperCollider by evaluating:
File.mkdir(Platform.userExtensionDir);
Launch SuperCollider and evaluate:
SuperDirt.start;
Now you are ready to have fun with Pharo and Coypu; launch Pharo and open a Playground Cmd+OW
"Create a new Performance"
p := Performance uniqueInstance.
"Assign a SuperDirt Performer to the Performance"
p performer: PerformerSuperDirt new.
"If you want you can change the spee of the Performance -- don't forget the bpm !!! "
p freq: 138 bpm.
Evaluate all these lines of code by selectimg them and pressing Cmd+D.
Add 16 steps of rumba the lt(stand for LowTom) track of your Performance by evaluating:
16 rumba to: #casio.
Now let's play the Perfomance for 4 bars, by evaluating:
p playFor: 4 bars.
"of course you can play as many bars you want "
Now we can add a four-to-the-floor Bass Drum(bd) and a Closed High-Hat (ch) to our Performance:
16 downbeats to: #bd.
16 upbeats to: #hh.
and play it for 16 bars:
p playFor: 16 bars
"of course you can play as many bars you want "
if you want to get a list of the samples available inspect ===Cmd+i===
SuperDirt listOfSamples.
If you evaluate in a Playground
SuperDirtExamples browse.
You will see a list of examples in the leftmost pane of the class browser. Just click on the small icon on the left of the method and a new Playground with the example code to evaluate will open. Just follow the instructions and have fun.
Coypu can be used to play external MIDI hardware. (https://github.com/pharo-contributions/pharo-sound)