Skip to main content

Port of the Ziffers numerical notation for Python

Project description

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

Project details


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ziffers-0.0.1-py3-none-any.whl (41.3 kB view details)

Uploaded Python 3

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

Hashes for ziffers-0.0.1.tar.gz
Algorithm Hash digest
SHA256 37a5237f56567b0db6d46ee19b9458e68e39887e97c0ecdbb1c4076b43585ade
MD5 8861ee821c82086e555ccceb345105d7
BLAKE2b-256 00aed6b919d9c9a8ba5162d53a383dff88c1020588dc984c906b422a8ceda083

See more details on using hashes here.

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

Hashes for ziffers-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c7b3af6d8ed9f66ee5491938f4a86ec2d0b3493899aafccc405f7d7138f658c2
MD5 60c15fe10f38500be535d0112e4d3002
BLAKE2b-256 36be2464b25cfc4ac044d068287f17b8b628fa41c5044063ae878c00c5f7ad68

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page