# All Activity

1. Last week
2. ## Neo-Riemannian approach (Tonnetz, etc.)

Many transformations indeed :-)
3. ## Neo-Riemannian approach (Tonnetz, etc.)

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
4. ## Neo-Riemannian approach (Tonnetz, etc.)

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)
5. ## How to snap notes into a scale?

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é
6. ## How to snap notes into a scale?

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?
7. ## How to snap notes into a scale?

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é
8. ## How to snap notes into a scale?

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))
9. Earlier

11. ## Bizarre hanging on function gen-sieve (probably loop)

Yes, like looping. Thanks. Yes, thank you.
12. ## Bizarre hanging on function gen-sieve (probably loop)

Use positive values only. '(1 -1) could go for ever
13. ## Bizarre hanging on function gen-sieve (probably loop)

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
14. ## OLD VSL Gig Files articulations

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
15. ## Bizarre hanging on function gen-sieve (probably loop)

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))
16. ## Timeframe to run on Catalina

We have some problem with CCL compiler on Catalina. We are working on it.
17. ## OLD VSL Gig Files articulations

Of course all depends on what Vienna Instrument present you are loading into the Vienna Ensember Pro app. With both.
18. ## OLD VSL Gig Files articulations

;;;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
19. ## OLD VSL Gig Files articulations

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
20. ## Timeframe to run on Catalina

Any idea when OpusModus will be Catalina compatible?
21. ## OLD VSL Gig Files articulations

Thanks, Janusz This is handy when you want to use the simple sounds of computer motherboard. Best, Julio
22. ## OLD VSL Gig Files articulations

And if the :sound is 'gm then :program is the instrument name or an integer of the gm setup with :port set to nil.
23. ## OLD VSL Gig Files articulations

Thanks, Janusz ! Looks very clear ! I´ll try it. Best ! Julio
24. ## OLD VSL Gig Files articulations

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 ) )
25. ## Convert OMN to OSC Data (to SuperCollider)

Those examples are very helpful, thank you! Right now my output (SC input) is this: [ [ /thread1, 3, 1 ], 666.1542108, a NetAddr(127.0.0.1, 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!
26. ## OLD VSL Gig Files articulations

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
27. ## OLD VSL Gig Files articulations

Thanks, Janusz. Best !
×

• Lessons