Jump to content

All Activity

This stream auto-updates     

  1. Last week
  2. Dear Janusz, This is a really cool feature I was looking for ! There is a lot of interesting transformations and graphs related to this subject, like this, compiled by my friend Ciro Visconti, who studied with Straus: THE FAMOUS "CUBE DANCE" PARSIMONIOUS TRANSFORMATIONS OF 4-NOTE CHORDS BORETZ SPIDER POWER TOWERS And so on, all related to the basic tonnetz transformations. A good idea is thinking how to model also four note structures. All the best ! Julio
  3. Following our successful presentation in the Museo di Storia Naturale in Venice on the 7th December, Achim Bornhoeft and I spent some time talking and playing with the Neo-Riemann theory with an outcome of a diagram and a function. This will be part of the next release. Post-Riemann Transformations on a C major triad One step transformation (basic transformations): P (parallel) R (relative) L (leading) Two step transformations: Parallel: PR and PL Relative: RL and RP Leading: LR and LP Three step transformations: Parallel: PLR and PRL Relative: RLP and RPL Leading: LPR and LPR Reflection: PLR and RLP are equal. PRL and LRP are equal. RPL and LPR are equal. Examples: (tonnetz 'c4e4g4 '(p p r r l l)) => (c4e4g4 c4eb4g4 c4e4g4 c4e4a4 c4e4g4 b3e4g4 c4e4g4) (tonnetz '(c4 e4 g4) '(p p r r l l)) => ((c4 e4 g4) (c4 eb4 g4) (c4 e4 g4) (c4 e4 a4) (c4 e4 g4) (b3 e4 g4) (c4 e4 g4)) (tonnetz 'e4g4b4 '(l r l r p l r l r p)) => (e4g4b4 e4g4c5 e4a4c5 f4a4c5 f4a4d5 fs4a4d5 fs4a4cs5 e4a4cs5 e4gs4cs5 e4gs4b4 e4g4b4) (tonnetz 'ab3c4eb4 '(p l p l p l p l)) => (ab3c4eb4 gs3b3eb4 gs3b3e4 g3b3e4 g3c4e4 g3c4eb4 gs3c4eb4 gs3b3eb4 gs3b3e4) (tonnetz 'ab3c4eb4 '(pl pl pl pl)) => (ab3c4eb4 gs3b3e4 g3c4e4 gs3c4eb4 gs3b3e4) (tonnetz 'c4e4g4 '(p r p r p r p r)) => (c4e4g4 c4eb4g4 bb3eb4g4 bb3eb4fs4 bb3cs4fs4 a3cs4fs4 a3cs4e4 a3c4e4 g3c4e4) (setf moves (rnd-order '(p l r lr lp rp rl pr pl plr prl rpl) :seed 26)) => (rp rl rpl pr prl lr r p plr pl lp l) (tonnetz 'c4e4g4 moves) => (c4e4g4 cs4e4a4 d4fs4a4 eb4fs4bb4 eb4g4c5 f4a4c5 e4g4c5 e4a4c5 e4a4cs5 f4a4d5 fs4a4cs5 f4a4d5 f4bb4d5) (setf transitions '(p l r lr lp rp rl pr pl plr prl rpl prlpr lrplprpp)) (setf rnd-transition (rnd-sample 15 transitions :seed 750989)) => (prlpr r r p pl pl lrplprpp lr prlpr rpl lp rl prl rl rpl) (tonnetz 'ab3c4eb4 rnd-transition)) => (ab3c4eb4 g3c4eb4 g3bb3eb4 g3c4eb4 g3c4e4 gs3c4eb4 gs3b3e4 f3bb3d4 f3a3c4 e3a3c4 eb3gs3c4 e3g3c4 f3a3c4 eb3g3c4 d3g3bb3 cs3fs3bb3) (tonnetz '(c maj) '(plp rpr lpl rpr lpl lpl rprp lpl)) => (c4e4g4 b3eb4gs4 a3d4fs4 bb3cs4f4 gs3b3e4 g3c4eb4 gs3b3e4 bb3d4f4 a3cs4fs4)
  4. it could work like this... because of the RANGE of the "chromatic mapping of your gen-sin", you have to set :root d3, otherwise you will get pitches like "a-1", which is not possible. so you have to shift your root to d3. (tonality-map '(phrygian :root d3) pitchvec) i never used <tonality-map> before, i just read the documentation of the function - so it's quiet simple greetings andré
  5. so far it works, thank you! but where can i define the root/base note of the phrygian-mode? ah, i found it. thats is done by the pitch-transpose. so whatever tonality-map does, its always based on "c" as the root?
  6. you could do it like this, check the function TONALITY-MAP (pitch-transpose 2 (tonality-map '(phrygian :map step) pitchvec)) but mapping on (other) tonalities could be musically a bit tricky - perhaps you have to "eliminate some pitch repetitions" (has to do with quantification), or sometimes you have some troubles with the ambitus (that's the reason why i added <pitch-transpose>)... but perhaps there are some other solutions...? greetings andré
  7. Hi there, i'm a excited beginner with OM! Just exploring and modifying the turotials. One Question: What would be a good approach to sort the notes which are generated from the snippet below to, say, a scale. In other words: The outoot below is chromatic. How can i turn it into a scale, eg. d-phrygian) Thank you! (setf size 60) (setf vector (gen-sine size 1 '(0.5 0.4 0.3 0.6) :modulation (gen-sine size 1 0.3 :phase 180))) (setf pitchvec (vector-to-pitch '(g1 g6) vector))
  8. Earlier
  9. Hello, What about Catalina OS and its compatibility with Opusmodus? Always wait before downloading if you want to continue working with Opusmodus?
  10. Use positive values only. '(1 -1) could go for ever
  11. a speculation... example 1: because the SUM is 0!! so it will never go up to 'e6 example 2: sum is 1, it will work
  12. Finally I had success !! Thank you. My old .gig VSL have the keyswitches in the C1 octave, instead of C2. I had to edit the files you provided. Best, Julio
  13. This caused a hanging (not responding) crash. I don´t know why... THIS CRASHES (setf padrao '(7 -1 -5 4 -3 2 12 -16)) (setf pitches (gen-sieve '(c4 e6) padrao :type :pitch)) THIS DON´T CRASH (setf padrao '(7 -1 -5 4 -3 2 12 -15)) (setf pitches (gen-sieve '(c4 e6) padrao :type :pitch))
  14. We have some problem with CCL compiler on Catalina. We are working on it.
  15. Of course all depends on what Vienna Instrument present you are loading into the Vienna Ensember Pro app. With both.
  16. ;;;MATERIAL (setf mat1 '((e d4 stacc gs4 stacc e5 stacc - - pizz a4 - pizz cs4 marc d4 -) (-s - - - gs4 leg e5 a4 pizz cs4 d4 ord) (-s - marc gs4 e5 stacc a4 cs4 d4 pizz - -) (s gs4 - - e5 - a4 cs4 d4 -) (-s d3 - - eb3 d3 - a3))) (setf violin1 (ambitus 'violin (pitch-transpose 12 mat1))) (setf violin2 (ambitus 'violin (gen-retrograde (pitch-transpose 7 mat1)))) (setf viola (ambitus 'viola (gen-rotate -3 (pitch-transpose -5 mat1)))) (setf violoncello (ambitus 'violoncello (gen-rotate 0 (pitch-transpose -12 mat1)))) (setf ts (get-time-signature violin1)) ;;--------------------------------------------------------- ;; SCORE and LAYOUT ;;--------------------------------------------------------- (def-score string-quartet (:title "String Quartet" :composer "acme" :copyright "test VSL artic" :key-signature 'chromatic :time-signature ts :tempo 100 :layout (string-quartet-layout 'violin1 'violin2 'viola 'violoncello)) (violin1 :omn violin1 :port 0 :channel 1 :sound 'vi-violin :program 0 :volume 100 :pan 44 :controllers (91 '(48)) ) (violin2 :omn violin2 :port 0 :channel 2 :sound 'vi-violin :program 0 :volume 100 :pan 54 :controllers (91 '(48)) ) (viola :omn viola :port 0 :channel 5 :sound 'vi-viola :program 0 :volume 90 :pan 74 :controllers (91 '(60)) ) (violoncello :omn violoncello :port 0 :channel 7 :sound 'vi-cello :program 0 :volume 90 :pan 84 :controllers (91 '(60)) ) ) (init-seed nil) My last unsucessful try, with def-score. Same as above: right channel, right port, right sounds, no keyswitches. Best, Julio
  17. Dear Janusz, The articulation control work with the ps function (preview score) ? Or just in def-score ? In ps function I´m not getting the keyswitches to work. Everything worked fine, the channels, the port and it´s sending to the right place. Just no keyswitches. Best, Julio
  18. Any idea when OpusModus will be Catalina compatible?
  19. Thanks, Janusz This is handy when you want to use the simple sounds of computer motherboard. Best, Julio
  20. And if the :sound is 'gm then :program is the instrument name or an integer of the gm setup with :port set to nil.
  21. Thanks, Janusz ! Looks very clear ! I´ll try it. Best ! Julio
  22. Here is my VSL instrument setup example: :sq (:layout string-quartet-layout :port 3 :channel '(1 2 3 4) :sound '(vi-violin vi-violin vi-viola vi-cello) :program 0 :controllers nil :pan (pan '(-30 -10 10 30)) :volume 92) As you can see the :program is set to 0. The program is not important here, only the :sound is. Here is the Violin sound setup: (in-package :Opusmodus) ;;;--------------------------------------------------------- ;;; VIENNA INSTRUMENTS - VIOLIN ;;;--------------------------------------------------------- (def-sound-set vi-violin :programs (:group perf-universal vl-perf-sustain (:key c2 cc1 5) vl-perf-marcato (:key c2 cc1 64) vl-perf-spic (:key c2 cc1 120) :group perf-legato-all vl-perf-legato (:key cs2 :key c1 cc1 40) vl-perf-legato-sul (:key cs2 :key cs1 cc1 40) vl-perf-legato-zigane (:key cs2 :key d1 cc1 40) vl-perf-legato-vib-progr (:key cs2 :key ds1 cc1 40) vl-perf-portamento (:key cs2 :key c1 cc1 80) :group articulation-combi vl-staccato (:key d2 :key c1 cc1 40) vl-sus-vib (:key d2 :key cs1 cc1 40) vl-fp-vib (:key d2 :key d1 cc1 40) vl-trem-sus (:key d2 :key ds1 cc1 40) vl-trill-1 (:key d2 :key e1 cc1 40) vl-pon-staccato (:key d2 :key f1 cc1 40) vl-pon-trem (:key d2 :key fs1 cc1 40) vl-harm-art-stac (:key d2 :key g1 cc1 40) vl-octav-gliss-me (:key d2 :key gs1 cc1 40) vl-pizz (:key d2 :key a1 cc1 40) vl-detache-short (:key d2 :key c1 cc1 80) vl-sus-vib-marc (:key d2 :key cs1 cc1 80) vl-sfz-vib (:key d2 :key d1 cc1 80) vl-trem-sus-af-auto (:key d2 :key ds1 cc1 80) vl-trill-2 (:key d2 :key e1 cc1 80) vl-pon-sus (:key d2 :key f1 cc1 80) vl-pon-trem-fa-auto (:key d2 :key fs1 cc1 80) vl-harm-art-sus (:key d2 :key g1 cc1 80) vl-octav-gliss-fa (:key d2 :key gs1 cc1 80) vl-pizz-snap (:key d2 :key a1 cc1 80) :group pref-repetitions-combi vl-perf-rep-sl (:key ds2 :key c1) vl-perf-rep-por-me (:key ds2 :key cs1) vl-perf-rep-stac (:key ds2 :key d1) vl-perf-rep-spi (:key ds2 :key ds1) vl-perf-rep-harsh (:key ds2 :key e1) :group combi-cre9 vl-rep-cre9-por-fa-1 (:key e2 :key c1 cc1 10) vl-rep-cre9-por-fa-2 (:key e2 :key cs1 cc1 10) vl-rep-cre9-por-fa-3 (:key e2 :key d1 cc1 10) vl-rep-cre9-por-fa-4 (:key e2 :key ds1 cc1 10) vl-rep-cre9-por-fa-5 (:key e2 :key e1 cc1 10) vl-rep-cre9-por-fa-6 (:key e2 :key f1 cc1 10) vl-rep-cre9-por-fa-7 (:key e2 :key fs1 cc1 10) vl-rep-cre9-por-fa-8 (:key e2 :key g1 cc1 10) vl-rep-cre9-por-fa-9 (:key e2 :key gs1 cc1 10) vl-rep-cre9-sta-1 (:key e2 :key c1 cc1 25) vl-rep-cre9-sta-2 (:key e2 :key cs1 cc1 25) vl-rep-cre9-sta-3 (:key e2 :key d1 cc1 25) vl-rep-cre9-sta-4 (:key e2 :key ds1 cc1 25) vl-rep-cre9-sta-5 (:key e2 :key e1 cc1 25) vl-rep-cre9-sta-6 (:key e2 :key f1 cc1 25) vl-rep-cre9-sta-7 (:key e2 :key fs1 cc1 25) vl-rep-cre9-sta-8 (:key e2 :key g1 cc1 25) vl-rep-cre9-sta-9 (:key e2 :key gs1 cc1 25) vl-rep-cre9-spi-1 (:key e2 :key c1 cc1 70) vl-rep-cre9-spi-2 (:key e2 :key cs1 cc1 70) vl-rep-cre9-spi-3 (:key e2 :key d1 cc1 70) vl-rep-cre9-spi-4 (:key e2 :key ds1 cc1 70) vl-rep-cre9-spi-5 (:key e2 :key e1 cc1 70) vl-rep-cre9-spi-6 (:key e2 :key f1 cc1 70) vl-rep-cre9-spi-7 (:key e2 :key fs1 cc1 70) vl-rep-cre9-spi-8 (:key e2 :key g1 cc1 70) vl-rep-cre9-spi-9 (:key e2 :key gs1 cc1 70) vl-rep-cre9-harsh-1 (:key e2 :key c1 cc1 120) vl-rep-cre9-harsh-2 (:key e2 :key cs1 cc1 120) vl-rep-cre9-harsh-3 (:key e2 :key d1 cc1 120) vl-rep-cre9-harsh-4 (:key e2 :key ds1 cc1 120) vl-rep-cre9-harsh-5 (:key e2 :key e1 cc1 120) vl-rep-cre9-harsh-6 (:key e2 :key f1 cc1 120) vl-rep-cre9-harsh-7 (:key e2 :key fs1 cc1 120) vl-rep-cre9-harsh-8 (:key e2 :key g1 cc1 120) vl-rep-cre9-harsh-9 (:key e2 :key gs1 cc1 120) :group perf-harsh-combi vl-sus-vib-fa (:key f2 :key c1 cc1 5) vl-sus-vib-progr (:key f2 :key cs1 cc1 5) vl-pon-sus-fa (:key f2 :key d1 cc1 5) :group omn ord (:key c2 cc1 5) stacc (:key d2 :key c1 cc1 40) stacs (:key e2 :key c1 cc1 25) marc (:key c2 cc1 64) spicc (:key c2 cc1 120) leg (:key cs2 :key c1 cc1 40) tasto (:key cs2 :key cs1 cc1 40) leg+tasto (:key cs2 :key cs1 cc1 40) tasto+leg (:key cs2 :key cs1 cc1 40) vib+marc (:key d2 :key cs1 cc1 80) marc+vib (:key d2 :key cs1 cc1 80) deta (:key d2 :key c1 cc1 80) pizz (:key d2 :key a1 cc1 40) snap (:key d2 :key a1 cc1 80) trem (:key d2 :key ds1 cc1 40) tr1 (:key d2 :key e1 cc1 40) tr2 (:key d2 :key e1 cc1 80) stacc+ponte (:key d2 :key f1 cc1 40) ponte+stacc (:key d2 :key f1 cc1 40) ponte+trem (:key d2 :key fs1 cc1 40) trem+ponte (:key d2 :key fs1 cc1 40) ponte (:key d2 :key f1 cc1 80) ) :controllers (:group default-settings pitch 0 velocity-xf 2 volume 7 pan 10 expression 11 reverb-dry/wet 14 reverb-on/off 15 slot-xf 20 start-scaler 21 master-attack 22 master-release 23 master-filter 24 delay-scaler 25 tuning-scaler 26 humanize 27 velocity-xf-on-off 28 rsamp-on-off 29 dynamics-scaler 30 :group Pedal Ped 64 Sost-Ped 66 Una-Corda 67 :group matrix cc1 1 ) )
  23. Those examples are very helpful, thank you! Right now my output (SC input) is this: [ [ /thread1, 3, 1 ], 666.1542108, a NetAddr(, 57796), 57120 ] Which I believe is, [[ ThreadName, Note Number, Gate], Time, Address, Port] Ideally what I want to be able to do is to send the Pitch/Gate and some other values (Filter Modulation, Pitchbend, etc.) to the same thread. So for example [[/thread1, NoteNumber, 1, val1, val2, val3] etc.]] In a perfect world they would also have independent Time values, they just should end up at the same Thread in SC. Probably this is very simple, I would just need to combine the lists in OM before sending it with send-osc-data , I just can't really figure out how to do this. Hope the example is clear enough Thanks again!
  24. Dear Janusz, 1) I copied the Cello with keyswitch you provided above to the folder you provided. 2) I edited the string quartet in my custom instrument file, like this: I put the VSL-Cello inside the layout... (is it wrong ?) ;;;STRING QUARTET LAYOUT - PORT 0 :sq (:layout string-quartet-layout :port 0 :channel '(13 14 15 16) :sound 'gm :program '(violin violin viola VSL-Cello) :controllers nil :pan (pan '(-30 -10 10 30)) :volume 92) I got this error Error: #<sound-set #x3020009F987D> has no program named: vsl-cello > While executing: get-sound-set-program, in process Listener-1(7). > Type cmd-. to abort, cmd-\ for a list of available restarts. > Type :? for other options. Help, please ! Best, Julio
  1. Load more activity
  • Create New...