# Opusmodus 1.2.20109

## Recommended Posts

New LENGTH-REDUCE function, thanks to Achim Bornhoeft.

length-reduce lengths &key section omn

[Function]

Arguments and Values:

lengths                             lists of lengths or OMN sequence form.

section            an integer or list of integers. Selected list or lists to process.

omn                NIL or T. If true, the OMN style output is forced. The default is NIL.

Description:

LENGTH-REDUCE inverts length-rests to a length-note and adds the sum of the rest in sequence,

to the previous length-note.

(length-reduce '(1/8 -1/16 1/16 -1/12 2/12 2/20 -3/20 -1/8 3/8))

=> (3/16 7/48 1/6 3/8 3/8)

Examples:

(length-reduce '(-1/8 -1/16 1/16 -1/12 2/12 2/20 -3/20 -1/8 3/8))

=> (-3/16 7/48 1/6 3/8 3/8)

(length-reduce '((-1/8 -1/16 1/16 -1/12) (2/12 2/20 -3/20 -1/8 3/8)))

=> ((-3/16 7/48) (1/6 3/8 3/8))

Processing selected lists only:

(length-reduce '((-1/8 -1/16 1/16 -1/12) (2/12 2/20 -3/20 -1/8 3/8))

:section '(1))

=> ((-1/8 -1/16 1/16 -1/12) (1/6 3/8 3/8))

(length-reduce '((5q --- == -w 5q q) (q q e e)) :omn t)

=> ((5w 5ddw. 5q q) (q = e =))

Processing omn list:

(length-reduce '(s c4 -q -e s d4 - e e4 -s -))

=> (q.. c4 e d4 q e4)

×

• Lessons