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,

    New release: Fix to rest and ttrem positions in notation display.

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

    NEW: MODUS is working with omn-form lists now. (modus '((q c6 cs4 e a4 e3 d6 f4) (q b4 gs3 e bb4 eb4 g5 fs6))) => ((0 1 9 4 2 5) (11 8 10 3 7 6)) MOTIF-MAP function name has change to PATTERN-MAP with additional functionality. (setf omn '((s c4 d4 e4 f4 g4 a4 b4 c5) (5q c4 d4 e4 f4 g4 g4 f4 e4 d4 c4))) (pattern-map '(((c4 d4 e4) (cs4 ds4 f4)) ((f4 g4) (eb4 fs4))) omn :type :pitch) => ((s cs4 ds4 f4 eb4 fs4 a4 b4 c5) (5q cs4 ds4 f4 eb4 fs4 g4 f4 e4 d4 c4)) (pattern-map '(((c4 d4 e4) (cs4 ds4 f4)) ((f4 g4) (eb4 fs4))) o…

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

    New: Improvement to tuplet brackets placement. MUSICXML-TO-EDITOR function. musicxml-to-editor file-name &key application identifier [Function] Arguments and Values: file-name a string. application a string. The default is "Sibelius". identifier a string. Description: The MUSICXML-TO-EDITOR function opens musicxml score files in any musicxml editor, like Sibelius, Finale etc... Examples: First, you need to create a musicxml file from your score: (compile-score 'file-name :output :musicxml :file "file-…

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

    Fix to SPLIT-LENGTHS and LENGTH-RATIONAL-QUANTIZE.

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

    NEW: GEN-BINARY-INTERVAL BINARY-LAYER INSERT-BAR REMOVE-BAR GET-COUNT (edited, please check the document) COUNT-REPEAT OMN-TIE-BARS function name changed to TIE-BARS more work on notation (dynamic and length rewrite)

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

    New in 1.2.20286: LOAD-INSTRUMENT (Please read the document to see how to setup and use the function) more options in LENGTH-LEGATO (was length-reduce) MODIFY-TIME-SIGNATURE more options in SPLIT-LENGTHS (was split-tuplet-lengths) GEN-TRANSFORM LENGTH-RATIONAL-QUANTIZE more options in GET-TIME-SIGNATURE Fix to one length-symbol conversion and more general optimisation. I like to thank especially Andre Meier for his contribution to the new function set.

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

    New keyword :exclude in GEN-PAUSE: (gen-pause '((-1/8 1/8) (1/4 1/8) (1/2 1/8) (1/8 1/4) (-1/8 1/2 -1/8)) :section '(0 2 4)) => ((-1/4) (1/4 1/8) (-5/8) (1/8 1/4) (-3/4)) (gen-pause '((-1/8 1/8) (1/4 1/8) (1/2 1/8) (1/8 1/4) (-1/8 1/2 -1/8)) :exclude '(0 2 4)) => ((-1/8 1/8) (-3/8) (1/2 1/8) (-3/8) (-1/8 1/2 -1/8)) With time I will add :exclude to all function with :section keyword. New keyword :symmetrical in GEN-PALINDROME: (gen-palindrome '(1 2 3 4 5 6)) => (1 2 3 4 5 6 5 4 3 2 1) (gen-palindrome '(1 2 3 4 5 6) :symmetrical nil) => (1 2 3 4 5 6 6 5 4 3 2 1)

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

    Fix to TEXT-TO-PITCH and EXPLODE-TEXT.

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

    Better segregation with SPLIT-TUPLET-LENGTHS: (split-tuplet-lengths '(3q a4 b4 d4 f4 d4 q a4 b4 5q g3 a4 q - -)) => ((3q a4 b4 d4 f4 d4) (q a4 b4) (5q g3 a4) (q a4 - -)) RND-UNIQUE new keyword :extend. Extends the result to a given number: (rnd-unique 13 '(c4 cs4 d4 ds4 e4 f4 fs4) :extend :loop :seed 45) => (f4 d4 fs4 ds4 c4 cs4 e4 f4 d4 fs4 ds4 c4 cs4) (rnd-unique 13 '(c4 cs4 d4 ds4 e4 f4 fs4) :extend :rnd :seed 45) => (fs4 f4 cs4 ds4 c4 e4 f4 cs4 d4 ds4 fs4 d4 c4)

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

    Making encode nil (in various functions) working again and the ASSEMBLE-SEQ function is flatten sublist correctly now.

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

    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)…

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

    The function MERGE-VOICES will merge a number of omn script lines (voices) into one line of omn script with the time signature take form the first voice. Note: The MERGE-VOICES in general should be use with simple (base) lengths only. For more complex lengths the layout is more effective tool: :layout (piano-solo-layout '(pno-rh1 pno-rh2) 'pno-lh)) Optimisation to ASSEMBLE-SEQ function with a small bug fix.

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

    Opusmodus - made as simple as possible, but not simpler We are very excited to announce our biggest update yet Opusmodus version 1.2. The last few months have been a marathon and a sprint at the same time knowing all of you are waiting patiently wanting to see the next step in functionality, bug fixes etc… Below you will find the list of the new algorithms, tools, notation layout and fixes. For this release our main goal was to improve the notation display especially the length grouping. To achieve this we have developed an entirely new rewrite-lengths algorithm that improves: the notation display, a better tuplets display, time signatu…

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

    (1/12 1/20 1/4 1/4 1/5 1/6) (5/32 1/32 1/4 1/32 5/32 1/4 3/32 1/32 5/32 1/16 1/16) (1/20 1/10 3/20 1/5 1/4 3/10 7/20 2/5 9/20 1/2 11/20) ((1/20 1/20 1/20) (1/10 1/20) (2/20 2/20 -1/20) (1/20 1/20) (1/12 1/2))

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

    Fix GET-TIME-SIGNATURE (spacial case with repeat and ends) and ASSEMBLE-SUBSEQ.

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

    Fit the velocity bug (swallow) in ASSEMBLE-SUBSEQ function.

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

    Fix to marimba ambitus instrument, now (c2 c7). Added ambitus instrument - flute (concert-flute). MOTIF-MAP - flatten bug.

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

    Fix to LENGTH-CHORDIZE-MAP and function names in "Sextet Studies" scores.

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

    New function: motif-map map sequence &key otherwise swallow [Function] Arguments and Values: map a list. (<old><new>). sequence a proper sequence. otherwise NIL or an argument. The default is NIL. swallow NIL or T. The default is NIL. Description: MOTIF-MAP returns a copy of sequence in which each motif that has been mapped is replaced with a new motif. Examples: The argument (((0 1 2) (a b c))) means motif (0 1 2) will be replace with new motif (a b c). (motif-map '(((0 1 2) (a b c))) …

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

    New: gen-binary-series size number level &key rotate [Function] Arguments and Values: size an integer (list length). number an integer (decimal binary number). level an integer (the unit count). rotate an integer (1 forwards and -1 backwards). The default is 0. variant 'p (prime), 'r (retrograde), 'i (inversion) 'ri (retrograde inversion) and '? (at random). seed an integer or NIL. The default is NIL. Description: This function returns a binary list series of…

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

    New: rnd-12tone-form n row &key type seed [Function] Arguments and Values: n an integer (number of forms). row a 12-tone row. type :integer or :pitch. The default is :integer. seed NIL or an integer. The default is NIL. Description: This function returns N lists of 12-tone forms selected at random. (rnd-12tone-form 2 '(0 4 9 10 5 3 8 7 1 2 11 6) :seed 56) => ((6 1 10 11 5 4 9 7 2 3 8 0) (8 3 0 1 7 6 11 9 4 5 10 2)) (rnd-12tone-form 2 '(0 4 9 10 5 3 8 7 1 2 11…

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

    GET-TIME-SIGNATURE bug fix.

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

    12TONE-ANALYSIS bug fix. The help command shortcut is changed to ctrl-tab now.

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

    Function name changes: find-12tone-form -> 12tone-analysis 12tone-analysis -> 12tone-forms Extended analysis results in 12TONE-ANALYSIS: (12tone-analysis '(0 4 5 2 3 7 1 9 8 11 10 6) '((0 4 5) (2 3 7) (1 9 8) (11 10 6))) => Original Prime Order: (0 4 5 2 3 7 1 9 8 11 10 6) Pitch Row: (c4 e4 f4 d4 eb4 g4 cs4 a4 gs4 b4 bb4 fs4) Set: ((0 4 5) (2 3 7) (1 9 8) (11 10 6)) Pitch Set: ((c4 e4 f4) (d4 eb4 g4) (cs4 a4 gs4) (b4 bb4 fs4)) PCS: (3-4 3-4 3-4 3-4) Form: (P0 ((0 4 5) (2 3 7) (1 9 8) (11 10 6))) (R6 ((0 4 5) (2 3 7) (1 9 8) (11 10 …

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

    Additional keyword :interval added to find-ambitus function. (setf omn-seq '((s cs5 p g6 mp mf -) (s cs5 f e g3 ff s p) (s cs5 mp g6 mf f -) (-s cs5 ff e g3 p) (s g3 mp - e cs5 mf) (s g6 f ff e cs5 p) (s g3 mp mf e cs5 f) (s g6 ff p cs5 mp g3 mf) (e g3 f s cs5 ff g6 p) (e g6 mp -s cs5 mf) (e g3 f -s g3 ff) (s cs5 p e g6 mp s mf))) (find-ambitus omn-seq) => (-5 31) (find-ambitus omn-seq :type :pitch) => (g3 g6) With keyword :interval T the function will return the global i…

    • 0 replies
    • 4.1k 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.