-
Posts
792 -
Joined
-
Last visited
Reputation Activity
-
AM got a reaction from JulioHerrlein in gen-rotate extension
yes, of course - from "BOTs" to a lot of small simple FUNCTIONS... but: not very well/smart coded (🙄) - i'm musician but only an "amateur programmer" with few experience - and it's really NOT well documentated for other users. and another point, i have no idea how do that professionally with GUTHUB and these installation-things 😕
as ORDINARY text - no problem. perhaps i will share it like that on my website...
-
AM got a reaction from lviklund in Looking for Repeating Function
i'm very interested in!! thx to you JULIO!!! 🙂
strukturnetz is not a piece, it's "a kind of technique" he used 🙂
you could read about it here:
https://www.amazon.de/Differenzen-Poststrukturalistische-Beispiel-Lachenmann-Ferneyhough/dp/3931264157
listen here...
the STRUKTURNETZ is also "notated" in the score (on top)
-
AM got a reaction from JulioHerrlein in Custom Seed List
like that? should work...
it "loops" x-times (depends on length of seeds-list) and collect the rhythms...
(setf seeds (vector-round 1 100 (gen-white-noise 8 :seed 13))) (setf rhythm (loop for i in seeds collect (euclidean-rhythm 16 4 16 's :type 2 :seed i)))
perhaps there is an OPMO-solution, this is LISP
-
AM got a reaction from JulioHerrlein in Looking for Repeating Function
i'm very interested in!! thx to you JULIO!!! 🙂
strukturnetz is not a piece, it's "a kind of technique" he used 🙂
you could read about it here:
https://www.amazon.de/Differenzen-Poststrukturalistische-Beispiel-Lachenmann-Ferneyhough/dp/3931264157
listen here...
the STRUKTURNETZ is also "notated" in the score (on top)
-
AM reacted to JulioHerrlein in Looking for Repeating Function
Thanks, Andre ! I will check the Lachenmann piece, for sure.
I was thinking in a possible algorithm for such function:
1) Take an OMN expression
2) Calculate the empty spaces (rest space)
3) Fill the spaces with notes, based on each gap, using a predefined quantization (1/16, 1/8, random, etc) and a filling density level (0-100 %, of the space)
4) Fill the spaces with predefined pitch lists, motifs, rhythmmic sets, etc, that can be trimmed, rotated and start on any note
5) Fill the spaces like mentioned before with some pitch quality control (tonality-map) and pitch melodic direction control (up, down, repeat, vector).
6) Fill the spaces like before with any predefined method
populate-spaces
populate-gap
fill-spaces
fill-gap
This would be really useful, IMHO.
All the best !
Julio
-
AM got a reaction from JulioHerrlein in Looking for Repeating Function
would be interesting. it has quite some (distant?) aspects of LACHENMANN's "strukturnetz", and could be nice to work in such an direction...
-
-
AM got a reaction from NagyMusic in Regression- Stasis-Progression
or...
(loop for x from 7 downto 1 for y from 1 to 7 collect (list x 3 y))
-
AM got a reaction from opmo in Regression- Stasis-Progression
or...
(loop for x from 7 downto 1 for y from 1 to 7 collect (list x 3 y))
-
AM got a reaction from torstenanders in IRCAM Solo Instruments 2
i have been working with conTimbre for a long time and it is exactly what i was looking for. playing techniques can easily be done by OPMO or SIBELIUS (vst3) via program changes. it has a great many different playing techniques. I always found IRCAM_LIB to be very inadequate, as there were not enough playing techniques etc. / you can also control CT via OSC (and as standalone or via MAXMSP). when I wrote for ensemble with additional e-player, CT-live always worked very well.
(The only negative point I could say is that there are a few SAMPLES that weren't played / recorded very well. But with the size of the library, that's okay with me)
-
AM reacted to Rangarajan in Created in Opusmodus
I am implementing a library of algorithms for music generation using Opusmodus. Here are 3 snippets generated using this library. The midi outputs are sent to Reaper DAW, which in turn uses instruments available in Propellerhead Reason 11 (through VST3i Reason Rack Plugin).
- Rangarajan
rnd-nil3-4_4.mp3
rnd-nil2-4_4.mp3
rnd5654328-4_4.mp3
-
AM got a reaction from opmo in Opusmodus to Processing (by Midi)
Dear all
Today I dealt briefly how to control PROCESSING (software and programming language) by Midi. There is a great interface for this: "rwmidi" by Giuseppe Torre. You can download and install it, it works fine!
A short Video (no Sound) with a very simple Processing Example
movie.mov
I think this is a good combination if you want to visualize your midi output (or just use de midi-data in realtime) or if you want to program a separate VISUAL track in OPMO. Here is a small example (I can't program usable in PROCESSING yet, sorry :-)) Downloads etc. are here ...
https://processing.org
https://gitlab.com/giuseppetorre/rwmidi-revival-master
here's a video, how to install etc...
https://www.youtube.com/watch?v=7iFUenT5B68&feature=youtu.be
and as an attachm. my "sketch" in processing
sketch_Processing_from_Midi.pde
Greetings André
P.S. I think there ist also a way to send data by OSC
-
AM got a reaction from Stephane Boussuge in Opusmodus to Processing (by Midi)
Dear all
Today I dealt briefly how to control PROCESSING (software and programming language) by Midi. There is a great interface for this: "rwmidi" by Giuseppe Torre. You can download and install it, it works fine!
A short Video (no Sound) with a very simple Processing Example
movie.mov
I think this is a good combination if you want to visualize your midi output (or just use de midi-data in realtime) or if you want to program a separate VISUAL track in OPMO. Here is a small example (I can't program usable in PROCESSING yet, sorry :-)) Downloads etc. are here ...
https://processing.org
https://gitlab.com/giuseppetorre/rwmidi-revival-master
here's a video, how to install etc...
https://www.youtube.com/watch?v=7iFUenT5B68&feature=youtu.be
and as an attachm. my "sketch" in processing
sketch_Processing_from_Midi.pde
Greetings André
P.S. I think there ist also a way to send data by OSC
-
AM got a reaction from JulioHerrlein in Opusmodus to Processing (by Midi)
Dear all
Today I dealt briefly how to control PROCESSING (software and programming language) by Midi. There is a great interface for this: "rwmidi" by Giuseppe Torre. You can download and install it, it works fine!
A short Video (no Sound) with a very simple Processing Example
movie.mov
I think this is a good combination if you want to visualize your midi output (or just use de midi-data in realtime) or if you want to program a separate VISUAL track in OPMO. Here is a small example (I can't program usable in PROCESSING yet, sorry :-)) Downloads etc. are here ...
https://processing.org
https://gitlab.com/giuseppetorre/rwmidi-revival-master
here's a video, how to install etc...
https://www.youtube.com/watch?v=7iFUenT5B68&feature=youtu.be
and as an attachm. my "sketch" in processing
sketch_Processing_from_Midi.pde
Greetings André
P.S. I think there ist also a way to send data by OSC
-
AM reacted to opmo in Function MORPH
MORPH function will be part of the next release.
(progn (setf chopin-28-4 (pitch-transpose 12 '(h gb2e3 g2b2e3 fs2a2e3 fs2a2eb3 f2a2eb3 q f2a2d3 f2gs2d3 h e2gs2d3 q e2g2d3 e2g2cs3 h e2g2c3 e2fs2c3 e2fs2c3 eb2fs2c3 d2fs2c3 d2fs2c3 d2f2c3 d2f2b2 q c2e2b2 c2e2a2 h c2e2a2 q b1e2a2 b1eb2a2 h c2e2a2 b1eb2a2 b1eb2a2 h b1eb2a2 -h g2b2e3 g2b2e3 fs2a2e3 f2a2eb3 f2gs2eb3 e2gs2d3 q e2g2d3 e2g2cs3 cs2e2bb2 c2e2a2 h a2c3fs3a3 q g2c3fs3 g2b2e3 a2c3e3 e2fs2c3 b1e2b2 c2e2a2 h b1e2b2 q eb2b2 b1eb2a2 h. c2g2bb2 q c2e2a2 b1e2a2 e2gs2 h b1e2g2 bb1c2g2 e2fs2b2e3 b1eb2fs2b2 e2g2b2))) (setf chopin-28-4-pitch (omn :pitch chopin-28-4)) (setf inv-num (gen-trim (length chopin-28-4-pitch) '(1))) (setf chopin-28-4i (chord-inversion inv-num chopin-28-4-pitch :variant '?)) (setf rh (pitch-transpose 12 (make-omn :length '(s) :pitch (melodize chopin-28-4i) :span :pitch))) (setf lh-length (mclist (get-span rh))) (setf lh (dechord (make-omn :length lh-length :pitch chopin-28-4i :velocity '(mp)) )) (setf rh-len (length rh)) (setf rh-morph (morph (rnd-number rh-len 0.2 0.5) rh)) (ps 'gm :p (list rh-morph lh) :tempo '((102 52) (:rit 102 34 1/64 4))) )
Best wishes,
Janusz
-
AM got a reaction from JulioHerrlein in generating realtime score / sending data from OPMO to POLYTEMPO NETWORK by OSC
dear all
here's an example (from my current work)...
this little video shows how i generate/display SCORE (instrumental parts) on a screen + virtual conductor (piano part). the example is "nonsense", but shows how it looks/works... you see the bars (generating), the cue, beat... and the arrow (that shows you where to read/play) ...also you hear some bad (sry) sound-simulation of the setup.
in this way i can generate a whole piece in realtime on STAGE (all musicians will read their part from their own screen). this one will be for 5 instruments, ePlayer and modular synthesizer. during the performance an algorithm (or some data-streams) will generate the piece in OPMO. with OSC i can send all datas (score, beat, tempo..) from OPMO to POLYTEMPO-NETWORK (https://polytempo.zhdk.ch) and work and coordinate different independent tempo layers, conducting etc...
for more POLYTEMPO informations... have a look here: https://polytempo.zhdk.ch
greetings
andré
IMG_0083.MOV
-
AM got a reaction from opmo in generating realtime score / sending data from OPMO to POLYTEMPO NETWORK by OSC
thanks... i will post the CODE and some videos etc. when i have finished the work - premiere will be in november...
greetings
andré
-
AM got a reaction from opmo in generating realtime score / sending data from OPMO to POLYTEMPO NETWORK by OSC
dear all
here's an example (from my current work)...
this little video shows how i generate/display SCORE (instrumental parts) on a screen + virtual conductor (piano part). the example is "nonsense", but shows how it looks/works... you see the bars (generating), the cue, beat... and the arrow (that shows you where to read/play) ...also you hear some bad (sry) sound-simulation of the setup.
in this way i can generate a whole piece in realtime on STAGE (all musicians will read their part from their own screen). this one will be for 5 instruments, ePlayer and modular synthesizer. during the performance an algorithm (or some data-streams) will generate the piece in OPMO. with OSC i can send all datas (score, beat, tempo..) from OPMO to POLYTEMPO-NETWORK (https://polytempo.zhdk.ch) and work and coordinate different independent tempo layers, conducting etc...
for more POLYTEMPO informations... have a look here: https://polytempo.zhdk.ch
greetings
andré
IMG_0083.MOV
-
AM reacted to opmo in Opusmodus version 2.1, end of June!
MIDI ENTRY
To start the MIDI input into your score file, select the command MIDI Entry from the Tools menu. When MIDI Entry is ON, the Listener echo bar will change to orange:
Now you know the MIDI Entry is ON. Depending on the position of the pitch-bend wheel and the modulation wheel as well as the position of the sustain pedal the colour of the Listener echo bar will change.
To make the MIDI Entry as functional as possible there are a number of commands that will increase the speed of your work without the need to move away form your MIDI keyboard.
Every entry is octave independent, except the pitch entry.
Pitch
Enter pitch symbols and chords into your score.
Length and Tuplet
Pitch-Bend: Up-Full
C 1 D 1/2 E 1/4 F 1/8 G 1/16 A 1/32 B 1/64 Cs 3 Ds 5 Fs 6 Gs 7 Bb 9
Length-rest and Tuplet
Pitch-Bend: Down-Full
C -1 D -1/2 E -1/4 F -1/8 G -1/16 A -1/32 B -1/64 Cs -3 Ds -5 Fs -6 Gs -7 Bb -9
Velocity
Pitch-Bend: UP-Half
C pppp Cs ppp D pp Eb p E mp F mf Fs f G ff Gs fff A ffff Bb < B >
Attribute
Pitch-Bend: Down-Half
C stacc Cs ord D marc Eb fermata E mart F ten Fs pizz G leg Gs trem A tie Bb ped1 B ped
Microtonality and Commands
Modulation Wheel: Up
Add a microtonal symbol next to the pitch symbol.
F + G - A . B .. C parenthesis pair D open parenthesis E close parenthesis Cs move forward char Eb move backward char Fs delete backward char Gs undo Bb new line and indent Note: If you enable MIDI input with the modulation wheel up, you need to move it down and up again in order for it to be considered up.
Entries with Sustain Pedal Down
Pitch
Add a pitch symbol next to the previous pitch (chord).
Length and Tuplet
Pitch-Bend: Up-Full
Add a length entry to the previous length value (combine length).
Length-rest and Tuplet
Pitch-Bend: Down-Full
Add a length-rest entry to the previous rest value (combine length).
Velocity
Pitch-Bend: Up-Half
Add < or > dynamic symbol to the previous velocity value.
Attribute
Pitch-Bend: Down-Half
Add (+) attribute to the previous attribute value (combine attributes).
Examples:
c4e4g4 Enter a chord c4e4g4 on your MIDI keyboard or pitch by pitch: c4 e4 g4 with sustain pedal down. (q c4 mp e4 g4) 1. Modulation wheel up then C => () 2. PB-UpF then E => (q) 3. Enter c4 => (q c4) 4. PB-UpH then E => (q c4 mp) 5. Enter e4 then g4 => (q c4 mp e4 g4) (q c4 mp e4 stacc g4 p fermata+trem) 1. Modulation wheel up then C => () 2. PB-UpF then E => (q) 3. Enter c4 => (q c4) 4. PB-UpH then E => (q c4 mp) 5. Enter e4 => (q c4 mp e4) 6. PB-DnH then C => (q c4 mp e4 stacc) 7. Enter g4 => (q c4 mp e4 stacc g4) 8. PB-UpH then Eb => (q c4 mp e4 stacc g4 p) 9. PB-DnH then Eb => (q c4 mp e4 stacc g4 p fermata) 10. PB-DnH then Gs + sustain => (q c4 mp e4 stacc g4 p fermata+trem) (q c4 mp e4 stacc g4 p fermata+trem 3q c4 eb4 fs4) 1. Modulation wheel up then C => () 2. PB-UpF then E => (q) 3. Enter c4 => (q c4) 4. PB-UpH then E => (q c4 mp) 5. Enter e4 => (q c4 mp e4) 6. PB-DnH then C => (q c4 mp e4 stacc) 7. Enter g4 => (q c4 mp e4 stacc g4) 8. PB-UpH then Eb => (q c4 mp e4 stacc g4 p) 9. PB-DnH then Eb => (q c4 mp e4 stacc g4 p fermata) 10. PB-DnH then Gs + sustain => (q c4 mp e4 stacc g4 p fermata+trem) 11. PB-UpF Cs/E (chord) => (q c4 mp e4 stacc g4 p fermata+trem 3q) 12. Enter c4 then eb4 then fs4 => (q c4 mp e4 stacc g4 p fermata+trem 3q c4 eb4 fs4) Best wishes,
Janusz
-
AM got a reaction from opmo in alternative binary-layer function
here is a sketch for an alternative "binary-(or element-)layer-FUNCTION
(defun element-layer (lists &key (rnd nil)) (let ((lists (if (null rnd) lists (rnd-order lists :list t)))) (car (last (loop for x in (rest lists) with list = (car lists) collect (setf list (loop for i in list with cnt = 0 when (equal i 0) collect (nth cnt x) and do (incf cnt) else collect i))))))) (element-layer (list '(1 0 0 1 1 0 0 1 0 0 0 0) '(0 2 3 0 4 5 0 6 0 7 8 0) '(11 12 13 14 15 16 17)) :rnd nil) => (1 11 2 1 1 3 12 1 4 5 13 6) ;;; hierarchic: every 0's will be replaced by the values from the next/sub-list...
-
AM got a reaction from Stephane Boussuge in [SOLVED] Midi In Collect (now Opusmodus have MIDI input)
to wishlist: xml-import
-
AM got a reaction from Stephane Boussuge in testing in opusmodus: videoplayer
testing videoplayer in OPMO.mov
whitenoise.mov -
AM got a reaction from opmo in testing in opusmodus: videoplayer
testing videoplayer in OPMO.mov
whitenoise.mov -
AM reacted to opmo in Micropolyphony (coming soon)
MICROPOLYPHONY is a polyphonic musical texture developed by György Ligeti which consists of many lines of dense canons moving at different tempos or rhythms, thus resulting in tone clusters vertically. According to David Cope, "micropolyphony resembles cluster chords, but differs in its use of moving rather than static lines"; it is "a simultaneity of different lines, rhythms, and timbres".
Example with two choirs:
-
AM reacted to Stephane Boussuge in split-point
Hi,
here's a function i've made for my own usage and i think could be useful for others.
It is a split point function which divide an OMN flux according to a list of split points.
Attached, you will find the French doc of the function 😉
;;; SPLIT-POINT ;;; SB. 2020 ;;; Fonction utile pour séparer les 2 mains pour une partie de piano ;;; renvoie une liste de listes (defun split-point (split-points omn-seq) (do-verbose ("split-point") (let* ( (spltconvert (if (numberp (car split-points)) split-points (pitch-to-integer split-points))) (spltp (gen-trim (length omn-seq) spltconvert)) (p1 (loop for sp in spltp for l in omn-seq collect (ambitus-filter `(,sp 128) l) )) (p2 (loop for sp in spltp for l in omn-seq collect (ambitus-filter `(-128 ,(- sp 1)) l) )) ) (list p1 p2)))) #| (split-point '(c4 d4) '((e a3d4 c4e4 f4c5 q g3d4 e4)(e a3d4 c4e4 f4c5 q g3d4 e4))) => (((e d4 c4e4 f4c5 q d4 e4)(q d4 e4 f4c5 d4 e4)) ((e a3 - - q g3 -)(e a3 c4 - q g3 -))) ;;; Example (setf pmat (make-scale 'c2 32 :alt '(2 1 2 3))) (setf pch (rnd-sample 128 pmat)) (setf chrd (chordize-list (gen-divide (rnd-number 8 1 4) pch))) (setf mat (length-legato (gen-filter-euclidean 8 16 4 16 chrd 's '(mf)))) (setf split (split-point '(c4) mat)) (setf piano-rh (ambitus-chord 12 (first split))) (setf piano-lh (ambitus-chord 12 (second split))) (ps 'gm :p (list piano-rh piano-lh) ) |#
SB.
split-point.rtfd.zip