-
Posts
873 -
Joined
-
Last visited
Content Type
Forums
Events
Store
Video Gallery
Everything posted by JulioHerrlein
-
best strategy for organizing large strings and functions
JulioHerrlein replied to TomTolleson's topic in Library Setup
Dear Tom, You can go like this: (load "/Users/osxname/Opusmodus/Quick Start/name_of_the_file.opmo") Best, Julio -
Revert to Musescore 3 automatic opening in Editor
JulioHerrlein replied to JulioHerrlein's topic in Score and Notation
Thank you ! Best ! -
Revert to Musescore 3 automatic opening in Editor
JulioHerrlein posted a topic in Score and Notation
Dear Janusz, I´d like to have my (musicxml-to editor) function opening in Musescore 3, because I´m not yet using the version 4 because it´s not opening multiple scores at the same time. Each file is a new instance of musescore... please, can you help ? Best, Julio I have a file called SourceCodeJulio.lisp containing the following lines inside the extensions folder, under user source of the Opusmodus main folder. (defparameter *snippet-clef-default* :treble-down8) (defun last-score-to-musescore () (compile-score *last-score* :output :musicxml :file "temp-last-score") (musicxml-to-editor "temp-last-score" :application "/Applications/MuseScore3.app")) (defun last-midi-to-musescore () (compile-score *last-score* :output :midi :file "temp-last-midi") (musicxml-to-editor "temp-last-midi" :application "/Applications/MuseScore3.app")) Also, the function now opens the Musescore 4 but not the temp files -
Thanks ! The merit goes to Stéphane ! I was just trying to help a little. Best ! Julio
-
Thanks a lot, Stéphane ! Great ! Best ! Julio
-
Congrats, Stéphane !! Please, can you share the opmo file ? All the best ! Julio The link provided isn't working.
-
Thanks, Stéphane ! Best !
-
Yes. Thank you.
-
Thanks. It have to be constrained in one octave. I´ll remember to put modus before any octave independent use of tone-row.
-
Is this a wrong use ? (twelve-tonep '(c3 eb3 d3 f3 e3 g3 fs3 a3 gs3 b3 bb3 cs4)) why ?
-
Dear Janusz, Just for testing. When the octave changes, the function give wrong result. I´m doing a workaround putting before an (ambitus-octave c4 1 Best, Julio Maybe it´s better to embed the ambitus constraint in the function or something similar in order to get right results in any octave. Since the concept of "pitch class" is octave independent...
-
Dear Stéphane and Tom I did some edits in the Stéphane´s code. Some functions had names changed. Hope it can help. Best, Julio ;;;--------------------------------------------------------- ;;; Parameters ;;;--------------------------------------------------------- (setf size 8) (setf bars (gen-repeat size '(4/4))) (setf pause (length-span bars '(-q))) (setf ph1.size 8) (setf bars (gen-repeat size '(4/4))) (setf pause (length-span bars '(-q))) (setf mode1 '(dorian :root d4)) (setf ph1.pitch (filter-repeat 1 (tonality-map mode1 (integer-to-pitch (vector-round 0 16 (vector-smooth 0.36 (gen-white-noise 256 :seed 772))))))) (setf ph1.len (euclidean-rhythm (gen-repeat ph1.size '(9)) 1 5 1/8 :seed 93)) ; :binary-to-length t) ; :len-val 'e ; )) ;; Antécédent (setf ph1.omn (make-omn :pitch ph1.pitch :length ph1.len )) ;; Conséquent (setf ph1b.omn (ambitus '(0 16) (tonality-map mode1 (pitch-variant ph1.omn :variant 'i)))) (setf ph1 (assemble-seq ph1.omn ph1b.omn)) ;; Tintinabuli ;; V1 (setf tint1a.pitchlist '(c4 e4 g4)) (setf tint1a.pitch (rnd-sample (* ph1.size 4) tint1a.pitchlist)) (setf tint1a.len (euclidean-rhythm (gen-repeat (length ph1) '(9)) 1 2 1/8 :seed 103)) ; :binary-to-length t ; :len-val 'e ; )) (setf tint1a.omn (filter-tie (tonality-map mode1 (make-omn :pitch tint1a.pitch :length tint1a.len )))) (setf tint1a tint1a.omn) ;; V2 (setf tint1b.pitchlist '(c3 e3 g3)) (setf tint1b.pitch (rnd-sample (* ph1.size 4) tint1b.pitchlist)) (setf tint1b.len (euclidean-rhythm (gen-repeat (length ph1) '(9)) 1 2 1/8 :seed 19)) ; 1/8)) ; :binary-to-length t ; :len-val 'e ; )) (setf tint1b.omn (filter-tie (tonality-map mode1 (make-omn :pitch tint1b.pitch :length tint1b.len )))) (setf tint1b tint1b.omn) ;; V3 (setf tint1c.pitchlist '(c2 e2 g2 c3)) (setf tint1c.pitch (rnd-sample (* ph1.size 4) tint1c.pitchlist)) (setf tint1c.len (euclidean-rhythm (gen-repeat (length ph1) '(9)) 1 2 1/8 :seed 17662)) ; :binary-to-length t ; :len-val 'e ; )) (setf tint1c.omn (filter-tie (tonality-map mode1 (make-omn :pitch tint1c.pitch :length tint1c.len )))) (setf tint1c tint1c.omn) (setf v1 ph1) (setf v2 tint1a) (setf v3 tint1b) (setf v4 tint1c) ;;;--------------------------------------------------------- ;;; Score and Layout ;;;--------------------------------------------------------- (ps 'gm :sq (list (pitch-transpose 0 (ambitus 'violin v1)) (pitch-transpose 0 (ambitus 'violin v2)) (pitch-transpose 0 (ambitus 'viola v3)) (pitch-transpose 0 (ambitus 'cello v4)) ) :key-signature 'atonal :tempo 90 :flexible-clef nil :rewrite-lengths nil :accidentals :cautionary :merge-rests nil )
-
Dear Tom, Maybe it would be easier if you specify what kind of "rule" you imagine to implement the sequences. After that you could imagine many different ways to put this in movement, like randomizing the notes of the lines, shuffling the lines in a more specific way. And how would be the rhythmic and texture treatment ? And the instrumentation / voice layers ? Best !
-
Dear Friends, I was revisiting some 12-tone theory today and I found something strange: This returns NIL (twelve-tonep '(c3 eb3 d3 f3 e3 g3 fs3 a3 gs3 b3 bb3 cs4)) but this returns TRUE (twelve-tonep '(c4 eb4 d4 f4 e4 g4 fs4 a4 gs4 b4 bb4 cs4)) It´s the SAME tone-row NIL for this (twelve-tonep (pitch-transpose -12 '(c4 eb4 d4 f4 e4 g4 fs4 a4 gs4 b4 bb4 cs4))) TRUE for this (twelve-tonep (pitch-transpose 0 '(c4 eb4 d4 f4 e4 g4 fs4 a4 gs4 b4 bb4 cs4))) Maybe the algorithm to find the row is based in the c4 octave... I don´t know... Best
-
Thanks a lot, Janusz ! (get-bars-beats) would be useful and easier ! Best ! Julio
-
This is a suggestion for a function like get-bars-beats to be used in conjunction with get-beats ;;;This is an idea to get all the bars and beats from an OMN expression to be used/edited with GEN-BEATS (progn (setf omn-idea (gen-repeat 5 '((q b4 p<f tie+long) (q b4 s d5 mf ord g5 ord c5 ord e. a5 ord s b5 ord e5 ord fs5 ord d5 ord e g5 stacc c5 stacc a5 stacc - b5 stacc q e5 ord) (q gb4 p<f tie+long) (q gb4 s fs5 mf ord cs5 ord gs5 ord e. f5 ord s eb5 ord bb5 ord c5 ord fs5 ord e cs5 stacc gs5 stacc f5 stacc - eb5 stacc q bb5 ord) (q as4 p<f tie+long)))) (setf all-bars (cdr (gen-divide 2 (flatten (matrix-transpose (list (gen-divide 1 (gen-repeat (get-count (get-count omn-idea)) '(1))) (gen-divide 1 (gen-integer (get-count (get-count omn-idea)))))))))) (setf beats-zerobase (loop for i in (find-everyother 3 (flatten (get-time-signature (gen-divide 1 (get-span omn-idea))))) collect (gen-integer i))) (setf all-beats (gen-divide (get-count beats-zerobase) (loop for i in (flatten beats-zerobase) collect (+ 1 i)))) (setf all-bars-n-beats (matrix-transpose (list all-bars all-beats))) ) The result is this (((1 1) (1 2)) ((1 2) (1 2 3 4 5 6 7 8)) ((1 3) (1 2)) ((1 4) (1 2 3 4 5 6 7 8)) ((1 5) (1 2)) ((1 6) (1 2 3 4 5 6 7 8)) ((1 7) (1 2)) ((1 (1 2 3 4 5 6 7 8)) ((1 9) (1 2)) ((1 10) (1 2 3 4 5 6 7 8)) ((1 11) (1 2)) ((1 12) (1 2 3 4 5 6 7 8)) ((1 13) (1 2)) ((1 14) (1 2 3 4 5 6 7 8)) ((1 15) (1 2)) ((1 16) (1 2 3 4 5 6 7 8)) ((1 17) (1 2)) ((1 18) (1 2 3 4 5 6 7 8)) ((1 19) (1 2)) ((1 20) (1 2 3 4 5 6 7 8)) ((1 21) (1 2))) Not yet appropriate to use in GET-BEATS, but close... All this could be made inside one function, to extract, bars and beats in the form of GET-BEATS function. Best, Julio
-
Dear friends, A LISP question... ;;; Dear Friends, ; LISP question for using with get-beats ;;; voice and bar list ((1 1) (1 2) (1 3) (1 4) (1 5)) ;;; beats ((1 2) (1 2 3 4 5 6 7 8) (1 2) (1 2 3 4 5 6 7 8) (1 2)) ;;; matrix result (matrix-transpose '(((1 1) (1 2) (1 3) (1 4) (1 5)) ((1 2) (1 2 3 4 5 6 7 8) (1 2) (1 2 3 4 5 6 7 8) (1 2)))) ;;; desired result to use in gen-beats ((1 1 (1 2)) (1 2 (1 2 3 4 5 6 7 8)) (1 3 (1 2)) (1 4 (1 2 3 4 5 6 7 8)) (1 5 (1 2))) ;;; how can I achieve the last result in LISP ? That kind of list, like (x x ( y z)) kind of list ? ;;; Best ! Summarizing... How to transform this (((1 1) (1)) ((1 2) (1 3 5 7)) ((1 3) (1)) ((1 4) (1 3 5 7))) into this ((1 1 (1)) ((1 2 (1 3 5 7)) ((1 3 (1)) ((1 4 (1 3 5 7)) How is the name of this type of list ? Best !
-
Dear friends, Is there a way to use the rnd-beat-order function but specifying a list of beats ? The get-beats is the way in this case ? Or there is such a function like beat-order ? or maybe a space for determining the order inside the rnd-beat-order function ? In negative case, I´ll use the get-beats for doing this. All the best ! Julio
-
Thanks a lot ! Happy 2023 ! Julio
-
Dear Friends , I have this question regarding Get-Beats Function. All the best ! Julio ;;; THIS WORKS ! (setf omn-forum '((h b4 s d5 mf ord g5 ord c5 ord e. a5 ord s b5 ord e5 ord fs5 ord d5 ord e g5 f stacc c5 stacc a5 stacc - b5 stacc q e5 mf ord)(h bb4 s d5 mf ord gb5 ord c5 ord e. ab5 ord s b5 ord e5 ord fs5 ord d5 ord e g5 f stacc c5 stacc a5 stacc - b5 stacc q eb5 mf ord)) (get-beats '( (1 1 (1 2 4 7 5 8 6 3)) (1 2 (1 2 4 4 4 7 6 3))) omn-forum) ;;; But THIS WON´T WORK - Why ? (setf bts (rnd-unique 8 '(4 7 5 8 3 6 1 2))) (get-beats '( (list 1 1 bts) (1 2 (1 2 4 4 4 7 6 3))) omn-forum)
-
Some differences in the new interface
JulioHerrlein replied to JulioHerrlein's topic in Support & Troubleshooting
Thanks, Janusz ! All the best ! The alias is a great idea ! -
I noticed some differences in the new interface of the workspaces, specially in the way ver 3 deals with the files pinned at the workspace. You can drag your .opmo files onto the workspace from finder but beware of doing it ! The new workspace will create a special folder and the opmo files will be moved to this new workspace folder and no longer appear in a previous workspace. Seems like you can´t share the same .opmo file in two different workspaces. This makes sense but is different from what occurred before. I also deleted a file because I just wanted to remove / unpin it from the workspace, but it ended being removed from hard disk !! So, be careful when reorganizing your new workspaces. I can´t make folders anymore in the workspace (but in the older version, the folders weren´t searchables) . It was difficult to locate something under a folder. Maybe could be interesting to sort the files of the workspace not only in alphabetical order, but also by date of creation / modification. This automatic management of folders and workspaces is very nice but the user must have this behavior in mind while working the files. All the best ! Happy 2023 !
-
Documentation PDF copy paste problem
JulioHerrlein replied to JulioHerrlein's topic in Support & Troubleshooting
Yes. Sometimes, pdf files are arranged in some way it jumps the lines in a strange way, due to the presence of diferent elements, such as images. It happens in other files, like LIPS tutorials, etc. But probably there is a workaround for the next set of documentation, since it not happens in all the files. All the best ! Thank you. -
Documentation PDF copy paste problem
JulioHerrlein replied to JulioHerrlein's topic in Support & Troubleshooting
Thank you. Best ! -
Dear Friends, In many PDF documentation items I found some trouble when copying it from assistant to composer section. Probably due to line breaking formatting, the code sometimes is copied with incomplete lines mixing with complete lines. When copying this: I get this: (setf omn '(e g6 f stacc e ab5 (omn-replace :length 'q omn) => (q g6 f stacc ab5 mp ten c4 (omn-replace :pitch 'c5 omn) => (e c5 f stacc mp ten mf ten (omn-replace :velocity 'p omn) mp ten e c4 mf ten e cs5 ff)) mf ten cs5 ff) ff) => (e g6 p stacc ab5 ten c4 ten cs5) (omn-replace :articulation 'tasto omn) => (e g6 f tasto ab5 mp tasto c4 mf tasto cs5 ff tasto) with different line breaks. All the best ! Julio