NONPLUSSED

From Esolang
Jump to navigation Jump to search

NONPLUSSED is a language for MIDI algorithmic composition, created by User:NoWhy, and inspired by false memories of Stockhausen's Kurzwellen score. The language is currently (October 8 2025, CET) a work in progress.


Command Description
x Play note
_ Rest
? Chance to skip next character
@ Warp to random @
5[] Loop 5 times. Can be 0-9
+ Increase active counter
- Decrease active counter
p Switch to pitch counter
d Switch to duration counter
v Switch to velocity counter
r Randomize active counter
o Reset all values
~ Increase speed
^ Randomly pick between next two characters, skip the other.

Default values for speed, pitch, duration and velocity, the meaning of speed and the increase/decrease amounts are left open to interpretation by the programmer. Each line corresponds to a MIDI channel.

Examples

A mono example using warps

 5[r@x_xrx__x@xrxrxrx@_x_xrx_xx]

MIDI channel 0 and 1 use the same score

 5[r@x_xrx__x@xrxrxrx@_x_xrx_xx]
 5[r@x_xrx__x@xrxrxrx@_x_xrx_xx]

A longwinded example

 v?-p7[r^36[x_x_x^_xxr]d9[+]px________?or]9[rx_xxx_x_x__x~5[~]]
 v?-p7[r^36[x_x_x^_xxr]d9[+]px________?or]9[rx_xxx_x_x__x~5[~]]
 v?-p7[r^36[x_x_x^_xxr]d9[+]px________?or]9[rx_xxx_x_x__x~5[~]]

Implementations

NONPLUSSED interpreter

The current version is implemented in Processing and will be uploaded after more testing/improving. Might also be ported to microcontrollers.

External resources