Jump to content

Some questions about Opusmodus


Recommended Posts

I've been following this project with great interest! A few questions about the operation and future of the programme:

1. How does one deal with sending things like controller values to things like 'filter cutoff' in a synthesiser, for example? I assume just MIDI CC, but how is this represented in code and in notation? If I wanted to control things like 'effects switching', is there some way that this is displayed?

2. Is there a way to process MIDI input? For example, if I wanted to have a programme like Csound or SuperCollider tracking the pitch of live instrument and send it as MIDI to Opusmodus for the language to respond to live, is this possible?

3. Is it possible to associate different variables across the program? For example if one pitch goes up, another dynamic goes down, and a third pitch goes down in response?

4. Are there any plans to implements OSC?

Thank you for reading, looking forward to having more time with this programme, it looks very inspiring! 

Link to comment
Share on other sites

This is an example from the Opusmodus 'How To' documentation library:

(def-score reaktor
           (:key-signature 'chromatic
            :time-signature '(4 4)
            :tempo 120
            :start 1 :end 16)
  
  (inst
   :omn elec
   :port 0
   :channel 1
   :sound 'reaktor
   :program 8
   :pan '((:desc-asc 127 0 1/32 5)
          (:asc 34 127 1/32 5) (127 1) (0 1))
   :volume 127
   :controllers (9 '((4 1) (3 1/2) (65 1/2))
                   12 '((0 2) (80 1/2) (65 1/2))
                   45 '((78 1/2) (3 3) (32 1/2))
                   46 '((54 1) (87 1/2) (88 1/2))
                   13 '((:desc-asc 76 23 1/32 3)
                        (:asc 34 127 1/32 2) (127 1) (0 1))
                   52 (rnd-sample 100 '(23 45 12 89 94 2 57 21))
                   53 (rnd-sample 100 '(23 45 12 89 94 2 57 21))
                   54 (rnd-sample 100 (gen-integer 12 99))
                   55 (rnd-sample 100 (gen-integer 45 99))
                   51 '((:desc-asc 127 0 1/32 3)
                        (:asc 34 127 1/32 5) (127 1) (0 1))
                   73 '((67 1) (7 1/2) (64 1/2))
                   75 '((2 1) (67 1/2) (65 1/2))
                   70 '((98 1) (3 1/2) (99 1/2))))
  )
This example speaks to the software modular synthesiser / sampler Reaktor.
 
In DEF-SCORE there is an important keyword :controllers. On Reaktor you can link the sound controls of the SteamPipe patch to a particular Midi controller number, one of the many unassigned controllers in the midi specification. This might be to control filter amplitude or envelope time, in this way Opusmodus is able to orchestrate and control sounds with flexibility and precision. All kinds of algorithmic and parametric processes can be applied to sound control in this way.
 
Opusmodus does not have live input yet, but you can import any MIDI file into OMN language.
OSC and MIDI input will be implemented in version 2.0.
 
There are many functions in Opusmodus which allows you to substitute or map different parameters.
 
For example DEF-CASE function is defined as a function name and list of clauses.
(def-case strings
  ((c4 1/2)  'tasto)
  ((cs5 1/4) 'ponte)
  ((d6 1/8)  'trem)
  (otherwise 'ord))

(strings
 (gen-combine '(c4 cs5 f5 e6 ds4 d6 c4 d4 cs4 f5 ds4 d6)
              '(1/2 1/4 1/4 1/4 1/2 1/8 1/4 1/2 1/8 1/4)))
=> (tasto ponte ord ord ord trem ord ord ord ord)
Edited by opmo
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy