Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 07/17/2018 in Posts

  1. 4 points
    JulioHerrlein

    Turing Piano (Julio Herrlein)

    Dear Friends, I'd like to share a composition all made in Opusmodus. The composition is part of the Portfolio of my Doctoral Dissertation. I'd like to thank you so much, Opusmodus and the support of you here in this forum was amazing !! Love you all !! TURING PIANO (Julio Herrlein) Here is the commented code for the First Section: ;;;PART A ;PITCHES – The pitch structure are based on "chevron-like" patterns. This can be related to some Xenakis ideas: the arborescences, the music as a plot idea. (setf patpit (integer-to-pitch (gen-integer-step 0 68 '(1 -2 3 -4 5 -6 7 -8 9 -10 11)))) (setf patpit2 (integer-to-pitch (gen-integer-step 0 68 '(11 -10 9 -8 7 -6 5 -4 3 -2 1)))) ;;; This interval pattern leads to an infinite ascending movement, like the picture below: ;;; After that, I decided to restrict the ambitus of the pattern, otherwise it goes ascending forever. I did the restriction thinking in the hands of the pianist, in a way to not collide or crossing the hands. ;;;After the ambitus restriction, the next step was find some partitions to make some chords for the piece, so each hand have a diferent partition of the chevron-like pattern, like below (setf pitpartition (ambitus '(g3 c6)(chordize-list (gen-divide '(1 1 1 3 1 1 1 2) patpit)))) (setf pitpartition2 (ambitus '(g1 g3)(chordize-list (gen-divide '(2 1 1 1 1 2 1 1 1 1 1 1 1 1) patpit2)))) ;;; Next, i decided on the Rhythms to use. The rhythms are complementary, i.e., each hand plays on the silence of the other, using the following pattern: DIGRESSION: The FORTE NUMBERS are part of my dissertation that makes the conversion of the entire Forte sets onto Rhythms modulo 12. The dissertation (in portuguese) can be downloaded HERE: Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional From pitches to rhythm: rhythmic set theory as a compositional tool. http://hdl.handle.net/10183/179457 Abstract This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser. Here is the rhythm used in Turing Piano (with Forte numbers and rotations) (setf ritmo1 (gen-repeat 10 '(s s -s s s -s -s -s s -s -s s -s s -s -s s -s s -s -s -s s -s))) (setf ritmo1b (length-invert ritmo1 :omn t)) ; DINAMICS: Following the parametric stuff, I decided to set the dynamics, according to the harmonic density, i.e. the more notes, the more louder. (setf din1 (span pitpartition '(p p p ff p mf pp ff))) (setf din2 (span pitpartition2 '(f p p p p ff p p ff pp pp f mf mf))) ;ASSEMBLING of the materials (setf lhmat1 (make-omn :length ritmo1 :pitch (pitch-transpose 4 pitpartition) :velocity din1)) (setf rhmat1 (make-omn :length ritmo1b :pitch (pitch-transpose 4 pitpartition2) :velocity din2)) ;MONTAGE of music blocks (assemblage) (setf pianoassemblerh (assemble-seq lhmat1)) (setf pianoassemblelh (assemble-seq rhmat1)) ;;;SCORE- Layout (def-score Miniatura-pno1 (:key-signature 'atonal :time-signature '(3 4) :tempo 85 :octave-shift '(c2 c6) :layout (grand-layout 'pno :all-accidentals 'all)) (pno :omn (merge-voices lhmat1 rhmat1) :channel 1 :sound 'gm :program 0) ) COMPLETE VIDEO
  2. 4 points
    JulioHerrlein

    FORTE NUMBERS as Rhythms

    Dear Friends In my Doctoral Dissertation, I converted every FORTE number in a modulo 12 Rhythm via time-point-system. There is a complete catalog included (see the link below). It's in portuguese. After Janusz adjusted the Forte numbers to have the inversion, using "a" and "b" to differentiate the prime forms from the inversions, it was easy to convert using codes like this: (setf ch0 (time-point-system (pcs '5-11b :pitch)'s :start 0)) (setf ch1 (time-point-system (pcs '6-33 :pitch)'s :start 1)) (setf ch2 (time-point-system (pcs '7-11b :pitch)'s :start 2)) (setf ch3 (time-point-system (pcs '3-11b :pitch)'s :start 3)) (setf ch4 (time-point-system (pcs '3-11b :pitch)'s :start 0)) The dissertation (in portuguese) can be downloaded HERE: Das alturas ao ritmo : teoria dos conjuntos rítmicos como ferramenta composicional From pitches to rhythm: rhythmic set theory as a compositional tool. http://hdl.handle.net/10183/179457 Abstract This doctoral dissertation is divided into two parts: the first deals a rhythmic set theory, and the second contains the portfolio of compositions developed during this period of studies. This dissertation presents a system of rhythmic organization parallel to the musical set theory pitch class organization FORTE (1973), as well as an adaptation of the time-point-system (BABBITT, 1962). From the standpoint of the traditional set theory, and also from the diatonic set theory, this unified approach allows to estabilish a connecting tissue of basic aspects: from the harmony and chords symbols to the rhythmic organization. At one time, in a complete catalog, the families of pitch class sets and chord symbols are related to their respective rhythmic counterparts. The musical motivation for this research came from my interest in the swinging and groovy repetitive rhythms called timelines (TOUSSAINT, 2013), commonly used in popular music. These dancing timelines have properties similar to those of the diatonic sets, and for this reason, this dissertation presents some properties of the diatonic pitch class sets, drawing a parallel with their rhythmic counterparts. These relationships also appear in the portfolio of compositions, characterizing some procedures used. The portfolio of compositions, which includes a composition for symphony orchestra, is presented form the standpoint of a duality between transparency and opacity. This duality address the essential differences in the audibility of the results from various composition techniques. This study of Rhythmic Set Theory will serve as an analytical approach of my compositional output in popular music, with a systematic way to understant and to extrapolate some aspects already used in my practice as composer and improviser. Here is an analysis of a Wayne Krantz improvisation, using the rhythmic set theory system. Hope you enjoy !! Best, Julio
  3. 3 points
    This is the EASIEST Method to achieve the result !!! FINALLY !! Without the need of Meier's Functions !! (binary-map (row-rotation 0 (gen-binary-row 12 (pcs '3-11)))1/16) YEEEEESSSSS !!! added 10 minutes later (binary-map (row-rotation 1 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation 0 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -1 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -2 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -3 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -4 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -5 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -6 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -7 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -8 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -9 (gen-binary-row 12 (pcs '3-11)))1/16) (binary-map (row-rotation -10 (gen-binary-row 12 (pcs '3-11)))1/16) AND FINALLY, back to que original (binary-map (row-rotation -11 (gen-binary-row 12 (pcs '3-11)))1/16) It works !
  4. 2 points
    You find them all in the snippet document.
  5. 1 point
    In my Dissertation, I worked a way to convert every chord and set in a modulo 12 rhythm, so the entire catalog of FORTE are converted to rhythms, following the steps of Babitt: As a hardcore serialist, Babbitt was interested in converting 12-tone rows to rhythms, in a kind of 12-tone rhythm theory. Below, Wuorinen show one example of a typical Babbitt idea: For the sake of explaining my idea of function, it's important to have in mind that for Babbitt, the order of the row is very important and lead to different results in the pitch to rhythm conversion. Take a look in the example below: In the preceeding figure, the order of the C major triad generate different rhythms. In the example (0 4 7) have a different result from (4 0 7) or (7 0 4). In the system I developed in my Dissertation, the order does NOT matter, since (0 4 7), (7 0 4) or (4 0 7) will result in exactly the same rhythm, as you can see below: In my system, the transposition equals rotation (as well as in Babbitt) And every chord symbol can be transformed in a rhythm: Even voicings can be converted in longer Rhythms (the more spread the voicing, the longer the rhythm): So I did every FORTE SET in the catalog, in this way: Below, you can see the example of the rhythm of the major triad (Forte number 3-11b). In the 1st bar there is the prime form (0 4 7). In each subsequent bar there is a rotation of the first set by 16th note increments. HERE IS THE POINT, for the sake of the new function ! The note C (that I call Rhythmic Fundamental, the "root" of the rhythm) is being displaced, as you can see in the circled notes. THE SET WRAP AROUND ITSELF, always forming 12 time-points (always twelve 16th notes), in a different way from Babbit, where the order of the sets generates longer rhythms. THIS WAY IS MORE INTERESTING For Popular and Minimalist Repetition Music, as well as 12 tone music. In the bottom staff, there are the complementary rhythm of the 3-11b set, i.e., the 9-11a set. In the catalog, every set is presented alongside its complementary set and every set is presented in 3/4 (16th notes) and in 12-8 (with the 8th note as the base value for the increments and rotations). So the function needed would be the one that mirror exacty this kind of conversion, not the tradicional time-point-system conversion, so I could use my catolog inside Opusmodus, connecting the diferent sets, like this: Or even using portions of the Rhythmic Sets, by truncating some of them, like this: In the preceeding example, only parts of the 2 sets are used (9 time points out of 12 in the first and 8 time points out of 12 in the second). So, I hope someone could help me to find a way of implementing this. Maybe Janusz or Stephane could find interesting to develop this kind of idea inside the software. All the best ! Julio Herrlein
  6. 1 point
    Hi Julio, for creating All interval row, you can use the Opusmodus function air and also the two other related functions air-group and rnd-air. For extracting chords etc, my favorite way is to use the function harmonic-progression but several other way are possible. Here's a short exemple of using the function harmonic-progression on All Interval Row: (setf row (air 24 :prime :type :pitch)) => (c4 cs4 eb4 a4 gs4 e4 d4 f4 bb4 g4 b4 fs4) ;; extracting some chords /scales (setf chords1 (harmonic-progression (rnd-number 8 -6 6) row :step 2 :size 4 )) (setf chords2 (harmonic-progression (rnd-number 8 -6 6) row :step '(2 1 2 3) :size 4 :relative t )) (setf chords3 (harmonic-progression (rnd-number 8 -6 6 :seed 4738) row :step '(2 (1 2) 3) :size 4 :relative t :seed 384 )) Have a nice day. S.
  7. 1 point
    AM

    copy-omn-seq

    could be an interesting idea for OPMO? (or already existing?) greetings andré ;;; a function (a sketch - i needed it for my momentary work) which filters ;;; an OMN-sequence in a specific bar, from a specific beat, with a specific ;;; span. (in such a basic version all in quarters (bars/...)) (defun copy-omn-seq (omnseq bar/beat-list &key (measure '(4/4)) (span nil)) (loop for i in bar/beat-list collect (loop repeat (if (null span) (- (/ (car measure) 1/4) (1- (cadr i))) span) for x = (1- (cadr i)) then (incf x) append (nth x (omn-to-measure (nth (1- (car i)) (omn-to-measure omnseq measure)) '(1/4)))))) (setf mat '((e c4 cs4 d4 ds4 e4 f4 fs4 g4) (e c3 cs3 d3 ds3 e3 f3 fs3 g3) (e c6 cs6 d6 ds6 e6 f6 fs6 g6))) (copy-omn-seq mat '((2 3))) ;; bar 2 from beat 3 until end of bar => ((e e3 f3 e fs3 g3)) (copy-omn-seq mat '((1 1)) :span 2) ;; bar 1 from beat 1 for 2 quarters => ((e c4 cs4 e d4 ds4)) (copy-omn-seq mat '((1 2) (2 3) (3 4))) ;; same thing with more then ONE filterings => ((e d4 ds4 e e4 f4 e fs4 g4) (e e3 f3 e fs3 g3) (e fs6 g6)) (copy-omn-seq mat '((1 2) (2 3) (3 4)) :span 1) ;; same - every filtering with span 1 => ((e d4 ds4) (e e3 f3) (e fs6 g6))
  8. 1 point
    The crop function is SOLVED (binary-map (butlast (row-rotation 1 (gen-binary-row 12 (pcs '3-11b)))7)1/16) It's the number 7 as a parameter for the butlast lisp function, after the three parentheses. HERE for the complementary set of the Rhythm (binary-invert) (binary-map (butlast (binary-invert (row-rotation 1 (gen-binary-row 12 (pcs '3-11b))))4) 1/16) Best, Julio
  9. 1 point
    Dear Janusz, Hope it can be useful. It will be great to have this new function ! Thank you ! With a dedicated function, all this can be more elegant, for sure ! An easier workflow. All the code below can be embbeded in only one code: (binary-map (row-rotation -7 (gen-binary-row 12 (pcs '3-11)))1/16) all this can be something like (pcs-to-rhythm (pcs '3-11) 1/16) with optional arguments, like :rotation - rotation of the series wrapping around itself. :displace - put a rest of, for ex, 1/16 before the set ;legato - t, for full value or nil (default) for normal operation (each value equals the quantization (pcs-to-rhythm (pcs '3-11) 1/16) (pcs-to-rhythm (pcs '3-11) 1/16 :legato t) only the rhtyhm (without the notes) :mod - defalt is the 12 time point cycle, but optionally, any cycle rotation, like 16, for example. :crop - assuming 12 time points as the default cycle, the crop option let you take portions of the sets to use. It's easy, just make something to cut the last parts of the binary result. (pcs-to-rhythm (pcs '3-11) 1/16 :crop 8 ) will result in: (pcs-to-rhythm (pcs '3-11) 1/16 :crop 8 :displace 1) (pcs-to-rhythm (pcs '3-11) 1/16 :crop 8 :rotate 1) The crop option helps using portions of the Rhythmic Sets, by truncating some of them, like this: In the preceeding example, only parts of the 2 sets are used (9 time points out of 12 in the first and 8 time points out of 12 in the second). Best ! Julio
  10. 1 point
    AM

    change-time-structures

    ;;; CHANGE-TIME-STRUCTURES ;;; works okay, but not exactly precise because of rhy-to-integer, which is not very easy in some cases ;;; this function changes basic-rhy-structures (if it's all the time perhaps in x/32) ;;; to other/changing sections. the lengths/rests will be rounded like in LENGTH-RATIONAL-QUANTIZE ;;; rhy+span => '((32 2) (44 7)) => means in 32 three values, in 44 seven values (defun change-time-structure (omnseq rhy+span &key (basic-rhy 32) (round 1/4)) (let* ((intseq (loop for i in (omn :length (flatten omnseq)) collect (* i basic-rhy))) (rhyseq (mapcar #'car rhy+span)) (spanseq (mapcar #'cadr rhy+span)) (divided-intseq (gen-divide spanseq intseq))) (length-rational-quantize (flatten (gen-length divided-intseq rhyseq)) :round round))) (change-time-structure '(2/44 -2/44 3/44 5/44 6/44) '((32 2) (20 2) (28 3)) :basic-rhy 44) => (1/16 -1/16 -1/8 3/20 1/4 -1/10 3/14 -1/28) (change-time-structure '(2/32 -2/32 3/32 5/32 6/32) '((20 2) (44 2) (28 3)) :basic-rhy 32) => (1/10 -1/10 -1/20 3/44 5/44 -3/44 3/14 -1/28) could be done better -> go for it 🙂 greetings andré
  11. 1 point
    The function is already there: time-point-system (setf row '(bb4 a4 gs4 as4 cs5 e5 d4 f4 g4 eb4 fs4 c5)) (time-point-system row 's :start 0) => ((h bb4 tie e. s a4 tie) (h a4 tie e e gs4) (e. bb4 cs5 q. e5 tie) (q e5 e. d4 e f4 e. g4 tie) (q g4 tie s e. eb4 q fs4 tie) (e fs4 h c5 tie e))
  12. 1 point
    JulioHerrlein

    Andre Meier's Lenght-Staccato

    Sometime ago, I was searching for a function that would be the exact opposite function of length-legato. Lenght-legato turns this: onto this: I wanted exactly the reverse: Changing this: to this: In the ocasion, Andre Meier came with this code below: Janusz, do you think a good idea to include a function like this in the library ? Or there is also something similar that I dont know ? I still need it in a easy way... Best, Julio (defun length-staccato (n alist) (let ((newlengths) (new-omn (omn-merge-ties (flatten alist))) (time-sign (get-time-signature alist))) (progn (setf newlengths (loop for i in (omn :length new-omn) when (> i 0) append (if (= n i) (list i) (list n (* -1 (abs (- i n))))) else collect i)) (if (omn-formp alist) (omn-to-time-signature (make-omn :length newlengths :pitch (omn :pitch new-omn) :velocity (omn :velocity new-omn) :articulation (omn :articulation new-omn)) time-sign) newlengths)))) (length-staccato 1/16 '(q -q q q)) (length-staccato 1/16 '(q e4 mp q tasto q -q q q)) (length-staccato 1/16 '((e. c4 eb4 fs4 a4 tie) (s a4 e. cs4 e4 g4 e bb4 tie) (e bb4 e. d4 f4 gs4 s b4)))
  13. 1 point
    Very interesting. Thank you for sharing. S.
  14. 1 point
    loopyc

    FORTE NUMBERS as Rhythms

    Eight hours later! Spent all day reviewing related Opusumodus functions/documentation and researching your concepts and references...a very satisfying time in furtherance of my ongoing Opusmodus education ;-) Thanks again Julio for the inspiration, and Janusz for ALREADY including/implementing so many useful tools related to these subjects :)
  15. 1 point
    loopyc

    FORTE NUMBERS as Rhythms

    Thank you very much for taking the time to share ;-) Please feel free to continue to do so as I am most interested in this subject of Timepoint/Rhythm, especially as you apply your research to Opusmodus coding applications/implementations :)
  16. 1 point
    loopyc

    Turing Piano (Julio Herrlein)

    Fantastic,very insightful....thanks for sharing! Visual patterns as compositional approach are one of my interests, as is the idea of organizing rhythm into 'scales' ;-) Please inform if an English translation of main dissertation becomes available (though the excellent illustrations and footnotes in English in current version provide plenty of food for thought as it is, especially as many of your references are on already on my bookshelf ;-))
  17. 1 point
    opmo

    Turing Piano (Julio Herrlein)

    Thank you for great presentation.
  18. 1 point
    opmo

    FORTE NUMBERS as Rhythms

    Great solo! Excellent analysis and use of PSC and TPS.
  19. 1 point
    Eno/Byrne-esque 'Beat-Betas' as audition tape (i.e. 60 second continuous excerpts). Opusmodus generated MIDI...Mixed as "prototypes" in Logic 9.1.8,'auditioned' in iTunes 'live' to "Audio Hijack Pro".
  20. 1 point
    Wow, thank you...that means a lot coming from you :) Even at my extremely novice level with Opusmodus, the possibilities of what I can accomplish towards my own goals (experimental electronics) are seemingly endless :) The combination of the online documentation and the continuing insights/inspiration derived from this forum and it's generous and talented contributors....is making this first leg of my learning Opusmodus an extremely exciting and rewarding period of education...and as I am able generate and collect these audio materials into a personal library, no doubt Opusmodus will allow me to develop unique approaches to electronic musiking which is my primary driving force ;-)
  21. 1 point
    Not much, but happy to share. Somedays, I just set up a live audio host and some interesting instruments and samples, and then 'browse' the Opusmodus documentation. In these sessions, I am combining a playful way to add to my knowledge while generating audio materials via audition and MIDI Export for my library to be used as later combinatory/compound materials. As the title suggests, these are just live experimentations with 'vector-to-length', along with variations on a theme to the value of 'vector-smooth' (from min to max value over session period). ;; (setf vector (gen-white-noise 10000)) (setf v2l-1 (vector-to-length '1/128 -3 13 vector)) (setf v2l-s-1 (vector-to-length '1/128 -3 13 (vector-smooth 0.1 vector))) (setf chromatic-12 '(c2 cs2 d2 ds2 e2 f2 fs2 g2 gs2 a2 as2 b2)) (setf chromatic-16 '(c2 cs2 d2 ds2 e2 f2 fs2 g2 gs2 a2 as2 b2 c3 cs3 d3 ds3)) ;;----------------------------- (setf voice-1 (make-omn :length (length-weight v2l-s-1 :weight '(34 1)) :pitch (span v2l-s-1 chromatic-16) :velocity (messiaen-permutation '(ff f mf mp p)))) ;;----------------------------- ...and with pitch-figurate and additional permutation: (setf voice-1 (make-omn :length (length-weight v2l-s-1 :weight '(67 1)) :pitch (span v2l-s-1 (pitch-figurate 6 chromatic-12 :interval (messiaen-permutation '(1 -1 2 -2 3 -3 4 -4 5 -5)))) :velocity (messiaen-permutation (messiaen-permutation '(ff f mf mp p))))) The pitch list is for the sequential triggering 'sample slices' via New Sonic Arts 'Vice', each slice corresponding to a specific pitch (thus the pitch-figurate serves to add controllable variation of slice triggering). The exercise is focused on rhythm, but in the context of untraditional/non-percussion materials ;-) hth ...
  22. 1 point
    This example illustrate how this could be done: (metronome :omn (metronome phrase-lh) :channel 16 :sound 'gm :program 'woodblock) Function: (defun metronome (sequence &key (pitch 'c4) (velocity 'ff)) (let* ((ts (get-time-signature sequence)) (len (loop for i in ts collect (gen-repeat (last1 i) (gen-repeat (car i) (list (/ 1 (second i))))))) (vel (loop for i in ts collect (append (list velocity) (gen-repeat (1- (car i)) (list 'mf)))))) (make-omn :length len :pitch (list pitch) :velocity vel))) (setf sequence '((-h.) (-e g3cs3 mp arp fs3b2 arp-down g3as2 arp-down gs3as2 arp) (-e - fs3c3 f fs3as2 g3cs3 a3as2 gs3c3 gs3cs3) (-q._q))) (metronome sequence) => ((q c4 ff mf c4) (e c4 ff mf c4 c4 c4) (q c4 ff mf c4 c4) (e c4 ff mf c4 c4 c4)) Score example: (setf phrase-rh '((h. cs3gs2as5cs5cs4as3gs3g3as4gs4g4 f arp) (-e g5d5g4 mp arp fs5ds5fs4 arp-down g5ds5g4 arp-down gs5e5gs4 arp) (-e - a5d5 f c6f5 d5b5 g5d5 gs5ds5 gs5e5) (-e h c6d5cs5g4cs4g3d3 p arp-down))) (setf phrase-lh '((-h.) (-e g3cs3 mp arp fs3b2 arp-down g3as2 arp-down gs3as2 arp) (-e - fs3c3 f fs3as2 g3cs3 a3as2 gs3c3 gs3cs3) (-q._q))) (setf ts (get-time-signature phrase-lh)) (def-score arpeggiation-chords-3 (:key-signature 'chromatic :time-signature ts :tempo 60 :layout (harp-grand-layout '(rh lh))) (metronome :omn (metronome phrase-lh) :channel 16 :sound 'gm :program 'woodblock) (rh :omn phrase-rh :channel 1 :sound 'gm :program 'orchestral-harp) (lh :omn phrase-lh) ) I will add the METRONOME function to the next release. JP
  23. 1 point
    This is a great learning experience. Both SB and AM thank you so much!!!! Worked on page 90 of Slonimsky's book to further discover what can be done with make-scale and came up with the following: ;; Slonimsky 648 (make-scale 'c4 14 :alt '(13 -11) :type :pal) ;; Slonimsky 649 (make-scale 'c4 14 :alt '(13 13 -11 -11) :type :pal) ;; Slonimsky 650 (make-scale 'c4 13 :alt '(13 13 13 -11 -11 -11) :type :pal) ;; Slonimsky 651 (make-scale 'c4 13 :alt '(1 13 -11) :type :pal) ;; Slonimsky 652 (make-scale 'c4 13 :alt '(13 -11 1) :type :pal) ;; Slonimsky 653 (make-scale 'c4 13 :alt '(13 1 -11) :type :pal) ;; Slonimsky 654 (make-scale 'c4 13 :alt '(1 1 13 1 1 -11) :type :pal) ;; Slonimsky 655 (make-scale 'c2 13 :alt '(11 -1 11 -1) :type :pal) ;; Slonimsky 656 - has mismatch with original -> to be checked why (make-scale 'c2 14 :alt '(11 11 -13 11) :type :pal) ;; Slonimsky 657 - has mismatch with original -> to be checked why (make-scale 'c2 14 :alt '(11 11 11 11 -13 -13 -13) :type :pal) It makes my day :-) Wim Dijkgraaf
  24. 1 point
    AM

    Beginner: Slonimsky 648 as a function

    in lisp -> create OMN with (midi-to-pitch)... (setq half-row (loop repeat 13 with interval with stack = 60 with cnt = 0 when (oddp cnt) do (setq interval 13) when (evenp cnt) do (setq interval -11) when (= cnt 0) collect stack else collect (setq stack (+ stack interval)) do (incf cnt))) (midi-to-pitch (append half-row (reverse (butlast half-row))))
  25. 1 point
    Hi, may be this can do what you want: (make-scale 'c4 14 :alt '(13 -11) :type :pal) SB.
×