Ziffers for Python 3.10+
This repo is hosting experimental parser for the Ziffers numbered musical notation to Python 3.10+. This library is using lark lalr-1 parser and ebnf PEG for parsing the notation.
Supported environments
Ziffers python supports following live coding and computer-aided composition environments:
Status:
Supported:
Pitches: -2 -1 0 1 2
Chords: 0 024 2 246
Note lengths: w 0 h 1 q 2 e 3 s 4
Subdivision: [1 2 [3 4]]
Decimal durations: 0.25 0 1 <0.333>2 3
Octaves: ^ 0 ^ 1 _ 2 _ 3
Escaped octave: <2> 1 <1>1<-2>3
Named chords: i i i i
Randoms: % ? % ? % ?
Random between: (-3,6)
Repeat: [: 1 (2,6) 3 :4]
Repeat cycles: [: <q e> (1,4) <(2 3) (3 (1,7))> :]
Lists: h 1 q(0 1 2 3) 2
List cycles: (: <q e> (1,4) <(2 3) (3 (1,7))> :)
Loop cycles: <0 <1 <2 <3 <4 5>>>>>
Basic operations: (1 2 (3 4)+2)*2 ((1 2 3)+(0 9 13))-2 ((3 4 10)*(2 9 3))%7
Product operations: (0 1 2 3)+(1 4 2 3) (0 1 2)-(0 2 1)+2
Euclid cycles: (q1)<6,7>(q4 (e3 e4) q2) (q1)<6,7>(q4 q3 q2)
Transformations: (0 1 2)<r> (0 1 2)<i>(-2 1)
List assignation: A=(0 (1,6) 3) B=(3 ? 2) B A B B A
Random repeat: (: 1 (2,6) 3 :4)
New features:
Shorthand for random repeat: (2 5):3 [2 5 1]:4 (1,6):6
Partial support:
Escape/eval: {10 11} {3+1*2} // {1.2 2.43} NOT SUPPORTED YET.
Roman chords: i ii iii i^maj i^7
TBD:
Random selections: [q 1 2, q 3 e 4 6]
Conditionals: 1 {%<0.5?3} 3 4 (: 1 2 {%<0.2?3:2} :3)
Functions: (0 1 2 3){x%3==0?x-2:x+2}
Polynomials: (-10..10){(x**3)*(x+1)%12}
Modal interchange (a-g): iiia ig ivf^7
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ziffers-0.0.1.tar.gz
(39.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
ziffers-0.0.1-py3-none-any.whl
(41.3 kB
view details)
File details
Details for the file ziffers-0.0.1.tar.gz.
File metadata
- Download URL: ziffers-0.0.1.tar.gz
- Upload date:
- Size: 39.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.11.0b4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37a5237f56567b0db6d46ee19b9458e68e39887e97c0ecdbb1c4076b43585ade
|
|
| MD5 |
8861ee821c82086e555ccceb345105d7
|
|
| BLAKE2b-256 |
00aed6b919d9c9a8ba5162d53a383dff88c1020588dc984c906b422a8ceda083
|
File details
Details for the file ziffers-0.0.1-py3-none-any.whl.
File metadata
- Download URL: ziffers-0.0.1-py3-none-any.whl
- Upload date:
- Size: 41.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.11.0b4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7b3af6d8ed9f66ee5491938f4a86ec2d0b3493899aafccc405f7d7138f658c2
|
|
| MD5 |
60c15fe10f38500be535d0112e4d3002
|
|
| BLAKE2b-256 |
36be2464b25cfc4ac044d068287f17b8b628fa41c5044063ae878c00c5f7ad68
|