Skip to content
View in the app

A better way to browse. Learn more.

Opusmodus

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Announcements

News and announcements only

  1. Started by opmo,

    Notation: octave shift above pedal min width on single system tempo meter placement rit extension Fixed the flat-invert in PITCH-INVERT function.

    • 0 replies
    • 1.6k views
  2. Started by opmo,

    Notation changes and improvements: * added support for dotted and dashed and short barlines * allow setting of slash grace duration * Improved edit UI * improved staff spacing * correct placement of articulations in multi-voice staff * Fixed tie problem with unpitched notes * ignore erroneous notations on chord notes * Improved handling of 'exact' mode layout * Improved tuplet handling * correct some layout errors * corrected occasional slur misplacement * improved placement of harmonic

    • 0 replies
    • 1.4k views
  3. Started by opmo,

    Added to the system: (pushnew :opusmodus *features*)

    • 0 replies
    • 1.4k views
  4. Started by opmo,

    Update: Fixed a bug in LENGTH-EXPANSION-VARIANT function when :variant with '?. Additional keyword :quantize takes care of the unfinished tuplets.

    • 0 replies
    • 1.3k views
  5. Started by opmo,

    New: BLOCK-CHORD-REDUCE The function BLOCK-CHORD-REDUCE reduces (compress) every bar of every instrument into a single chord. (setf rh '((-q. e gs3 f) (-q e a4 p stacc -) (-e q f5 f ten -e) ((acc e g6 mf) e6 p stacc -q.) (e cs4fs4c5 f marc -q e d3 p) (-e gs3 f - g6 p stacc) (-q. (acc e ds5 fff) e6 ff stacc) (-q c5 f ten) (-e (acc d6 mf) b5 p stacc - b3f5bb5 ff) (-q e a4 p stacc -) (-e cs4 f - c5 p stacc) (-q. e gs3 f))) (setf lh '((-q e bb5 f -) (-e a4 p stacc -q) (q cs4 f ten -e (acc b2 mf) d3 p stacc) (-q. e fs4c5f5 f m…

    • 0 replies
    • 1.9k views
  6. Started by opmo,

    New: POSITION-ATTRIBUTE ATTRIBUTE-MAP EVENTS-ANALYSIS OM Developer/Predicates: 12TONEP CONTAIN-ATTRIBUTEP ATTRIBUTE-SYMBOLP EVENT-RESTP POSITION-ATTRIBUTE: The function POSITION-ATTRIBUTE returns a lists of bar numbers and positions values of a given attribute in a sequence. This function is a companion to the ATTRIBUTE-MAP function. Examples: (setf mat '((h. f6 mp stacc) (-q h a4d2 p fermata e fermata) (e. a4d2 p - h e4g3 mf s fs6 p e c6 mp ten e. cs4 p tie) (e cs4 p q gs5eb6 h b2 p stacc e stacc) (q b2 p tie s q f6a4 mf -e q. d2 p ten) (h d2 p tie s…

    • 0 replies
    • 1.8k views
  7. Started by opmo,

    Function name change: PAUSE-EVENTS now FILTER-EVENTS New: OMN-MERGE-RESTS This function merge adjacent rests values into a single rest. (omn-merge-rests '(q c4 p d4 f - - e e4g4 tie q. e4g4)) => (q c4 p d4 f -h e e4g4 tie q.) (omn-merge-rests '(q c4 p d4 f - - q e4g4 tie q e4g4 - -e fermata)) => (q c4 p d4 f -h q e4g4 tie e4g4 - -e fermata) OMN-MERGE-TIES This function merge ties (tie) in phrases of omn into a single note or chord. (omn-merge-ties '(q c4 p d4 f - - e e4g4 tie q. e4g4)) => (q c4 p d4 f - - h e4g4) (omn-merge-ties '((e g6 f stacc ab5 mp ten c4 mf ten cs5 ff) (e c3 p tie s c3 tie c3 e eb3 mf stacc s…

    • 0 replies
    • 1.5k views
  8. Started by opmo,

    New: FILTER-EVENTS The function FILTER-EVENTS internally brakes-up an omn sequence into single-events (l p v a) and checks whether an event contains the given element. When an element is found the event is returned. All other events are transformed into rests. The option remain will invert the process. (filter-events 'd4 '(e c4 mp -e fermata e. d4 -h e. c4 e e4)) => (-q e. d4 mp -h.s) (filter-events 'd4 '(e c4 mp -e fermata e. d4 -h e. c4 e e4) :remain t) => (e c4 mp -e fermata -he. e. c4 e e4) These two options are useful for orchestration. Examples: (setf mat1 '(e c4 mp arco+ponte -e fermata e. d4 mp tasto …

    • 0 replies
    • 1.8k views
  9. Started by opmo,

    Fix: TIE-BARS and FILTER-TIE TIE-BARS: (setf mat '((e c3 g2 fs2 cs2 c2) (e c2 stacc cs2 fs2 g2 c3) (e c3 stacc g2 fs2 cs2 c2) (e c2 ten cs2 fs2 g2 c3) (e c3 g2 fs2 cs2 c2))) (tie-bars mat) => ((e c3 g2 fs2 cs2 c2 tie+stacc) (e c2 cs2 fs2 g2 c3 tie+stacc) (e c3 g2 fs2 cs2 c2 tie+ten) (e c2 cs2 fs2 g2 c3 tie) (e c3 g2 fs2 cs2 c2)) In the following example we tie bars 2 and 3: (tie-bars mat :section '(2 3)) => ((e c3 g2 fs2 cs2 c2) (e c2 stacc cs2 fs2 g2 c3) (e c3 stacc g2 fs2 cs2 c2 tie+ten) (e c2 cs2 fs2 g2 c3) (e c3 g2 fs2 cs2 c2)) FILTER-TIE: (filter-tie '(-q c4 f c4 p gliss d4 p e…

    • 0 replies
    • 1.3k views
  10. Started by opmo,

    Update to GEN-CONTROLLER function: The GEN-CONTROLLER function generates controller values in a given span (total length) with a defined time for each of the values (<value> <time>). The count of the sent messages is the sum of the time values equal to the span value. For example span 1/4 with time 1/128 will produce 32 values. (setf values (gen-sine 32 4 1.0)) (gen-controller 1/4 values) => ((64 1/128) (108 1/128) (127 1/128) (108 1/128) (63 1/128) (19 1/128) (0 1/128) (19 1/128) (64 1/128) (108 1/128) (127 1/128) (108 1/128) (64 1/128) (19 1/128) (0 1/128) (19 1/128) (64 1/128) (108 1/128) (127 1/128) (108 1/128) (63 1/128…

    • 0 replies
    • 1.7k views
  11. Started by opmo,

    New functions: HALF-SINE, HALF-SAWTOOTH, HALF-TRIANGLE, HALF-SQUARE JOIN-ATTRIBUTES, DISJOIN-ATTRIBUTES HALF-SINE The HALF-SINE function generates a sequence of vectors that describe and simulate the characteristics of a half sine wave. First the GEN-SINE: (gen-sine 32 1 0.5) Now the HALF-SINE: (half-sine 32 0.5) With control over resolution (the length of the wave), frequency and amplitude (and additional control over phase and modulation) this function can be a remarkably effective tool for creating gestural forms in pitch, rhythm, dynamics and structure. …

    • 0 replies
    • 1.8k views
  12. Started by opmo,

    New: Two new menu items: 'PPrint Expression' and PPrint Last Score'. PPrint Expression (Snippet) Place the mouse cursor at the end of the expression and press ⌃⌥⇥ The function PPRINT-LAST-SCORE prints a def-score-form of the *last-score* with the bar numbers in the Listener. MIDI Import to score has a new header and is using PPrint with the bar numbers by default. The function PPRINT-INSTRUMENT prints instrument values of a given score with the bar numbers in the Listener. Examples: (progn (setf size 200) (setf vector (add-triangle-waves …

    • 0 replies
    • 1.7k views
  13. Started by opmo,

    Some changes to the Text & Lyrics tools. If you used one of them please check the new functions. The text-to-pitch function is replaced with TEXT-MAP with more options and functionality. text-map map text &key flat rnd-order otherwise seed [Function] Arguments and Values: map a list of lists (<letter><symbol>) text a string, a string list list of a list of letters. flat T or NIL. The default is T. rnd-order T or NIL. The default is NIL. otherwise Nil, symbol or list of symbols. The default is NIL. seed an integer - ensure the same r…

    • 0 replies
    • 1.7k views
  14. Started by opmo,

    New: POSITION-SWAP The function POSITION-SWAP swaps the positions of the items within a list. (position-swap '(0 2) '(0 1 2 3 4 5 6)) => (2 1 0 3 4 5 6) (position-swap '((0 2) (3 5)) '(c4 d4 e4 f4 g4 a4 b4)) => (e4 d4 c4 a4 g4 f4 b4) (position-swap '((0 2) (3 5)) '(c4 d4 e4 f4 g4 a4 b4) :seq t) => ((e4 d4 c4 f4 g4 a4 b4) (e4 d4 c4 a4 g4 f4 b4)) (position-swap '((0 2) (3 5)) '(e c4 f d4 p s e4 mp f4 g4 f a4) :seq t) => ((s e4 mp e d4 p c4 f s f4 mp g4 f a4) (s e4 mp e d4 p c4 f s a4 g4 f4 mp))

    • 0 replies
    • 1.3k views
  15. Started by opmo,

    New: additional keyword :map in TEXT-TO-PITCH, LETTER-TO-INTEGER and INTEGER-TO-LETTER. --------------------------------------------------- TEXT-TO-PITCH Example with a defined :map (setf map (gen-combine (make-alphabet) (gen-integer-step 0 26 '(1 -2 3 1)))) => ((a 0) (b 1) (c -1) (d 2) (e 3) (f 4) (g 2) (h 5) (i 6) (j 7) (k 5) (l 8) (m 9) (n 10) (o 8) (p 11) (q 12) (r 13) (s 11) (t 14) (u 15) (v 16) (w 14) (x 17) (y 18) (z 19)) (text-to-pitch '("To be, or not to be, that is the question") :map map) => ((d5 gs4) (cs4 eb4) (gs4 cs5) (b…

    • 0 replies
    • 1.3k views
  16. Started by opmo,

    Added new keyword :type to TONALITY-MAP and TONALITY-SERIES function with three options: prime-form, normal-order and row. Examples: (setf seq2 (rnd-row :type :pitch :seed 345)) => (c4 d4 g4 f4 cs4 b4 gs4 e4 fs4 a4 bb4 eb4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type normal-order) seq2) => (a4 c4 fs4 eb4 b4 cs5 a5 d4 e4 b5 c5 cs4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type prime-form) seq2) => (c4 eb4 a4 fs4 d4 e5 c5 f4 g4 d5 eb5 e4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type row) seq2) => (c4 d4 b4 fs4 cs4 eb5 c5 e4 a4 cs5 d5 eb4) (tonality-map '((0 1 11 6 3 2 4 9) :map step :type normal-order :rotate…

    • 0 replies
    • 1.3k views
  17. Started by opmo,

    Function name change: RANDOMIZE-OCTAVES is now RND-OCTAVES Optimisation: TONALITY-MAP To change the function name in all of your scores you can use the 'Search Files...' tool.

    • 0 replies
    • 1.3k views
  18. Started by opmo,

    Changes to TONALITY-MAP function: The map shift name is changed to step. The sort by default is nil. The function TONALITY-MAP can be used to map tonalities on to a chromatic pitch series. There are two types of map: step and NIL. The step map use the sequence interval steps to map the tonalities on to the sequence. The map NIL use the sequence integers to map the tonalities to the closest integer on to the sequence. In the following example we use the closest type map: (tonality-map '((0 2 4 7 9 11)) '(c4 cs4 d4 cs4 eb4 f4 e4)) => (c4 d4 d4 c4 e4 f4 e4) Here we use the step map: (tonality-map '((0 2 4 7 9 11) …

    • 0 replies
    • 1.5k views
  19. Started by opmo,

    The return of each function below is from now on a list and not a vector. GEN-WHITE-NOISE GEN-BROWNIAN-MOTION GEN-GAUSSIAN-NOISE GEN-AR-TIME-SERIES GEN-MA-TIME-SERIES GEN-PINK-NOISE GEN-SAWTOOTH GEN-SINE GEN-SQUARE GEN-TRIANGLE The input to vector processing functions can be a list or a vector. Name change: GEN-VECTOR-SELECT is now VECTOR-TO-SECTION

    • 0 replies
    • 1.4k views
  20. Started by opmo,

    New: Plot snippets menu (shortcuts): Fixed the missing phase within the WAVES function when modulation option is used.

    • 0 replies
    • 1.3k views
  21. Started by opmo,

    Fix to missing TIE is some instances. New: OMN-TO-MEASURE This function works the same way as the OMN-TO-TIME-SIGNATURE function but uses measures instead of time-signature form. ---------------------------------- omn-to-measure omn-form measures &key loop [Function] Arguments and Values: omn omn-form list. measures a list of length-symbols or ratios. loop NIL or T. The default is T. Description: The OMN-TO-MEASURE function is used to span an omn-form list to create sublists that match …

    • 0 replies
    • 1.4k views
  22. Started by opmo,

    OMN added to LENGTH-MAP function. I you used the function before please add the :otherwise keyword to the function in your score. -------------------------------- length-map map sequence &key repeat otherwise section exclude seed [Function] Arguments and Values: map a list (<length><item>). sequence list of lengths or omn list. otherwise an item or list of items. repeat nil, t and '? (at random). The default is nil. section an integer or list of integers. Sele…

    • 0 replies
    • 1.2k views
  23. Started by opmo,

    New added Menu Items and key shortcut changes. Evaluation: Snippet: Last Score: Contextual Menu: For example Snippet with cmd-1 will play and display the notation etc... Best wishes, Janusz

    • 0 replies
    • 1.4k views
  24. Started by opmo,

    New: VELOCITY-VARIANT velocity-variant sequence &key variant section exclude omn [Function] Arguments and Values: sequence list(s) of velocities or omn-form lists. variant 'p (prime), 'r (retrograde), 'i (invert), 'ri (retrograde-invert), 'a (ascending), 'd (descending) and '? (at random). The default is ? (random). section an integer or list of integers. Selected list or lists to process. …

    • 0 replies
    • 1.3k views
  25. Started by opmo,

    MusicXML (Notation): Fixes slur position in grand-staff layout, tempo (text) collision with starting note and tuplet brackets in grand-staff layout if rest length only. New: section and exclude options added to more functions as well as omn processing. Performance improvements (optimisation). best wishes, Janusz

    • 0 replies
    • 1.3k views

Copyright © 2014-2026 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.