All Activity
- Today
-
Percussion Template
Hi, does anyone has by any chance a drum kit def-score template which is compatible with Musescores Instruments "Drum Kit (large)"? Thanks for help. Achim
-
born started following Percussion Template
- Yesterday
-
Additive time signature in def-score
No replies on this one yet? I don't use this technique myself but you can use lists of lists to combine time-signatures with the three-element list option - see the def-score helpfile: time-signature is either a two list, e.g. (4 4), or a list of three-lists, e.g. ((4 4 3) (4 8 1) (3 4 1)), where the first two element of each list are the numerator and denominator of the time signature, and the element is the number of bars. The bar count maybe omitted from the final time signature. so you could do-- :time-signature ((3 4 1) (1 8 1) (4 4 1) (1 16 1)) As a rule, the Lisp nested lists allow you to combine in different ways - but check the relevant help files for the sorts of options. This is integers in lists so straightforward. bw Andrew
-
acrawnsley started following Additive time signature in def-score
- Last week
-
nico joined the community
-
SonicShang joined the community
- Earlier
-
Nested tuplets?
I've searched the archive and saw that there was some discussion about implementing nested tuplets for version 2.0, but nothing that ever indicated that they were actually implemented. I cannot seem to make them work with version 4.0 no matter what I try. Should they work? If so, would someone be willing to post an example? Thanks, -Beth
-
BethD started following Nested tuplets?
-
-
JulioHerrlein reacted to a post in a topic:
Idea for a function "motive-subdivision" or "motif-subdivision"
-
loancahvsz806 started following Coming soon: 5 Opusmodus lessons on Composer workshop
-
loancahvsz806 joined the community
-
Idea for a function "motive-subdivision" or "motif-subdivision"
Hi Julio, One possibility is to use the MAYBE-SECTION function within your function. However, Janusz has more powerful tricks to add :section and :exclude in functions. 😊 Additionally, I believe it would be beneficial to include a slot for possible intervals in this function, similar to the ones we have in the length-divide and length-subdivision functions. Best Stéphane
-
Vani started following torstenanders
- Idea for a function "motive-subdivision" or "motif-subdivision"
-
Idea for a function "motive-subdivision" or "motif-subdivision"
Janusz, is there some general function to apply selectively any function to a list ? It would be useful in conjunction to this. For example, selectively applying the motive-subdivision in the first and third measure of a list while mantaining the rest of the list original. A kind of general bypass to any kind of list. Thanks in advance,
- Idea for a function "motive-subdivision" or "motif-subdivision"
-
Additive time signature in def-score
I'm just starting out with OMN so please bear with me here. I don't see a way to represent additive meters like 3/4+1/8 or 4/4+1/16 in the :time-signature argument to def-score. Is there a way to do this? Thanks, -Beth
-
BethD started following Additive time signature in def-score
-
jesele reacted to a post in a topic:
Idea for a function "motive-subdivision" or "motif-subdivision"
- Idea for a function "motive-subdivision" or "motif-subdivision"
-
Stephane Boussuge reacted to a post in a topic:
Idea for a function "motive-subdivision" or "motif-subdivision"
-
JulioHerrlein reacted to a post in a topic:
Idea for a function "motive-subdivision" or "motif-subdivision"
-
-
Idea for a function "motive-subdivision" or "motif-subdivision"
a (perhaps poor) attempt at a function. Jesper (defun motive-subdivision (omn-mat val &optional (time-sig '(4 4))) (let* (tms v (time (if (atom (car omn-mat)) time-sig (get-time-signature omn-mat))) (seq (single-events (omn-merge-ties (flatten-omn omn-mat)))) (vl (list! val)) (vlen (length vl))) (omn-to-time-signature (loop for x in seq and i from 0 do (setf v (nth (mod i vlen) vl)) (setf tms (/ (omn-encode (car x)) v)) collect (if (and (integerp tms) (> tms 1)) (append (list v) (cdr x) (make-list (1- tms) :initial-element (cadr x))) (progn (decf i) x))) time))) (setf mat '(h c4 q. d4 e e4 -q w c4 h d4 q e4 -q)) (motive-subdivision mat '(1/8)) (motive-subdivision mat '(1/16)) (motive-subdivision mat '(1/12 1/8 1/16)) (motive-subdivision (omn-to-measure mat '(5/8 3/4)) '(1/16)) (motive-subdivision mat '(1/12 1/8 1/16) '(5 4)) (setf mat2 '((w g4 tie) (q g4 e bb4 h eb5 e gs4 tie) (h.. gs4 -e) (q cs5 fs5 h a4 tie) (h. a4 e eb5 g4 tie) (q. g4 he bb4 tie) (q. bb4 -e q e5 a4) (w cs5 tie) (q cs5 e fs5 h bb4 e eb5 tie) (h.. eb5 -e) (q g4 c5 h e5 tie) (h. e5 e gs4 cs5 tie) (q. cs5 he fs5 tie) (q. fs5 -e q a4 d5) (w g4 tie) (q g4 e c5 h eb5 e gs4 tie) (h.. gs4 -e) (q cs5 e5 h a4 tie) (h. a4 e eb5 g4 tie) (q. g4 he c5 tie) (q. c5 -e q e5 a4) (w cs5 tie) (q cs5 e fs5 h bb4 e eb5 tie) (h.. eb5 -e) (q g4 c5 h e5 tie) (h. e5 e gs4 cs5 tie) (q. cs5 he fs5 tie) (q. fs5 -e q a4 d5) (w g4 tie) (q g4 e bb4 h eb5 e gs4 tie) (h.. gs4 -e) (q cs5 fs5))) (ps 'gm :p (list mat2 (pitch-transpose -7 (motive-subdivision mat2 '(1/4 1/20 1/16 1/8 1/32)))) :tempo 132 :time-signature '(4 4) ) (setf mat3 '((w c3a3c4eb4e4g4 p tie+ten) (q c3a3c4eb4e4g4 p e d2d3g3bb3d4g4 mp marc+ten h d3cs4eb4g4gs4bb4 marc+ten e d3bb3eb4gs4bb4eb5 tie+marc+ten) (h.. d3bb3eb4gs4bb4eb5 mp -e) (q g3d4fs4gs4a4cs5 mp marc+ten g3cs4fs4a4cs5fs5 marc+ten h g3c4d4fs4g4a4 tie+marc+ten) (h. g3c4d4fs4g4a4 mp e c3e3a3cs4e4a4 p ten c4e4g4bb4c5eb5 tie+ten) (q. c4e4g4bb4c5eb5 p he d2d3g3bb3d4g4 mp marc+ten+tie) (q. d2d3g3bb3d4g4 mp -e q eb3c4eb4fs4g4bb4 p ten eb3c4e4a4c5e5 ten) (w g3d4fs4gs4a4cs5 mp tie+marc+ten) (q g3d4fs4gs4a4cs5 mp e c3a3cs4fs4a4cs5 p ten h c4g4bb4cs5eb5fs5 ten e c3fs3bb3eb4fs4bb4 tie+ten) (h.. c3fs3bb3eb4fs4bb4 p -e) (q eb3a3c4eb4e4g4 p ten eb3g3c4e4g4c5 ten h eb4fs4a4c5cs5e5 tie+ten) (h. eb4fs4a4c5cs5e5 p e gs3cs4e4a4cs5e5 mp marc+ten g2a3cs4eb4fs4gs4 tie+marc+ten) (q. g2a3cs4eb4fs4gs4 mp he c3a3cs4fs4a4cs5 p ten+tie) (q. c3a3cs4fs4a4cs5 p -e q fs3g4b4cs5d5fs5 mp marc+ten d2e3a3d4e4a4 marc+ten) (w eb3a3c4eb4e4g4 p tie+ten) (q eb3a3c4eb4e4g4 p e g2d3g3c4d4g4 mp marc+ten h g3cs4eb4g4gs4c5 marc+ten e g3c4eb4gs4c5eb5 tie+marc+ten))) (ps 'gm :p (list (pitch-transpose 12 (subseq mat2 0 16)) (motive-subdivision mat3 '(1/4 1/8))) :tempo 132 :time-signature '(4 4) )
-
microcompose472 joined the community
-
-
Idea for a function "motive-subdivision" or "motif-subdivision"
Dear All, Here is a proto-function idea... If Janusz or someone are interested in transform it in a core function, I think it could be interesting... Sometimes I like to take a motive or chorale texture and use it to make a kind of accompaniment or texture ala Reich. I created my way to do it, but it could be perfected in a better function and integrated in the core system. Here is the idea: ;; Motive (setf mat '(h c4 q. d4 e e4 -q w c4 h d4 q e4 -q)) ;; small value (setf fig-value '(e)) The "proto-function". What I could not achieve was how to make it respect the rests in the motive, but it works for generating the texture, respecting the pitch and length boundaries of the motive. (flatten (make-omn :pitch (omn :pitch (omn-to-time-signature mat (get-time-signature (omn-to-measure (length-legato mat) (flatten (length-legato (omn :length mat))))))) :length (omn-to-time-signature (length-span (get-span mat) (gen-repeat 200 fig-value)) (get-time-signature (omn-to-measure (length-legato mat) (flatten (length-legato (omn :length mat)))))) )) RESULT (e c4 mf c4 c4 c4 e d4 mf d4 d4 e e4 mf e4 e4 e c4 mf c4 c4 c4 c4 c4 c4 c4 e d4 mf d4 d4 d4 e e4 mf e4 e4 e4) It could be perfected to result this: (e c4 mf c4 c4 c4 d4 d4 d4 e4 -q e c4 c4 c4 c4 c4 c4 e c4 c4 d4 mf d4 d4 d4 e4 e4 -q) Same texture with the fig-value set do 16th note (setf fig-value '(s)) Best wishes, Julio
-
-
Edu joined the community
-
y2j joined the community
-
-
Vani started following VSL converter -> Sibelius Sound Set to Opusmodus Sound Set
-
Nicksnow99 joined the community
-
MilenElen joined the community
-
MIDI Player inconsistent
Thank you for the feedback. I have had that work. In particular rebooting helped briefly, but it just keeps coming back! I did also confirm that the MIDI Mode is Off in the MIDI Sync tab in Settings. I believe that's what we're talking about.
-
yuqian joined the community
-
NCODE loop function
loop macro isn’t very Lispy, so it isn’t really suitable for Ncode. We could add simple loop templates like repeat etc. but this can be done with other functions.
-
-
MIDI Player inconsistent
Set the MIDI clock to OFF: Mode Off
-
Vani started following User Extensions Source Code
-
cdg joined the community
-
MIDI Player inconsistent
close and restart Opusmodus.
-
MIDI Player inconsistent
Am I doing something weird, or is it normal for the MIDI player to skip notes and play erratically like this (evidence in video below)? I only started noticing it recently. I'm running OpusModus on a MacBook Pro (Tahoe 26.1) M1 with 32 GB of RAM. This particular work is set up as follows, not including all the variable definitions: (def-score drums (:key-signature 'chromatic :time-signature '(4 4) :tempo 120) (kik :omn bd :sound 'gm :channel 10 :program 0 :port 0) (snr :omn sn) (hht :omn hh) (clap :omn clp) (ohht :omn ohh) (clav :omn clv) (hht2 :omn hh2) ) (display-midi 'drums) Thank in advance for any advice, Brenden opusmodus performance issues.mov
-
function feedback
It would be fun if we could get instant feedback when changing function parameters. For example if I press enter in a parameter field and the graph window is open, it updates with the new result. Or, clicking the Refresh All button refreshes the graph view if it's open or even the notation view. I know instant feedback isn't the intent of a program like Opusmodus, but Ncode is breaking new ground! I think this would be a fun interactive experience, if it's possible.
-
NCODE loop function
Could I get an example of the proper syntax of the body of the loop function?
-
- Color PDF export
-
adding existing variables to new functions
Done in 4.0.30673 Contextual variable insertion (Function and Argument fields) To reuse existing history variables while composing a new function call, NCODE provides a contextual insertion menu in the Function and Argument fields. How to use: right-click inside the Function field or an argument field to open a contextual menu of available history variables. Insert behaviour: selecting a variable inserts its name at the current caret position. The existing field text is preserved (it is not replaced). Purpose: this supports rapid reuse of previously computed materials without recalling (loading) the variable’s originating function. Notes: insertion is purely textual. It does not evaluate the function and it does not alter the history selection.
-
adding existing variables to new functions
I like the automatic variable name generator. Since the intent of NCODE is to facilitate exploring musical ideas quickly in an interactive interface, would it make sense to facilitate adding existing variables to new functions? Either drag and drop, point and click, or drop down list, or similar.
- Color PDF export
- problem with counterpoint examples
-
Opusmodus 4.0.30671 (Update)
Additional Ncode functionality (Ncode Manual): 2.2.4 SETF mode, templates, and pages NCODE provides a template-driven mode for constructing structured values via SETF pages. This mode is used when the Function field is SETF and a template is selected. Rather than entering a single expression, the user fills a set of pages; NCODE then reconstructs a quoted value and evaluates a (setf …) form. Figure 3 SETF mode, templates and pages. SETF pages provide a UI method for building complex, repeatable list structures (collections of labelled items) without manual list syntax. This is particularly useful when the value is naturally expressed as multiple items that must be ordered. Templates A template defines: the number and organisation of pages, and the fields available on each page (key–value pairs). Selecting a different template changes the page layout and the meaning of the fields. The selected template and page contents are saved in the .omnc session and restored when reopened. Each page corresponds to one logical item in the resulting value. Next page creates a new item. Remove page removes an item. Empty pages are ignored when the final value is constructed. Field values Fields accept numbers, strings, keywords, lists, and symbols. Symbols entered without a leading quote may be treated as variable references (for example, previously stored history variables). When a literal symbol is required, enter it as a quoted symbol. Constructed value When evaluated, NCODE converts the populated pages into a single quoted form: if one page is populated, the value becomes a quoted single item; if multiple pages are populated, the value becomes a quoted list of items. NCODE then evaluates the corresponding (setf …) form, storing the result in the history like any other entry. Reproducibility SETF pages are stored as structured page data in the session. When reloading a session or using Refresh All, NCODE reconstructs the same quoted value from the saved pages and re-establishes consistent bindings. https://opusmodus.com/forums/ncode/ NCODE is still in beta, but with every update, it is becoming a more stable tool. Best wishes, Janusz --- Here are few files to play with. Add this file into Media/MusicXML folder: Webern-Op.5.xml Add this files into the Media/Ncode folder: Maderna.omnc Tonnetz3.omnc Ulam-Perc.omnc Voice-Variant.omnc MusicXML.omnc
-
Constraint Programming in Opusmodus
OK, thanks for help! My eyes were too much fixed on (asdf:load-system :tot). With etu's fix I now could evaluate both Stephane's and etu's scores. Henry