Every noise has been used at least five times.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
HelpSource
LICENSE
README.md
ReKit.sc
ReMIDI.sc
ReNote.sc
RePatterns.sc
Repetition.quark
Repetition.sc
extMethods.sc

README.md

Repetition.sc

A set of tools to build a Stream of Events`.

Current version: 0.3

Installation

Simply open a new document on your SC IDE and type:

Quarks.install("https://github.com/lvm/Repetition.sc");

This should print something like this in the Post window:

Installing Repetition
Installing PercSymbol
PercSymbol installed
Installing FluidSynth
FluidSynth installed
Installing Bjorklund
Bjorklund installed
Repetition installed
-> Quark: Repetition[0.1]

Getting started

Once Repetition is properly installed and everything working correctly, type the following:

(
p = ProxySpace.push(s);
p.makeTempoClock;
p.clock.tempo = 2;
p.quant = 4
;
r = Repetition(p);
m = r.initMIDI("Midi Through", "Midi Through Port-0");
r.midiEventTypes;
)

So, pretty much that's it.

The language

The parser recognizes the following symbols:

  • Parallel: a|b, plays symbols simultaneously. Kind of a Chord.
  • Groups: a+b, plays symbols sharing the duration. If the duration is 1, each will have a duration of 1/2.
  • Accent: a@, sums a quarter of the original amplitude to it. That is: amplitude/4.
  • Shift octave up: a', Current Octave +1.
  • Shift octave down: a,, Current Octave -1.
  • Repeat once: a!, Repeats the symbol once.
  • Repeat N times: a*N (N -> Int), Repeats symbols N times.

All of them are "chainable". For example, a Pattern (ab)using every option available:

"a*3 b@+c' d@!, e+f".asRepetitionStream.nextNRP(23);
-> [ ( 'dur': 0.14285714285714, 'symbol': a, 'shift': 0, 'midinote': 9,
  'typeof': note, 'accent': 0 ), ( 'dur': 0.14285714285714, 'symbol': a, 'shift': 0, 'midinote': 9,
  'typeof': note, 'accent': 0 ), ( 'dur': 0.14285714285714, 'symbol': a, 'shift': 0, 'midinote': 9,
  'typeof': note, 'accent': 0 ), ( 'dur': 0.071428571428571, 'symbol': b@, 'shift': 0, 'midinote': 11,
  'typeof': note, 'accent': 0.25 ), ( 'dur': 0.071428571428571, 'symbol': c', 'shift': 1, 'midinote': 0,
  'typeof': note, 'accent': 0 ...etc...
~x[0] =  "c a f e".pbind(\instrument, \default, \amp, 0.5);
~x.play;

A more in-depth documentation is available in SCDoc format browseable through the SCIde Help Browser. If you feel anything is missing, don't hesitate to report an issue asking for clarification.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/lvm/Repetition.sc. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

LICENSE

See LICENSE