Jump to content

opmo

Administrators
  • Posts

    2,902
  • Joined

  • Last visited

Reputation Activity

  1. Like
    opmo reacted to mark5009 in OM2 and Emacs   
    Okay, it works easily and well with my setup: simply copy the "emacs-opusmodus.el" into your local quicklisp directory and modify Emacs's init.el to add
     
    (load (expand-file-name "$HOME/quicklisp/emacs-opusmodus.el")) (load-opusmodus-slime) (opusmodus-options)  
    This allows me to run up a REPL against SBCL (M-x slime) or against OM (M-x slime-connect)
  2. Thanks
    opmo reacted to mark5009 in OM2 and Emacs   
    Hi.
     
    I've just started with OM2 and I'm finding the emacs/slime setup a touch confusing (there has obviously been lots of work on this part of OM over the years of this forum). Basically, I run my current emacs setup with an exisiting slime setup (I do some dev work using SBCL). Is there a "correct" way of adding or modifying  emacs-opusmodus.el to work with an existing setup? Or can I simply copy it, and hack it as needed?
     
    TIA and loving OM 🙂
     
    .. m.
  3. Like
    opmo reacted to AM in Regression- Stasis-Progression   
    or...
     
    (loop for x from 7 downto 1 for y from 1 to 7 collect (list x 3 y))  
  4. Thanks
    opmo got a reaction from NagyMusic in Regression- Stasis-Progression   
    make 3 lists and mix them 🙂
  5. Sad
    opmo got a reaction from torstenanders in Turning off trace messages   
    For some recent is not working if in Extensions folder.
  6. Thanks
    opmo got a reaction from NagyMusic in Session 17 - 26.09.20 Extrapolation for Pierrot Ensemble   
    Is this what you are looking for:
     
    (setf ph1 (ambitus            '(g3 g6)            (filter-tie             (make-omn              :pitch (gen-loop size (interval-ambitus 6 (rnd-sample 12 (make-scale 'd4 12 :alt '(2 1 3)))))              :length (gen-loop size (length-legato (rnd-sample 4 '(s -s))))              :velocity (rnd-sample 12 '((pp)(p)(mp)(mf)(f)))              :span :pitch              ))))  
    By default the span in length. If you wan't pitch to be the master then :span :pitch will do the trick.
  7. Thanks
    opmo reacted to Rangarajan in Created in Opusmodus   
    I am implementing a library of algorithms for music generation using Opusmodus. Here are 3 snippets generated using this library. The midi outputs are sent to Reaper DAW, which in turn uses instruments available in Propellerhead Reason 11 (through VST3i Reason Rack Plugin).
     
    - Rangarajan
    rnd-nil3-4_4.mp3
    rnd-nil2-4_4.mp3
    rnd5654328-4_4.mp3
  8. Like
    opmo reacted to AM in Opusmodus to Processing (by Midi)   
    Dear all
     
    Today I dealt briefly how to control PROCESSING (software and programming language) by Midi. There is a great interface for this: "rwmidi" by Giuseppe Torre. You can download and install it, it works fine!  
     
    A short Video (no Sound) with a very simple Processing Example
     

    movie.mov  
    I think this is a good combination if you want to visualize your midi output (or just use de midi-data in realtime)  or if you want to program a separate VISUAL track in OPMO. Here is a small example (I can't program usable in PROCESSING yet, sorry :-)) Downloads etc. are here ...
     
    https://processing.org
    https://gitlab.com/giuseppetorre/rwmidi-revival-master
     
    here's a video, how to install etc...
    https://www.youtube.com/watch?v=7iFUenT5B68&feature=youtu.be
     
    and as an attachm. my "sketch" in processing
    sketch_Processing_from_Midi.pde
     
    Greetings André
     
    P.S. I think there ist also a way to send data by OSC
     
  9. Like
    opmo got a reaction from edesert in Two variations on Chopin 28-4   
    Two variations on Chopin 28-4
     
       
     
       
     
    Janusz
  10. Like
    opmo got a reaction from Stephane Boussuge in Function: vector-to-pitch   
    (vector-map '(c4 d4 e4 c5 d5) (gen-gaussian-noise 10 :seed 89)) => (d5 d4 c4 e4 d4 e4 c4 d4 e4 d5)  
    🙂
  11. Like
    opmo reacted to Rangarajan in Function: vector-to-pitch   
    Thanks to suggestion by Janusz, I have been able to solve my requirement thus:
    ;; Returns a list of pitches from the given list, satisfying the supplied noise ;; pitch-list => arbitrary list of pitches ;; noise => Any noise (defun noise-to-pitch-map (pitch-list noise)   (mapcar #'(lambda (n)                (nth n pitch-list))           (vector-round 0 (1- (length pitch-list)) noise))) Examples: (noise-to-pitch-map '(c4 d4 e4 f4) (gen-white-noise 10 :seed 89)) => (c4 f4 e4 c4 d4 e4 f4 c4 f4 e4) (noise-to-pitch-map '(c4 d4 e4 c5 d5) (gen-gaussian-noise 10 :seed 89)) => (d5 d4 c4 e4 d4 e4 c4 d4 e4 d5) (noise-to-pitch-map (expand-tonality '(c4 major)) (gen-pink-noise 10 :seed 89)) => (c4 d4 d4 e4 e4 f4 g4 a4 b4 b4)  
    - Rangarajan
  12. Like
    opmo got a reaction from NagyMusic in Two variations on Chopin 28-4   
    Two variations on Chopin 28-4
     
       
     
       
     
    Janusz
  13. Thanks
    opmo reacted to Stephane Boussuge in Two variations on Chopin 28-4   
    Fab !!
     
     
  14. Like
    opmo got a reaction from lviklund in Two variations on Chopin 28-4   
    Two variations on Chopin 28-4
     
       
     
       
     
    Janusz
  15. Like
    opmo got a reaction from JulioHerrlein in Session 22 - 07.11.20 - Vertical harmonic control - Density - Auto-explode4   
    I assume you need to evaluate the auto-explode4 function first.
  16. Like
    opmo reacted to torstenanders in Opusmodus commands don't work in Aquamacs   
    I just noted that the code I shared above depends on other definitions in my library (e.g., the function preview-score). Below is an update that instead uses only builtin Opusmodus functions. Holler in case this is not working for you, as the code on my machine is a bit different, and I did not test the code below... (specifically, the version below only works for the scores with instruments from the ps set gm, while my own code is more flexible, but then again depends on other custom definitions).
     
     
    ;; Emacs lisp code: put into your Emacs init file, e.g., ~/.emacs ;; Custom function for previewing Openmusic snippets etc (defun slime-eval-and-preview-opmo-snippet-before-point () "Evaluate the Openmusic snippet (an expression) preceding point and preview that snippet." (interactive) (let* ((score (slime-last-expression)) (full-expr (concat "(ps 'gm (list :treble " score "))")) ) ;; (print (concat "debug: " full-expr)) (slime-interactive-eval full-expr))) (defun slime-eval-and-preview-opmo-score-before-point () "Evaluate the score (an expression in the tot score format) preceding point and preview that score (notation and playback)." (interactive) (let* ((score (slime-last-expression)) (full-expr (concat "(ps 'gm " score ")")) ) (slime-interactive-eval full-expr))) (defun slime-stop-opmo-playback () "Stop the currently playing Openmusic sound playback." (interactive) (slime-interactive-eval "(sequencer:sequencer-stop *audition-sequencer*)")) (defun slime-opmo-midi-playback () "(Re-)play the last Opusmodus score with a separate MIDI playback window." (interactive) (slime-interactive-eval "(display-midi *last-score* :display :window)")) (add-hook 'lisp-mode-hook (lambda () (local-set-key (kbd "<A-f2>") #'slime-eval-and-preview-opmo-snippet-before-point) (local-set-key (kbd "<A-f3>") #'slime-eval-and-preview-opmo-score-before-point) (local-set-key (kbd "<A-f4>") #'slime-opmo-midi-playback) (local-set-key (kbd "<A-f1>") #'slime-stop-opmo-playback) )) ;; Creating a new "Opusmodus" menu in the menu bar to the right of "Lisp" menu. ;; This new menu is only shown when in lisp-mode (define-key-after lisp-mode-map [menu-bar opusmodus] (cons "Opusmodus" (make-sparse-keymap "hoot hoot")) 'lisp) ;; Creating a menu item, under the menu by the id “[menu-bar opusmodus]” (define-key lisp-mode-map [menu-bar opusmodus preview-score] '("Preview score cmd-f3" . slime-eval-and-preview-opmo-score-before-point)) (define-key lisp-mode-map [menu-bar opusmodus preview-snippet] '("Preview snippet cmd-f2" . slime-eval-and-preview-opmo-snippet-before-point)) (define-key lisp-mode-map [menu-bar opusmodus stop-playback] '("Stop playback cmd-f1" . slime-stop-opmo-playback)) (define-key lisp-mode-map [menu-bar opusmodus replay-score] '("(Re)play last score cmd-f4" . slime-opmo-midi-playback))  
  17. Like
    opmo reacted to JulioHerrlein in Articulations (key switches) XML Export   
    musescore_KEYSW.mp4 Here is Musescore doing Keyswitches ! But maybe we can just add standard staves to a MusicXML file for doing this.
    Put some staves like in the above video and generate it like standard notes for the keyswitches. Simple.
    We need opusmodus to create articualtion staves alongside the normal tracks with the same rhythms of the staves (and with articulations instead).
    This can be MusicXML staves (we just need normal notes (in a very low register).
     
    I think it´s possible...
    All the best !
     
    One interesting thing is to make the articulation notes a little milliseconds before the actual notes (to change the articulation al little before the note).
     
    In my video, I use to copy all the notes of the score, then paste it a little before the notes (like a 32nd or 64th note before) and then edit the articulations.
     
    BEst !
  18. Like
    opmo reacted to Stephane Boussuge in Articulations (key switches) XML Export   
    SoloCelloExempl.mp4 As you can see , I don't need any extra staves to have key switch .
     
    All the best
     
    Stéphane
     
  19. Like
    opmo reacted to JulioHerrlein in Articulations (key switches) XML Export   
    Yes, MUSICXML
    I´m also doing a video ! 😀😀😀😀
  20. Like
    opmo reacted to Rangarajan in Created in Opusmodus   
    Hi,
    The attached score was created in Opusmodus!
     
       
     
    - Rangarajan
     
    Music1.mp3
  21. Like
    opmo got a reaction from JulioHerrlein in Articulations (key switches) XML Export   
    Correction: The musicxml has no information about keyswitches etc...
    You could save the Opusmodus midifile of yours score (click on the midi display panel and 'Save As...") and import the file into your notation software.
  22. Like
    opmo reacted to Stephane Boussuge in Waiting into the room For Solo Cello   
    A small solo cello piece composed this evening.
     
       
     
     
    Stéphane
     
    WaitingIntoTheRoom.opmo WaitingIntoTheRoomForSoloCello.mp3
  23. Thanks
    opmo reacted to Stephane Boussuge in Question about composition methods and related functions   
    Here's one of my way to compose with harmony and voice leading.
     
    Best regards
     
    Stéphane
     
    ;;; FANTAISIE POUR CORDES ;;; SB. 28.10.2020 ;;; ========================= ;;; Section size (setf size 32) ;;; Chords Structures (setf boz '((-4 -9 -12 -16)(-6 -10 -15 -22)(-5 -8 -12 -24))) ;;; Melodic construction material generation (setf melomat (omn-to-measure (make-omn :pitch (filter-repeat 1 (vector-to-pitch '(g4 c6) (vector-smooth 0.14 (gen-white-noise 96)))) :length (flatten (rnd-sample 12 '(h q (e e) (3q = =) h (h. q) h))) ) '4/4)) ;;; Melody generation (setf melo (ambitus '(g4 g6) (bind-to-interval '(2 -2) (rnd-sample size melomat)))) ;;; Melody vertical harmonisation (setf melharmo (gen-chord3 melo boz)) ;;; Separation between melody and harmony ;;; Remove the top note (defun rmv-top-nt (chord) (butlast (melodize (sort-asc chord))) ) #| ;exemple d'application sur plusieurs accords. (chordize-list (mapcar (lambda(x) (rmv-top-nt x)) (mclist '(d5g4c4b4e4 d5g4c4b4e4 d5g4c4b4e4)))) |# ;;; Apply closest path to all voices under the melody (setf harmo (closest-path (make-omn :pitch (chordize-list (mapcar (lambda(x) (rmv-top-nt x)) (mclist (flatten (omn :pitch melharmo)) ))) :length (omn :length melharmo) ))) ;;; Pitch demix (setf line1 melo) (setf line2 (pitch-demix 1 harmo)) (setf line3 (pitch-demix 2 harmo)) (setf line4 (pitch-demix 3 harmo)) (setf line5 (pitch-demix 4 harmo)) ;;; Adding rest and tie (setf line1.o line1) (setf line2.o (length-legato (length-weight line2))) (setf line3.o (length-legato (length-weight line3))) (setf line4.o (length-legato (length-weight line4))) (setf line5.o (length-legato (length-weight line5))) ;;; Distribute to instruments (setf vn1 (ambitus '(g3 g6) line1.o)) (setf vn2 (ambitus '(g3 g5) line2.o)) (setf vla (ambitus '(c3 c5) line3.o)) (setf vlc (ambitus '(c2 e4) line4.o)) (setf ctb (ambitus '(c1 g2) (pitch-transpose 0 line5.o))) (setf violin1 vn1) (setf violin2 vn2) (setf viola vla) (setf violoncello vlc) (setf contrabass ctb) ;;;--------------------------------------------------------- ;;; Score and Layout ;;;--------------------------------------------------------- (def-score ftsy (:title "Fantaisie pour cordes" :composer "S.Boussuge" :copyright "Copyright © 2020 s.boussuge" :key-signature 'chromatic :time-signature '((1 1 1 1) 4) :tempo 72 :layout (bracket-group (violin1-layout 'violin1) (violin2-layout 'violin2) (viola-layout 'viola) (violoncello-layout 'violoncello) (contrabass-layout 'contrabass))) (violin1 :omn violin1 :channel 1 :sound 'gm :program 'string-ensemble-1 :volume 100 :pan 16 :controllers (91 '(48)) ) (violin2 :omn violin2 :channel 2 :sound 'gm :program 'string-ensemble-1 :volume 95 :pan 111 :controllers (91 '(48)) ) (viola :omn viola :channel 3 :sound 'gm :program 'string-ensemble-1 :volume 90 :pan 32 :controllers (91 '(60)) ) (violoncello :omn violoncello :channel 4 :sound 'gm :program 'string-ensemble-1 :volume 90 :pan 95 :controllers (91 '(60)) ) (contrabass :omn contrabass :channel 5 :sound 'gm :program 'string-ensemble-1 :volume 90 :pan 95 :controllers (91 '(72)) ) )  
  24. Thanks
    opmo got a reaction from JulioHerrlein in Question about composition methods and related functions   
    I think chord-inversion would be good start, this will allow you to generate chordal as well as melodic material.
     
  25. Like
    opmo reacted to Stephane Boussuge in Voile Suspendu - video score   
    Hi,
     
    here's the video rendering of my score "Voile Suspendu"
     
    S.
     

     
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy