Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. Last week
  3. 1.3.24692 – Function name changes: DEF-UNFOLD to DEF-UNFOLD-SET DEF-INSTRUMENT-SETS to DEF-INSTRUMENT-SET – New functions: DEF-UNFOLD-SET UNFOLD-SET-NAMES GET-UNFOLD-SET GET-UNFOLD-SET-GROUPS GET-UNFOLD-SET-GROUP UNFOLD SOUND-SET-NAMES GET-SOUND-SET-PROGRAM-GROUPS GET-SOUND-SET-PROGRAM-GROUP GET-SOUND-SET-PROGRAM GET-SOUND-SET-CONTROLLER-GROUPS GET-SOUND-SET-CONTROLLER-GROUP GET-SOUND-SET-CONTROLLER DEF-INSTRUMENT-SET INSTRUMENT-SET-NAMES GET-INSTRUMENT-SET GET-INSTRUMENT-SET-GROUPS GET-INSTRUMENT-SET-GROUP – New directory in System Library: Libraries. – New directory in Def-Libraries: Def-Unfold-Sets. – New Extension file: 'OSC Remote Setup.lisp'. Fixed: – Documents errors. Examples: SOUND-SET (sound-set-names) => (xce-solo-woodwinds-generic vsl-clarinet-bb vsl-cello sgmo-acoustic-grand-piano k2500r s80 se-1 sgmo-bassoon sgmo-strings-1 zr vsl-altoflute vsl-prepared-piano supernova-ii sy55 reaktor sgmo-vibraphone vsl-imperial vsl-cello-solo trinity ms2000 pr micro-q k1 vsl-cembalo-ks sgmo-piccolo pianoteq vsl-cembalo vsl-violin vsl-viola-solo micro-piano gm2 vsl-contrabass trinity-rack sgmo-celesta sgmo-trombone nord-lead-3 gm sgmo-harp sgmo-glock karma sgmo-trumpet xv-5080 sgmo-flute sgmo-oboe vsl-violin-solo sgmo-horn sgmo-timpani k2600 sgmo-marimba vsl-hornvienna vsl-prepared-piano-ks sgmo-tuba jv-1080 vsl-harmonium-ks vsl-harmonium sgmo jv-2080 sy22 k2500 sgmo-violin virus-b sgmo-cello sgmo-clarinet k2000r k2000 vsl-bassclarinet vsl-upright xce-solo-strings-generic motif sgmo-viola) (get-sound-set-program-groups 'gm) => (piano percussion organ guitar bass strings ensemble brass reed pipe synth-lead synth-pad synth-effects ethnic percussive sound-effects) (get-sound-set-program-group 'gm 'Brass) => (trumpet trombone tuba muted-trumpet french-horn brass-section synth-brass-1 synth-brass-2) (get-sound-set-program 'gm 'trombone) => 57 (get-sound-set-controller-groups 'gm) => (general lsb pedal) (get-sound-set-controller-group 'gm 'general) => (bank-select modulation breath-control foot-control portamento-time data-entry volume balance pan expression effects-controller1 effects-controller2 gen-purpose1 gen-purpose2 gen-purpose3 gen-purpose4) (get-sound-set-controller 'gm 'expression) => 11 UNFOLD (unfold-set-names) => (m1 eg) (get-unfold-set-groups 'eg) => (transp basic ambitus) (get-unfold-set-group 'eg 'ambitus) => (ob bn hn) (get-unfold-set-groups 'eg) => (transp basic ambitus) (get-unfold-set 'eg 'ld) => (:length (length-divide 2 2 x)) Unfold Set Example: (def-unfold-set eg :methods (:group transp t7 (:pitch (pitch-transpose 7 x)) t-12 (:pitch (pitch-transpose -12 x)) :group basic ret (:all (gen-retrograde x :flatten t)) var (:pitch (pitch-variant x :variant '?)) gf (nil (gen-fragment '(3) '(3) x)) ld (:length (length-divide 2 2 x)) lrq (:length (length-rational-quantize x)) dyn (:velocity (velocity-to-dynamic x)) ls (nil (length-span '(6/4 6/4) x)) :group ambitus ob (:pitch (ambitus 'oboe x)) bn (:pitch (ambitus 'bassoon x)) hn (:pitch (ambitus 'french-horn x)) )) INSTRUMENT-SET (instrument-set-names) => (vsl gm) (get-instrument-set-groups 'gm) => (clefs grand wind brass strings wind-ensemble brass-ensemble piano string-ensemble choir) (get-instrument-set-group 'gm 'wind) => (:pic :fl :afl :bfl :ob :eh :oda :cl :acl :bcl :bn :cbn :ssax :asax :tsax :bsax) (get-instrument-set-group 'gm 'string-ensemble) => (:s3 :sq) (get-instrument-set 'gm :p) => (:layout piano-layout :port nil :channel 1 :sound 'gm :program 0 :controllers nil :pan (pan 0) :volume 92) (get-instrument-set 'gm :sq) => (:layout string-quartet-layout :port nil :channel '(13 14 15 16) :sound 'gm :program '(violin violin viola cello) :controllers nil :pan (pan '(-30 -10 10 30)) :volume 92) Instrument Set Example: (def-instrument-set my-inst :instruments (:group wind :oboe (:layout oboe-layout :port nil :channel 1 :sound 'gm :program '(oboe) :controllers nil :pan (pan 0) :volume 92) :bassoon (:layout bassoon-layout :port nil :channel 2 :sound 'gm :program '(bassoon) :controllers nil :pan (pan -10) :volume 92) )) Note: Please create a new directory 'Def-Unfold-Sets' in your '~/Opusmodus/Def-Libraries' directory. This is where you will store your Unfold sets. The 'OSC Remote Setup.lisp' file needs to be dragged into your '~/Opusmodus/Extensions' directory. OSC Remote Setup.lisp Best wishes, Janusz
  4. Likewise, I would also like to know the meaning of the first argument to "gen-osc-data". The documentation uses the term "span", but I don't understand it fully. Sorry if I am giving too much trouble! Regards, Rangarajan
  5. Great! The example works now. Thanks for the help Janusz. I am trying to understand the finer details of this. 1) The third argument to "osc-thread" is a list of lists with two elements <controller-value, time>. What is the time unit assumed here? For example if a list element is '(0.5 1/2), what does "1/2" in this indicate? Is it 1/2 second, or something else? 2) Suppose the third argument to this function has 5 elements like this: '((a b) (c d) (e f) (g h) (I j)), what happens to the thread after it sends the last pair to the controller device? Does it get destroyed by itself? 3) Is there a way to check the status of any of these threads at any time after they have started? 4) Is there a way to destroy a thread and release its resource back to the runtime? Is that what (stop-osc-thread...) does? 5) Is it possible to re-start/re-use a thread? Regards, Rangarajan
  6. opmo

    Using OSC

    Thank you Lasse for your report. Anyway, this file will fix it:
  7. If you use OSC in Opusmodus you need to drop the 'OSC Remote Setup.opmo' file into your '~/Opusmodus/Extensions' folder and restart OM. This file will fix the OSC problem. OSC Remote Setup.opmo Best wishes, Janusz
  8. I did that by sending the same messages to the included .ens. Works well in the ensemble. Forget it. If you are on Mojave I will figure out the problem my self. /Lasse
  9. opmo

    Using OSC

    The ID is the address. The form like "/a" is made internally. All you need to do is to give the id (address) "a" only. The data has two values one for the controller and the second one is the time (interval). I have explained this in my previous post (see above).
  10. opmo

    Using OSC

    I am on Mojave and all works fine here. You need to set the correct remote-host and remote-port for your Reaktor: (defparameter reaktor '(127.0.0.1 10000)) Make sure the OSC is Active: Do you see the Control IDs and Targets in your Reaktor-Drive.ens file: Please drop this file into your '~/Opusmodus/Extensions' folder and restart OM, without it the OSC will not work. OSC Remote Setup.opmo This should fix the problem. Best, Janusz
  11. I am sorry but I have still the same problem as Rangarajan. The OSC-messages does not make it out from OM. I have tested the same messages from MAX, Kyma and Reaper. No problem. Weird. Maybe Mojave is the problem. There is sometimes problems with the security thingies that Apple have put in there. Let me know if I can assist in tracking down this. /Lasse
  12. opmo

    OM OSC Setup

    Better OSC examples you find here:
  13. opmo

    Using OSC

    Dear Rangarajan, Here it is. OSC threads and Reaktor 6: 1. Expand the Reaktor-Drive.ens.zip file first. Reaktor-Drive.ens.zip 2. Move the Reaktor-Drive.ens file into the '~/Opusmodus/Instruments' directory, this will allow you to star the Reaktor form the Opusmodus app. 3. Add the 'Reaktor OSC Threads.opmo' file into the Opusmodus Navigator. Reaktor OSC Threads.opmo 4. Evaluate the DATA parameters. 5. Evaluate the SCORE. 6. Press START button in the Live Coding Instrument - you should hear a sound coming from your Reaktor instrument. 7. Now you are ready to run the OSC threads. You can stop any thread at any time with STOP-OSC-THREADS. or all threads with STOP-ALL-OSC-THREADS. Yes, the OSC-THREAD send the data to the given controller at the other end. Each message has two values, example: (0.04198588 4). The first value is the controller value, the second value is the time (interval - second or ratio). Best wishes, Janusz
  14. New function: STOP-ALL-OSC-THREADS Fixed: Live Coding Instrument hanging note at Stop. Few document errors. Note: Select 'Check for Updates..." from Opusmodus menu.
  15. opmo

    Using OSC

    First you need to define and link the thread IDs with the Reaktor controllers. Each Drive.ens controller (button or slider) should receive one ID thread message. In the Reaktor you can assign a OSC thread ID with a right mouse click on the controller selecting "MIDi & OSC Learn": You should send only one thread at a time. Stop the thread and trigger next one etc... The new function STOP-ALL-OSC-THREADS will make sure that all OSC threads are stoped before you assign a new thread to the next Reaktor controller. Please note, you need to update your app first (1.3.24667) before you can use the new function. To do that simply select 'Check for Updates..." from Opusmodus menu. Tomorrow I will create a Drive.ens - for Reaktor 6 - with ID controllers already linked, as well a simple score for LCI to play with.
  16. Thanks again for the example code. To test this example, I started Reaktor 6, and loaded the "Drive.ens" as you had suggested. Then enabled "OSC Activate" under "OSC Settings". To see if any OSC message was being received, I watched the "Incoming OSC Monitor" pane. I was able to run the example after making one minor correction - the variable "seed" had to be defined first (a minor issue). Also changed the IP address to what my Reaktor displayed under "OSC Settings". When I ran the example, nothing happened, but of course, there was no error message as well. "Incoming OSC Monitor" pane in Reaktor did not display anything, indicating it did not receive any message from outside. What is supposed to happen when the example program runs? 1) "osc-thread"function takes an ID as its second argument. Can you explain how this ID is mapped to a control on Reaktor? I believe this is crucial. Don't we also have to configure this appropriately in Reaktor? 2) What does "osc-thread" really do? Does it not send the data given to it to the controller at the other end? Would it be possible for you to include any additional code that is needed to actually make Reaktor play something (need not be interesting)? Right now I don't hear anything at all, so it is difficult to understand what is going on. Since OSC is a great addition to the current release of OM, it would be nice to include detailed documentation on the correct use of the feature. Regards, Rangarajan
  17. Thanks Janusz and Stephane! Let me work through the example and understand OSC support. Regards, Rangarajan
  18. I am really very happy to see you back Rangarajan ! Stéphane
  19. opmo

    Using OSC

    Good to see Rangarajan. This example should help. In this example I use the Reaktor "Drive.ens" from the Reaktor Blocks. OSC Threads.opmo To hear the OSC messages in action you need to create a score and send the midi messages to the Reaktor possibly on :port 0 and :channel 1. Best wishes, Janusz
  20. Hi, I am getting back to Opusmodus after a long time. I am excited about the support for OSC in this new release. I have two questions: 1) Normally when we use OSC to send to a destination, we use an "address" like "/a/b/c". A device that has this destination "address" is expected to receive the message and act on it. How and where do we specify that address in "osc-thread" function. Just to give an example, a couple of years ago, I had written an article on how to control Reaktor using OSC. If I want to do something similar using OM, what is the procedure? 2) There could be occasions where I want to ping the destination at regular intervals. How do I do that in OM? A detailed example will be quite useful. Regards, Rangarajan
  21. RING-MODULATE-FILE-SYNTH instrument example: A ring-modulating instrument. This CLM instrument will apply ring modulation to a sound file with a specified sinewave. Ring modulation is a fancy name for multiplying the two signals together. When you multiply the two sounds together in the time domain, you get the sum and difference tones in the frequency domain. Contents Source Output Source (with-sound () (ring-modulate-file-synth nil 300.0 0.5 "granis") (ring-modulate-file-synth nil 100.0 0.5 "granis")) Output
  22. FM-INSECT-SYNTH instrument example: FM (frequency modulation synthesis) instrument. Computed sound sounds insect like. Contents Source Output Source (progn (defparameter par (library 'tbn-cs3-partials 'partials nil :random 12)) (defparameter dur '(rnd-sample 12 '(-q q. h -h. -w w. d -d.))) (defparameter freq '(rnd-sample 12 (flatten (partial :freq par)))) (defparameter amp '(rnd-sample 12 '(pppp ppp p mp))) (defparameter mod-freq-env '(0 0 40 1 95 1 100 .5)) (defparameter mod-index-env '(0 1 25 .7 75 .78 100 1)) (defparameter amp-env '(0 0 25 1 75 .7 100 0)) (defparameter fm-index '(rnd-number 12 .01 .6)) (defparameter mod-skew '(rnd-number 12 -20.0 -1.0)) (defparameter mod-freq '(rnd-number 12 20 60)) (with-sound '() (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env (eval mod-freq) (eval mod-skew) mod-freq-env 500.866 mod-index-env (eval fm-index) .500) (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env (eval mod-freq) (eval mod-skew) mod-freq-env 649.490 mod-index-env (eval fm-index) .500) (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env (eval mod-freq) (eval mod-skew) mod-freq-env 562.087 mod-index-env (eval fm-index) .500) (fm-insect-synth (eval dur) (eval freq) (eval amp) amp-env (eval mod-freq) (eval mod-skew) mod-freq-env 300.866 mod-index-env (eval fm-index) .500) ) ) Output Next page ring-modulate-file-synth
  23. FM-SYNTH instrument example: A generic multi-type FM instrument. Contents Source Output Source (with-sound () (fm-synth '(:polyw :dly :ncos :sqr :pul :tri :poly) 's (rnd-sample 64 '(c4 ds5 f4 g3 a5)) (rnd-sample 64 '(ppp pp pp mf f)) :bpm 120 :loop t) (fm-synth :cmb '(-s e = -e.) (rnd-sample 20 '(c3)) (rnd-sample 20 '(p mf f)) :bpm 120 :loop t)) Output Next page fm-insect-synth
  24. EXPSRC-SYNTH instrument example: Granulate generator in conjunction with sampling rate conversion (mimic phase vocoder). Contents Source Output Source (with-sound () (expsrc-synth '(5 5 5 5) "granis" 0.5 '(1 2 3.2 2) '(0.4434 0.7 0.3 .1)) (expsrc-synth 20 "granis" 0.5 1 0.5)) Output Next page fm-synth
  25. GRANI-SYNTH instrument example: A comprehensive granular synthesis instrument geared towards granulation of sound-files. Contents Source Output Source (progn (defparameter dur '(q h w d -q -h)) (defparameter amp '(pppp p pp f mp)) (with-sound (:reverb jc-reverb :reverb-channels 2) (grani-synth (rnd-sample 12 dur) "v" (rnd-sample 12 amp) :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0)) (grani-synth (rnd-sample 12 dur) "v" (rnd-sample 12 amp) :grains 10) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-start '(0 .1 .3 .1 1 .6) :amp-envelope '(0 1 1 1) :grain-density 8 :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0) :grain-envelope-end '(0 0 .01 1 .99 1 1 0) :grain-envelope-transition '(0 0 .4 1 .8 0 1 0)) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-start '(0 0 1 1) :amp-envelope '(0 1 1 1) :grain-density 20 :grain-duration '(0 .003 .2 .01 1 .3)) (grani-synth (rnd-sample 12 dur) "v" (rnd-sample 12 amp) :grain-start '(0 0 1 1) :amp-envelope '(0 1 1 1) :grain-density 20 :grain-duration '(0 .003 .2 .01 1 .3) :grain-duration-limit .02) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :amp-envelope '(0 1 1 1) :grain-density 40 :grain-start '(0 .1 .3 .1 1 .6)) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :amp-envelope '(0 1 1 1) :grain-density 40 :grain-start '(0 .1 .3 .1 1 .6) :grain-start-spread .01) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-start '(0 0 1 1) :grain-start-spread 0.01 :amp-envelope '(0 1 1 1) :grain-density 40 :srate '(0 0 .2 0 .6 5 1 5)) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-start '(0 0 1 1) :grain-start-spread .01 :amp-envelope '(0 1 1 1) :grain-density (rnd-sample 12 '(40 30 20)) :srate-base 2 :srate '(0 0 .2 0 .6 -1 1 -1)) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-start '(0 0 1 1) :grain-start-spread .01 :amp-envelope '(0 1 1 1) :grain-density (rnd-sample 12 '(40 30 20)) :srate-linear t :srate (list 0 1 .2 1 .6 (expt 2 5/12) 1 (expt 2 5/12))) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-start '(0 0 1 1) :grain-start-spread .01 :amp-envelope '(0 1 1 1) :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0) :grain-density (rnd-sample 12 '(40 30 20)) :grain-duration '(0 .02 1 0.1) :grain-duration-spread '(0 0 .5 .1 1 0)) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-start '(0 0 1 1) :grain-start-spread 0.01 :amp-envelope '(0 1 1 1) :grain-density (rnd-sample 12 '(40 30 20)) :grain-degree '(0 0 1 90) :grain-degree-spread 10) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-duration .06 :grain-density 20 :grain-density-spread 2 :srate 0) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-duration .08 :grain-density (rnd-sample 12 '(40 30 20)) :grain-density-spread 2 :srate 5 :grain-degree 0 :grain-envelope '(0 0 .2 .2 .5 1 .8 .2 1 0) :grain-envelope-end '(0 0 .01 1 .99 1 1 0)) (grani-synth (rnd-sample 12 dur) "oboe" (rnd-sample 12 amp) :grain-duration .05 :grain-density 35 :grain-density-spread 3 :srate -5 :grain-degree 90 :srate (list 0 1 .3 1 .3 (expt 2 5/12) 1 (expt 2 5/12)))) ) Output Next page expsrc-synth
  26. PIANO-SYNTH instrument example: Piano physical modeling instrument. Contents Source Output Source (progn (setf frames1 (library 'marangona-partials 'partials nil :random 48)) (setf frames2 (library 'marangona-frames 'partials nil :random 48)) (setf par1 (remove-partial frames1 :type :freq :min 27.5 :max 4186)) (setf par2 (remove-partial frames2 :type :freq :min 27.5 :max 4186)) (defparameter freq1 (rnd-order (gen-collect (rnd-sample 24 '(3 5 6 7 8)) (partial :freq par1)))) (defparameter freq2 (rnd-order (gen-collect (rnd-sample 38 '(2 3 4)) (partial :freq par2)))) (with-sound (:reverb jc-reverb) (piano-synth '(3e) (flatten freq1) '(.2 .3 .4) :bpm 72 :drypedalresonancefactor .25 :singlestringdecayrate-table '(21 -5 24.000 -5.000 36.000 -5.4 41.953 -5.867 48.173 -7.113 53.818 -8.016 59.693 -8.875 66.605 -9.434 73.056 -10.035 78.931 -10.293 84.000 -12.185) :singlestringpole-table '(21 .8 24 0.7 36.000 .6 48 .5 60 .3 84 .1 96 .03 108 .03) :stiffnesscoefficient-table '(21.000 -0.920 24.000 -0.900 36.000 -0.700 48.000 -0.250 60.000 -0.100 75.179 -0.040 82.986 -0.040 92.240 .3 96.000 .5 99.000 .7 108.000 .7)) (piano-synth '(e) freq2 '(0.1 0.2 0.3) :bpm 72 :drypedalresonancefactor .55 :detuningfactor-table '(24 5 36 7.0 48 7.5 60 12.0 72 20 84 30 96 100 108 300))) ) Output Next page grani-synth
  1. Load more activity
×
×
  • Create New...