Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 10/16/2018 in all areas

  1. 5 points
    This is for generating some jazz licks in the style of the LINEAR EXPRESSIONS, by jazz guitarist PAT MARTINO. The rhythm slots of the example contain the same 16th value, but it can be worked out as Rhythmic Cells. I was testing straight 16th lines. https://www.amazon.com/Linear-Expressions-Pat-Martino/dp/1423460898/ref=sr_1_1?ie=UTF8&qid=1539901867&sr=8-1&keywords=linear+expression+martino ;;; PAT MARTINO LINEAR Expressions Lick Generator JAZZ IDIOMS (setf r0 '(s) r1 '(s s s s) r2 '(s s s s s s s s) r3 '(s s s s) r4 '(s s s s) r5 '(s s s s s s s s) r6 '(s s s s s s s s) r7 '(s s s s s s s s) r8 '(s s s s s s s s) r9 '(s s s s s s s s) r10 '(s s s s s s s s)) (setf p0 '(g3 a3 bb3 c4 cs4 d4 f4 d4) p1 '(e4 fs4 g4 a4 c5 a4 bb4 d5) p2 '(f5 a5 ab5 e5 g5 f5 e5 d5) p3 '(c5 a4 bb4 d5 a4 bb4 a4 g4) p4 '(a3 bb3 d4 f4 a4 bb4 a4 ab4) p5 '(g4 a4 bb4 c5 d5 f5 a5 c6) p6 '(bb5 d5 f5 a5 g5 gb5 f5 g5) p7 '(e5 f5 e5 d5 c5 a4 g4 a4) p8 '(d4 e4 fs4 a4 fs4 g4 a4 c5) p9 '(a4 bb4 d5 f5 a5 bb5 a5 ab5) p10 '(g5 f5 d5 ds5 e5 g5 bb5 d6)) (setf v0 '(f) v1 '(mp) v2 '(f) v3 '(pp) v4 '(p f mf) v5 '(fff) v6 '(fff) v7 '(mf) v8 '(p) v9 '(f) v10 '(ff)) (setf sec (gen-repeat 10 (rnd-unique 12 '(0 1 2 3 4 5 6 7 8 9 10) ))) (setf r-list (assemble-section 'r sec)) (setf p-list (assemble-section 'p sec)) (setf v-list (assemble-section 'v sec)) (setf phrases (make-omn :length r-list :pitch p-list :velocity v-list)) (def-score collage (:key-signature 'atonal :time-signature '(2 4) :tempo 144 :layout (piano-grand-layout 'piano)) (piano :omn phrases :channel 1 :sound 'gm :program 0) )
  2. 4 points
    The future pitch (v1.4) will look like: c4 c4[50] fs4[50] d6[-30] etc... chord c4fs5[50] Every cents value which falls into microtonal notation (50, 30 -50 -75 ...) will be part of the notation all others will be written above the note: -43c
  3. 4 points
    Andy

    IDE..powerful stuff

    So I didn't really know what an IDE was..it's an Integrated Development Environment..is that right? Well anyhow I just wanted to share my enthusiasm for Opusmodus' idea of an integrated workspace...being able to have pdf books available full screen with a shortcut is amazing...and pictures and audio etc. I am a big fan of Wooden Books for instance and bam..there they are in my composing space for reference. I'm kind of thinking this is how all "composing" software should be..but mostly now it seems to me to be about a graphical interface that is irrelevant alongside a multitrack recorder paradigm. Anyhow happy to be on this journey (())
  4. 4 points
    opmo

    Circle-Pitch-Plot

    The CIRCLE-RHYTHM-PLOT will use dash circle ("time like") for a better distinction between the CIRCLE-PITCH-PLOT.
  5. 3 points
    AM

    MIDI-pitch-bend-messages

    I do not work / almost never with DAW's. OPMO (before pwgl) and sibelius. i think the conTimbre library is much better - not all samples are quite perfect, but the selection of playing techniques eg. in the strings or in the drums is just very good. my last piece was for ensemble, virtual conductor and e-player (a piece whitch generates its form in quasi-realtime (completely new every time) - by sochastic/markov-procedures) - it was possible to play the add-SCORE from the library directly at the concert (midi-files read out with flexible tempo and played on CT) without any problems - mix extremely well with the live instruments. I do not think the library is very user-friendly, but I do not produce music (i compose, which - in my view - is a different kind of thinking), so that's not so important for me. but it contains many extra features and (or information about sound analysis (and apparently a direct access to LISP to make algorithmic orchestrations) as I said, not quite smart designed, but the possibilities (compared to the IRCAM library) I feel as much bigger. CT can now also play well from SIBELIUS / FINALE over VST. so I would be much happier if CT ran so well (with microtonal stuff) on OPUSMODUS.
  6. 1 point
    Maybe this is what you are looking for: (setf sec (flatten (gen-eval 10 '(rnd-unique 12 '(0 1 2 3 4 5 6 7 8 9 10)))))
  7. 1 point
    AM

    write tuning-cents into omn / extract them

    with these functions you could write your CENTS for tuning directly into OMN-attributes, and extract it afterwards 1. generate by add-cents-tuning-to-text-atrributes the cent values into text-attributes (only one time), you could decide if it will be shown in the score "as CENTS or as FLOAT" 2. now you could write your CENTS for tuning into OMN-attributes like 50ct, -34ct ...also in combination with other text-attributes legno+50ct, pizz+-65ct, -45ct+batt 3. you could EXTRACT afterwards your LIST for TUNING directly from OMN by get-tuning-from-omn*.if an EVENT has no cent-attribute it will be unchangend (= 0 cents) ;;; ------------------------------------------------------------------------------------------------------------------- ;;; ------------------------------------------------------------------------------------------------------------------- ;;; this function adds CENTS or FLOATS to text-attributes, in this way you can notate ;;; - have a look how it's written in the score -> all combinations of attributes possible ;;; ------------------------------------------------------------------------------------------------------------------- ;;; ------------------------------------------------------------------------------------------------------------------- (defun add-cents-tuning-to-text-atrributes (&key (centlist nil) (type nil)) (loop for i in (loop for x in (if (null centlist) (append (loop for i from 0 upto 99 collect i) (loop for i from 1 upto 99 collect (neg! i))) centlist) collect (compress (list x 'ct))) append (add-text-attributes (list i (write-to-string (if (equal type :float) (float (/ (append (compress (if (equal (car (explode i)) '-) (if (= (length (explode i)) 5) (filter-first 3 (explode i)) (filter-first 2 (explode i))) (if (= (length (explode i)) 4) (filter-first 2 (explode i)) (filter-first 1 (explode i))) ))) 100)) i)))))) ;;; EXAMPLES (add-cents-tuning-to-text-atrributes :type :float) ;; have a look to notation: cmd3 (-q -q e c4 fff q c4 mf 50ct e c4 mf -40ct e c5 ff) (add-cents-tuning-to-text-atrributes :type :cents) ;; cents are written ;; have a look to notation: cmd3 (-q -q e c4 fff q c4 mf 50ct e c4 mf -40ct e c5 ff) ;;; ------------------------------------------------------------------------------------------------------------------- ;;; ------------------------------------------------------------------------------------------------------------------- ;;; this function get out all notated microtones for TUNING ;;; if there is nothing written it will be 0 cents (0) ;;; you can combine all kinds of attributes ;;; ------------------------------------------------------------------------------------------------------------------- ;;; ------------------------------------------------------------------------------------------------------------------- (defun memberp (n liste) (not (equal 'nil (member n liste)))) (defun find-duplicates (lst) (cond ((null lst) '()) ((member (car lst) (cdr lst)) (cons (car lst) (find-duplicates (cdr lst)))) (t (find-duplicates (cdr lst))))) (defun get-tuning-from-omn* (omnlist centlist) (loop for i in (single-events (length-rest-remove omnlist)) with n = 0 when (not (null (find-duplicates (append (disjoin-attributes (car (last i))) centlist)))) do (setf n (float (/ (append (compress (remove-if-not #'numberp (explode (car (find-duplicates (append (disjoin-attributes (car (last i))) centlist))))))) 100))) and collect (if (equal (car (explode (car (find-duplicates (append (disjoin-attributes (car (last i))) centlist))))) '-) (* -1 n) n) else collect 0)) ;;; EXAMPLES (setf centlist (add-cents-tuning-to-text-atrributes :type :float)) ;;; evaluate this and you will get the tuning-list with all combinations of attributes (get-tuning-from-omn* '(-q -q e c4 fff q c4 mf legno+50ct+num1 e c4 mf -50ct+legno+batt e c5 ff pizz+-34ct) centlist) => (0 0.5 0.5 -0.34) (get-tuning-from-omn* '(-q -q e c4 fff -34ct+pizz q c4 mf legno+50ct e c4 mf -50ct+legno+batt e c5 ff pizz+-34ct) centlist) => (-0.34 0.5 -0.5 -0.34) (get-tuning-from-omn* '(-q -q e c4 fff -34ct+pizz+num11 q c4 mf legno+50ct e c4 mf -50ct+legno+batt e c5 ff pizz+-34ct) centlist) => (-0.34 0.5 -0.5 -0.34) ;;; cmd3 for LAYOUT/SCORE (-q -q e c4 fff -34ct+pizz+num11 q c4 mf legno+50ct e c4 mf -50ct+legno+batt e c5 ff pizz+-34ct) (-q -q e c4 fff q c4 mf legno+50ct+num1 e c4 mf -50ct+legno+batt+num2 e c5 ff pizz+legno+-34ct)
  8. 1 point
    AM

    write tuning-cents into omn / extract them

    another EXAMPLE, with mapped pitches/cents ;;; ----------------------------------------------------------------------------------------- ;;; MAPPED CENTS/PITCHES ;;; ----------------------------------------------------------------------------------------- ;(setf pitches (rnd-repeat 100 '(d1 c2 g3 c4 d4 e4 f4 g4 gs4 bb4 c5 d5 e5 f5 g5 gs5 bb5))) (setf pitches (rnd-repeat 100 '(e4 f4 g4 gs4 bb4 c5 d5 e5 f5 g5 gs5 bb5))) (setf centlist (replace-map '(((bb4 bb5) -31ct) ((c4 c5 c2) 0ct) ((d1 d4 d5) 2ct) ((e4 e5) -14ct) ((f4 f5) 50ct) ((g3 g4 g5) 5ct) ((gs4 gs5) 41ct)) pitches :otherwise '0ct)) (setf omn-seq (make-omn :length (quantize (gen-white-noise 50) '(2 3 5) :scale 0.8 :tolerance 0.02) :pitch (filter-repeat 1 pitches) :span :pitch :velocity (vector-to-velocity 0.1 0.99 (gen-white-noise 50)) :articulation centlist)) ;;; generating SCORE/MIDI (def-score microtonal (:title "microtonal" :key-signature 'atonal :time-signature '(4 4) :tempo 160) (instr :omn omn-seq :channel 1 :tuning (get-tuning-from-omn* omn-seq centlist) :sound 'gm :program 'acoustic-grand-piano))
  9. 1 point
    AM

    write tuning-cents into omn / extract them

    EXAMPLE, very easy to use... ;;; EXAMPLE HOW TO USE <get-tuning-from-omn*> (setf centlist (add-cents-tuning-to-text-atrributes :type :float)) ;;; generating a omn-seq with mictronoes (by using articulation-SLOT (setf omn-seq (make-omn :length (quantize (gen-white-noise 50) '(2 3 5) :scale 1.4 :tolerance 0.02) :pitch (filter-repeat 1 (vector-to-pitch '(c2 b6) (gen-white-noise 50))) :span :pitch :velocity (vector-to-velocity 0.1 0.99 (gen-white-noise 50)) :articulation (rnd-repeat 50 '(0ct 7ct -5ct 16ct -31ct -14ct 50ct -50ct)))) ;;; generating SCORE/MIDI (def-score microtonal (:title "microtonal" :key-signature 'atonal :time-signature '(4 4) :tempo 120) (instr :omn omn-seq :channel 1 :tuning (get-tuning-from-omn* omn-seq centlist) :sound 'gm :program 'acoustic-grand-piano))
  10. 1 point
    The error is a known problem when you copy and past from html pages. Go to documents and use the original score file. No errors here.
  11. 1 point
    AM

    add tuning float to single-events?

    dear janusz is there an OPMO-solution to put the FLOAT for tuning in every event (with pitch) . some times ago i coded such an "add-data-to-event"-function for my own, but a OPMO-one would be more professional 🙂 greetings andré
  12. 1 point
    Quite simple to do: (setf soprano '((-h. q g4) (q g4 a4 bb4 c5) (h. d5 fermata q d5) (q d5 c5 bb4 c5) (h. a4 fermata q a4) (q bb4 c5 d5 d5) (h c5 q d5 fermata d5) (q bb4 c5 d5 d5) (h c5 q bb4 fermata d5) (q f5 d5 d5 d5) (h c5 q c5 fermata c5) (q d5 c5 bb4 c5) (h a4 q g4 fermata))) (setf alto '((-h. q d4) (q eb4 e e4 gb4 q g4 g4) (h. gb4 fermata q gb4) (q g4 e g4 gb4 q g4 a4) (h. gb4 fermata q gb4) (q g4 a4 bb4 bb4) (q bb4 e a4 g4 q a4 fermata gb4) (q d4 c4 f4 g4) (q g4 e f4 eb4 q d4 fermata f4) (q f4 e f4 g4 q a4 g4) (e g4 f4 g4 e4 q f4 fermata e f4 eb4) (q d4 e e4 gb4 q g4 g4) (q g4 gb4 d4 fermata))) (setf tenor '((-h. q bb3) (q c4 c4 d4 eb4) (h. a3 fermata q a3) (q bb3 c4 d4 eb4) (h. d4 fermata q d4) (q d4 eb4 f4 f4) (q g4 e f4 eb4 q d4 fermata a3) (q bb3 e f4 eb4 d4 c4 q bb3) (q bb3 a3 f3 fermata bb3) (q c4 d4 e d4 c4 q bb3) (e bb3 a3 bb3 g3 q a3 fermata a3) (q bb3 a3 e g3 bb3 q eb4) (e d4 s c4 bb3 q c4 b3 fermata))) (setf bass '((-h. q g3) (e c4 bb3 q a3 e g3 f3 q eb3) (h. d3 fermata q c3) (q bb2 a2 g2 c3) (h. d3 fermata q d3) (q g3 e f3 eb3 d3 c3 q bb2) (q eb3 f3 gb3 fermata d3) (q g3 a3 e bb3 a3 g3 f3) (q eb3 f3 bb2 fermata bb3) (q a3 bb3 gb3 e g3 f3) (q e3 c3 f3 fermata f3) (q bb2 e c3 d3 q eb3 e d3 c3) (h d3 q g2 fermata))) (def-score bach-bwv-0005 (:title "Bach, BWV-0005" :composer "J. S. Bach" :key-signature '(g min) :time-signature '(4 4) :tempo 96 :layout (piano-layout '(soprano alto) '(tenor bass))) (soprano :omn soprano :channel 1 :sound 'gm :program 0) (alto :omn alto :channel 2) (tenor :omn tenor :channel 3) (bass :omn bass :channel 4) ) 2nd possibility: ;;;--------------------------------------------------------- ;;; Bach, BWV 0005 ;;;--------------------------------------------------------- (setf soprano '((-h. q g4) (q g4 a4 bb4 c5) (h. d5 fermata q d5) (q d5 c5 bb4 c5) (h. a4 fermata q a4) (q bb4 c5 d5 d5) (h c5 q d5 fermata d5) (q bb4 c5 d5 d5) (h c5 q bb4 fermata d5) (q f5 d5 d5 d5) (h c5 q c5 fermata c5) (q d5 c5 bb4 c5) (h a4 q g4 fermata))) (setf alto '((-h. q d4) (q eb4 e e4 gb4 q g4 g4) (h. gb4 fermata q gb4) (q g4 e g4 gb4 q g4 a4) (h. gb4 fermata q gb4) (q g4 a4 bb4 bb4) (q bb4 e a4 g4 q a4 fermata gb4) (q d4 c4 f4 g4) (q g4 e f4 eb4 q d4 fermata f4) (q f4 e f4 g4 q a4 g4) (e g4 f4 g4 e4 q f4 fermata e f4 eb4) (q d4 e e4 gb4 q g4 g4) (q g4 gb4 d4 fermata))) (setf tenor '((-h. q bb3) (q c4 c4 d4 eb4) (h. a3 fermata q a3) (q bb3 c4 d4 eb4) (h. d4 fermata q d4) (q d4 eb4 f4 f4) (q g4 e f4 eb4 q d4 fermata a3) (q bb3 e f4 eb4 d4 c4 q bb3) (q bb3 a3 f3 fermata bb3) (q c4 d4 e d4 c4 q bb3) (e bb3 a3 bb3 g3 q a3 fermata a3) (q bb3 a3 e g3 bb3 q eb4) (e d4 s c4 bb3 q c4 b3 fermata))) (setf bass '((-h. q g3) (e c4 bb3 q a3 e g3 f3 q eb3) (h. d3 fermata q c3) (q bb2 a2 g2 c3) (h. d3 fermata q d3) (q g3 e f3 eb3 d3 c3 q bb2) (q eb3 f3 gb3 fermata d3) (q g3 a3 e bb3 a3 g3 f3) (q eb3 f3 bb2 fermata bb3) (q a3 bb3 gb3 e g3 f3) (q e3 c3 f3 fermata f3) (q bb2 e c3 d3 q eb3 e d3 c3) (h d3 q g2 fermata))) (def-score bach-bwv-0005 (:title "Bach, BWV-0005" :composer "J. S. Bach" :key-signature '(g min) :time-signature '(4 4) :tempo 96 :layout (piano-layout 'lh 'rh)) (lh :omn (dissolve-voices (merge-voices soprano alto)) :channel 1 :sound 'gm :program 0) (rh :omn (dissolve-voices (merge-voices tenor bass)) :channel 2) ) Best, JP
  13. 1 point
    AM

    how to number pitches

    this is the simple solution... (defun add-numbers-to-text-attributes (a b) (loop for i from a to b append (add-text-attributes (list (compress (list 'nr i)) (write-to-string i))))) (add-numbers-to-text-attributes 12 23) => (nr12 nr13 nr14 nr15 nr16 nr17 nr18 nr19 nr20 nr21 nr22 nr23)
  14. 1 point
    I own the 2 library and for me ConTimbre is indeed much better (much complete) than IRCAM instruments lib. SB.
  15. 1 point
    opmo

    MIDI-pitch-bend-messages

    Great piece, thank you for sharing. I will download the CT demo version and will see what can be done.
  16. 1 point
    AM

    respell/enharmonic change

    code it, julio!! 🙂
  17. 1 point
    torstenanders

    gen-rotate extension

    > i'm musician but only an "amateur programmer" I think the most important part is the musical knowledge encoded, and that your definitions work as described. How that is implemented is secondary for its use for others. (Clean implementations can make a big difference, though, for the maintainability of your code.) > I have no idea how to do that professionally with GitHub I am pretty busy at this stage of the academic year, but in a few weeks, I would be happy to help you with that, if you want. What I cannot do, is documenting your definitions, but I can also show you, once you added some documentation in the form of doc strings added to your function etc. defs, how to automatically turn that into HTML docs. > as ORDINARY text - no problem. perhaps i will share it like that on my website... If such a straightforward approach makes you feel you are more in control, then why not? However, in your place, I would add some doc strings that explain what a function is supposed to do. That makes it also more easy for yourself to re-use these functions at some later time. Best, Torsten
  18. 1 point
    opmo

    Circle-Pitch-Plot

    (-e e q e q e) (e q e q q)
×