Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lvm/Repetition.sc
Every noise has been used at least five times.
https://github.com/lvm/Repetition.sc
experimental-language livecoding repetition supercollider
Last synced: about 1 month ago
JSON representation
Every noise has been used at least five times.
- Host: GitHub
- URL: https://github.com/lvm/Repetition.sc
- Owner: lvm
- License: mit
- Created: 2017-11-15T23:04:28.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-12-14T05:52:51.000Z (over 5 years ago)
- Last Synced: 2024-02-15T02:31:36.212Z (5 months ago)
- Topics: experimental-language, livecoding, repetition, supercollider
- Language: SuperCollider
- Size: 146 KB
- Stars: 13
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-supercollider - Repetition.sc - A set of tools to build a Stream of Events using symbols and a sort of language in the language (Quarks and extensions / Patterns)
- awesome-livecoding - Repetition.sc - A set of tools to build a SequenceableCollection of Events. (inactive) (Languages)
- awesome-livecoding - Repetition.sc - A set of tools to build a SequenceableCollection of Events. (Languages)
README
# 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](http://contributor-covenant.org) code of conduct.
## LICENSE
See [LICENSE](LICENSE)