Jump to content

Stephane Boussuge

Moderators
  • Posts

    1,059
  • Joined

  • Last visited

Everything posted by Stephane Boussuge

  1. Hi Rangarajan, indeed, i would like your help for the end of this project. the library file i show in example is made manually but what i'm searching for is an automatic way by function to create such file and feed it with the instrument OMN slot content from score files. I made this one manually just for the example. for section name, finally, i think it would be better if section name was the name of the score-file and eaxh the entry of the section would be the name of the track/instrument from the score-file. It would look like this: (in-package :Opusmodus) ;;;--------------------------------------------------------- ;;; Melodies ;;;--------------------------------------------------------- (def-library melodies (:section title-of-the-score-1 name-of-the track-1 '((-q. e d5 0.63 c5 bb4 -q) (h bb4 tie e e a4 g4 a4) (h g4 tie z^3y q gb4 e d4 tie s tie 3y t tie x tie u tie 3x tie 3y tie) (z^q g4 3y d4 -191/768 q a4 bb4 e. c5 s) (h. d5 -e d5) (q. eb5 e d5 c5 c5 f5 eb5) (e d5 tie s tie z^3y s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s c5 tie z^s bb4 tie 3y c5 -47/768 z^3y bb4 s a4 tie z^e bb4 3y a4 -95/768 s g4 tie z^3y s a4 tie z^e bb4 tie 3y a4 -95/768 z^3y bb4 e g4 tie) (z^h d5 tie 3y g4 -383/768 e d5 a4 bb4 g4) (h. d4 -q) (q bb4 e e e c5 c5 bb4 c5) (q d5 tie e tie z^3y t c5 tie 3t^u. t d5 tie 3t^u. 3u c5 tie tu h bb4 tie) (z^q c5 3y bb4 -191/768 e c5 c5 c5 c5 bb4 c5) (h. d5 q 0.76) (q. g5 e f5 eb5 d5 c5 eb5) (e d5 tie s tie z^3y s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s c5 tie z^s bb4 tie 3y c5 -47/768 z^3y bb4 s a4 tie z^e bb4 3y a4 -95/768 s g4 tie z^3y s a4 tie z^e bb4 tie 3y a4 -95/768 z^3y bb4 e g4 tie) (z^q d5 3y g4 -17/64 e a4 1.0 tie s tie t tie u tie 3x tie 3y -3t.. e bb4 tie s tie t tie 3t tie 3u -y e g4 tie s tie t tie x..) (-s -3x h d4 tie e tie t tie x tie 3t -q) (q eb5 0.76 e e e e e f5 eb5) (e d5 tie z^3y s eb5 tie z^s d5 tie 3y eb5 -47/768 z^3y d5 s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s f5 tie z^s eb5 tie 3y f5 -47/768 z^3y eb5 q d5 -) (q c5 e e e. s eb5 e d5 c5) (h. bb4 -q) (q a4 e e e e e. d5 s) (q d5 tie s tie z^s gb5 tie 3y d5 -47/768 z^3y gb5 s e5 tie z^s d5 3y e5 -47/768 q d5 tie z^3y e a4 tie s tie 3y t tie x tie u tie 3x tie 3y tie) (3y a4 -x -3x -3y e d5 1.0 tie s tie t tie u -3x -3y e a4 tie s tie t tie x tie u tie 3y -x e bb4 tie s.. -x. e g4 tie s tie t tie u) (-s -3y h d5 tie e tie t tie x tie u tie 3x tie 3y e. a4 0.76 s) (q d5 1.0 tie z^q a4 mf tie 3y d5 1.0 -191/768 3y a4 mf 23/768^t 0.19 t c5 1.0 q bb4 tie s tie z^e a4 0.76 tie 3y bb4 1.0 -95/768) (z^3y a4 0.76 h. g4 mf)) name-of-the track-2 '((q b4 0.5 e. a4 s) (q b4 e a4 b4) (q g4 e fs4 a4) (q e4 e -) (q fs4 e e) (q c5 e. e4 s) (q ds4 e e4 e4) (q b4 -e b4) (q. a4 e) (q g4 -e g4) (e fs4 fs4 b4 b4) (q g4 e -s g4) (q. fs4 e) (q e4 e e b3) (q b3 tie 3y 23/768^t 0.12 t d4 mf e c4 0.5 tie z^s b3 0.12 tie 3y c4 0.5 -47/768) (3y b3 q tie e tie s tie t tie x tie u tie 3x tie 3y) (q b4 e e a4) (q g4 e e fs4) (q e4 e e) (q. c5 -e) (q c5 e e b4) (q. a4 -s a4) (e. d5 s e. s c5) (h b4) (q e5 e d5 c5) (q b4 e as4 b4) (q d5 e c5 b4) (q. a4 -e) (q c5 e b4 a4) (q g4 e. fs4 s g4) (q e4 e. c5 s) (q b4 -) (e b4 -q.) (e. b4 s a4 g4 fs4 g4 fs4) (s e4 tie z^3y s ds4 tie z^s e4 tie 3y ds4 -47/768 z^3y e4 s fs4 q b3 tie) (z^e e4 tie 3y b3 -95/768 s e4 tie z^3y s fs4 tie z^s g4 tie 3y fs4 -47/768 x g4 tie 3x tie z^3y s fs4 tie x tie 3x tie z^3q e4 3y fs4 -21/256) (q c5 tie 3y -95/768 s c5 tie z^3y s a4) (e fs4 s c5 a4 fs4 a4 c5 a4) (q fs4 -) (q g4 e e) (e g4 tie z^e d5 3y g4 -95/768 e b4 tie z^3y e g4 tie) (z^e fs4 tie 3y g4 -95/768 z^3y fs4 e e4 fs4 tie z^e a4 tie 3y fs4 -95/768) (z^3y a4 e g4 tie z^e e5 3y g4 -95/768 q d5 tie) (z^3y d5 q g4 e e) (e g4 tie z^e d5 3y g4 -95/768 e b4 tie z^3y e g4 tie) (z^e fs4 3y g4 -95/768 e e4 fs4 a4) (e g4 tie z^3y e e5 q d5 tie) (3y d5 e tie s tie t tie x tie u tie 3x tie 3y e e) (e d5 tie z^e g5 3y d5 -95/768 q d5 tie) (3y d5 e tie s tie t tie x tie u tie 3x tie 3y e. s) (h d5) (q b4 e e) (q b4 tie z^3y t d5 0.12 tie z^t c5 mf 3y d5 0.12 -23/768 e. b4 0.5 tie) (z^3y b4 0.5 q a4 mf e e d5) (q g4)) name-of-the track-3 '((-s g4 0.5 g4 g4 g4 g4 g4 b4) (h g4) (-s a4 a4 a4 a4 a4 a4 c5) (q. a4 -e) (-s b4 b4 b4 b4 b4 b4 d5) (h d5) (-s g4 0.11 g4 a4 b4 g4 a4 b4) (q a4 tie z^3y e g4 -) (-s d5 d5 b4 t s g4 g4 d4 -t) (h d4) (-s d5 d5 b4 b4 g4 g4 d4) (q. e4 -e) (-s c5 c5 a4 a4 fs4 fs4 d4) (h d4) (-s d4 d4 d4 cs4 d4 e4 fs4) (q a4 tie z^e g4 3y a4 -191/768) (-s d5 d5 b4 t s g4 g4 g4 -t) (h c5) (-s c5 c5 c5 c5 e5 g5 e5) (q. d5 -e) (-s d5 d5 b4 b4 g4 g4 g4) (h c4) (-s c4 c4 c4 d4 d4 e4 fs4) (q a4 tie z^3y e g4)) ) (:section title-of-the-score-2 name-of-the track-1 '((-q. e d5 0.63 c5 bb4 -q) (h bb4 tie e e a4 g4 a4) (h g4 tie z^3y q gb4 e d4 tie s tie 3y t tie x tie u tie 3x tie 3y tie) (z^q g4 3y d4 -191/768 q a4 bb4 e. c5 s) (h. d5 -e d5) (q. eb5 e d5 c5 c5 f5 eb5) (e d5 tie s tie z^3y s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s c5 tie z^s bb4 tie 3y c5 -47/768 z^3y bb4 s a4 tie z^e bb4 3y a4 -95/768 s g4 tie z^3y s a4 tie z^e bb4 tie 3y a4 -95/768 z^3y bb4 e g4 tie) (z^h d5 tie 3y g4 -383/768 e d5 a4 bb4 g4) (h. d4 -q) (q bb4 e e e c5 c5 bb4 c5) (q d5 tie e tie z^3y t c5 tie 3t^u. t d5 tie 3t^u. 3u c5 tie tu h bb4 tie) (z^q c5 3y bb4 -191/768 e c5 c5 c5 c5 bb4 c5) (h. d5 q 0.76) (q. g5 e f5 eb5 d5 c5 eb5) (e d5 tie s tie z^3y s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s c5 tie z^s bb4 tie 3y c5 -47/768 z^3y bb4 s a4 tie z^e bb4 3y a4 -95/768 s g4 tie z^3y s a4 tie z^e bb4 tie 3y a4 -95/768 z^3y bb4 e g4 tie) (z^q d5 3y g4 -17/64 e a4 1.0 tie s tie t tie u tie 3x tie 3y -3t.. e bb4 tie s tie t tie 3t tie 3u -y e g4 tie s tie t tie x..) (-s -3x h d4 tie e tie t tie x tie 3t -q) (q eb5 0.76 e e e e e f5 eb5) (e d5 tie z^3y s eb5 tie z^s d5 tie 3y eb5 -47/768 z^3y d5 s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s f5 tie z^s eb5 tie 3y f5 -47/768 z^3y eb5 q d5 -) (q c5 e e e. s eb5 e d5 c5) (h. bb4 -q) (q a4 e e e e e. d5 s) (q d5 tie s tie z^s gb5 tie 3y d5 -47/768 z^3y gb5 s e5 tie z^s d5 3y e5 -47/768 q d5 tie z^3y e a4 tie s tie 3y t tie x tie u tie 3x tie 3y tie) (3y a4 -x -3x -3y e d5 1.0 tie s tie t tie u -3x -3y e a4 tie s tie t tie x tie u tie 3y -x e bb4 tie s.. -x. e g4 tie s tie t tie u) (-s -3y h d5 tie e tie t tie x tie u tie 3x tie 3y e. a4 0.76 s) (q d5 1.0 tie z^q a4 mf tie 3y d5 1.0 -191/768 3y a4 mf 23/768^t 0.19 t c5 1.0 q bb4 tie s tie z^e a4 0.76 tie 3y bb4 1.0 -95/768) (z^3y a4 0.76 h. g4 mf)) name-of-the track-2 '((q b4 0.5 e. a4 s) (q b4 e a4 b4) (q g4 e fs4 a4) (q e4 e -) (q fs4 e e) (q c5 e. e4 s) (q ds4 e e4 e4) (q b4 -e b4) (q. a4 e) (q g4 -e g4) (e fs4 fs4 b4 b4) (q g4 e -s g4) (q. fs4 e) (q e4 e e b3) (q b3 tie 3y 23/768^t 0.12 t d4 mf e c4 0.5 tie z^s b3 0.12 tie 3y c4 0.5 -47/768) (3y b3 q tie e tie s tie t tie x tie u tie 3x tie 3y) (q b4 e e a4) (q g4 e e fs4) (q e4 e e) (q. c5 -e) (q c5 e e b4) (q. a4 -s a4) (e. d5 s e. s c5) (h b4) (q e5 e d5 c5) (q b4 e as4 b4) (q d5 e c5 b4) (q. a4 -e) (q c5 e b4 a4) (q g4 e. fs4 s g4) (q e4 e. c5 s) (q b4 -) (e b4 -q.) (e. b4 s a4 g4 fs4 g4 fs4) (s e4 tie z^3y s ds4 tie z^s e4 tie 3y ds4 -47/768 z^3y e4 s fs4 q b3 tie) (z^e e4 tie 3y b3 -95/768 s e4 tie z^3y s fs4 tie z^s g4 tie 3y fs4 -47/768 x g4 tie 3x tie z^3y s fs4 tie x tie 3x tie z^3q e4 3y fs4 -21/256) (q c5 tie 3y -95/768 s c5 tie z^3y s a4) (e fs4 s c5 a4 fs4 a4 c5 a4) (q fs4 -) (q g4 e e) (e g4 tie z^e d5 3y g4 -95/768 e b4 tie z^3y e g4 tie) (z^e fs4 tie 3y g4 -95/768 z^3y fs4 e e4 fs4 tie z^e a4 tie 3y fs4 -95/768) (z^3y a4 e g4 tie z^e e5 3y g4 -95/768 q d5 tie) (z^3y d5 q g4 e e) (e g4 tie z^e d5 3y g4 -95/768 e b4 tie z^3y e g4 tie) (z^e fs4 3y g4 -95/768 e e4 fs4 a4) (e g4 tie z^3y e e5 q d5 tie) (3y d5 e tie s tie t tie x tie u tie 3x tie 3y e e) (e d5 tie z^e g5 3y d5 -95/768 q d5 tie) (3y d5 e tie s tie t tie x tie u tie 3x tie 3y e. s) (h d5) (q b4 e e) (q b4 tie z^3y t d5 0.12 tie z^t c5 mf 3y d5 0.12 -23/768 e. b4 0.5 tie) (z^3y b4 0.5 q a4 mf e e d5) (q g4)) name-of-the track-3 '((-s g4 0.5 g4 g4 g4 g4 g4 b4) (h g4) (-s a4 a4 a4 a4 a4 a4 c5) (q. a4 -e) (-s b4 b4 b4 b4 b4 b4 d5) (h d5) (-s g4 0.11 g4 a4 b4 g4 a4 b4) (q a4 tie z^3y e g4 -) (-s d5 d5 b4 t s g4 g4 d4 -t) (h d4) (-s d5 d5 b4 b4 g4 g4 d4) (q. e4 -e) (-s c5 c5 a4 a4 fs4 fs4 d4) (h d4) (-s d4 d4 d4 cs4 d4 e4 fs4) (q a4 tie z^e g4 3y a4 -191/768) (-s d5 d5 b4 t s g4 g4 g4 -t) (h c5) (-s c5 c5 c5 c5 e5 g5 e5) (q. d5 -e) (-s d5 d5 b4 b4 g4 g4 g4) (h c4) (-s c4 c4 c4 d4 d4 e4 fs4) (q a4 tie z^3y e g4)) ) etc... ) Regards SB.
  2. What i want to do with library is : import some midifile who have only one track, i.e. one instrument and copy and append the :omn slot content of each of the 1st track of each score into a Library file. The final result would look like this: (in-package :Opusmodus) ;;;--------------------------------------------------------- ;;; Melodies ;;;--------------------------------------------------------- (def-library melodies (:section s1 title-of-the-score-1 '((-q. e d5 0.63 c5 bb4 -q) (h bb4 tie e e a4 g4 a4) (h g4 tie z^3y q gb4 e d4 tie s tie 3y t tie x tie u tie 3x tie 3y tie) (z^q g4 3y d4 -191/768 q a4 bb4 e. c5 s) (h. d5 -e d5) (q. eb5 e d5 c5 c5 f5 eb5) (e d5 tie s tie z^3y s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s c5 tie z^s bb4 tie 3y c5 -47/768 z^3y bb4 s a4 tie z^e bb4 3y a4 -95/768 s g4 tie z^3y s a4 tie z^e bb4 tie 3y a4 -95/768 z^3y bb4 e g4 tie) (z^h d5 tie 3y g4 -383/768 e d5 a4 bb4 g4) (h. d4 -q) (q bb4 e e e c5 c5 bb4 c5) (q d5 tie e tie z^3y t c5 tie 3t^u. t d5 tie 3t^u. 3u c5 tie tu h bb4 tie) (z^q c5 3y bb4 -191/768 e c5 c5 c5 c5 bb4 c5) (h. d5 q 0.76) (q. g5 e f5 eb5 d5 c5 eb5) (e d5 tie s tie z^3y s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s c5 tie z^s bb4 tie 3y c5 -47/768 z^3y bb4 s a4 tie z^e bb4 3y a4 -95/768 s g4 tie z^3y s a4 tie z^e bb4 tie 3y a4 -95/768 z^3y bb4 e g4 tie) (z^q d5 3y g4 -17/64 e a4 1.0 tie s tie t tie u tie 3x tie 3y -3t.. e bb4 tie s tie t tie 3t tie 3u -y e g4 tie s tie t tie x..) (-s -3x h d4 tie e tie t tie x tie 3t -q) (q eb5 0.76 e e e e e f5 eb5) (e d5 tie z^3y s eb5 tie z^s d5 tie 3y eb5 -47/768 z^3y d5 s c5 tie z^s d5 tie 3y c5 -47/768 z^3y d5 s f5 tie z^s eb5 tie 3y f5 -47/768 z^3y eb5 q d5 -) (q c5 e e e. s eb5 e d5 c5) (h. bb4 -q) (q a4 e e e e e. d5 s) (q d5 tie s tie z^s gb5 tie 3y d5 -47/768 z^3y gb5 s e5 tie z^s d5 3y e5 -47/768 q d5 tie z^3y e a4 tie s tie 3y t tie x tie u tie 3x tie 3y tie) (3y a4 -x -3x -3y e d5 1.0 tie s tie t tie u -3x -3y e a4 tie s tie t tie x tie u tie 3y -x e bb4 tie s.. -x. e g4 tie s tie t tie u) (-s -3y h d5 tie e tie t tie x tie u tie 3x tie 3y e. a4 0.76 s) (q d5 1.0 tie z^q a4 mf tie 3y d5 1.0 -191/768 3y a4 mf 23/768^t 0.19 t c5 1.0 q bb4 tie s tie z^e a4 0.76 tie 3y bb4 1.0 -95/768) (z^3y a4 0.76 h. g4 mf)) title-of-the-score-2 '((q b4 0.5 e. a4 s) (q b4 e a4 b4) (q g4 e fs4 a4) (q e4 e -) (q fs4 e e) (q c5 e. e4 s) (q ds4 e e4 e4) (q b4 -e b4) (q. a4 e) (q g4 -e g4) (e fs4 fs4 b4 b4) (q g4 e -s g4) (q. fs4 e) (q e4 e e b3) (q b3 tie 3y 23/768^t 0.12 t d4 mf e c4 0.5 tie z^s b3 0.12 tie 3y c4 0.5 -47/768) (3y b3 q tie e tie s tie t tie x tie u tie 3x tie 3y) (q b4 e e a4) (q g4 e e fs4) (q e4 e e) (q. c5 -e) (q c5 e e b4) (q. a4 -s a4) (e. d5 s e. s c5) (h b4) (q e5 e d5 c5) (q b4 e as4 b4) (q d5 e c5 b4) (q. a4 -e) (q c5 e b4 a4) (q g4 e. fs4 s g4) (q e4 e. c5 s) (q b4 -) (e b4 -q.) (e. b4 s a4 g4 fs4 g4 fs4) (s e4 tie z^3y s ds4 tie z^s e4 tie 3y ds4 -47/768 z^3y e4 s fs4 q b3 tie) (z^e e4 tie 3y b3 -95/768 s e4 tie z^3y s fs4 tie z^s g4 tie 3y fs4 -47/768 x g4 tie 3x tie z^3y s fs4 tie x tie 3x tie z^3q e4 3y fs4 -21/256) (q c5 tie 3y -95/768 s c5 tie z^3y s a4) (e fs4 s c5 a4 fs4 a4 c5 a4) (q fs4 -) (q g4 e e) (e g4 tie z^e d5 3y g4 -95/768 e b4 tie z^3y e g4 tie) (z^e fs4 tie 3y g4 -95/768 z^3y fs4 e e4 fs4 tie z^e a4 tie 3y fs4 -95/768) (z^3y a4 e g4 tie z^e e5 3y g4 -95/768 q d5 tie) (z^3y d5 q g4 e e) (e g4 tie z^e d5 3y g4 -95/768 e b4 tie z^3y e g4 tie) (z^e fs4 3y g4 -95/768 e e4 fs4 a4) (e g4 tie z^3y e e5 q d5 tie) (3y d5 e tie s tie t tie x tie u tie 3x tie 3y e e) (e d5 tie z^e g5 3y d5 -95/768 q d5 tie) (3y d5 e tie s tie t tie x tie u tie 3x tie 3y e. s) (h d5) (q b4 e e) (q b4 tie z^3y t d5 0.12 tie z^t c5 mf 3y d5 0.12 -23/768 e. b4 0.5 tie) (z^3y b4 0.5 q a4 mf e e d5) (q g4)) title-of-the-score-3 '((-s g4 0.5 g4 g4 g4 g4 g4 b4) (h g4) (-s a4 a4 a4 a4 a4 a4 c5) (q. a4 -e) (-s b4 b4 b4 b4 b4 b4 d5) (h d5) (-s g4 0.11 g4 a4 b4 g4 a4 b4) (q a4 tie z^3y e g4 -) (-s d5 d5 b4 t s g4 g4 d4 -t) (h d4) (-s d5 d5 b4 b4 g4 g4 d4) (q. e4 -e) (-s c5 c5 a4 a4 fs4 fs4 d4) (h d4) (-s d4 d4 d4 cs4 d4 e4 fs4) (q a4 tie z^e g4 3y a4 -191/768) (-s d5 d5 b4 t s g4 g4 g4 -t) (h c5) (-s c5 c5 c5 c5 e5 g5 e5) (q. d5 -e) (-s d5 d5 b4 b4 g4 g4 g4) (h c4) (-s c4 c4 c4 d4 d4 e4 fs4) (q a4 tie z^3y e g4)) etc... )) SB.
  3. Rangarajan, it is awesome !! 1000 thank you !! It is exactly what i wanted, and it is a very good course of common lisp programming for me :-) Thank you very much. It is really super useful. Regards Stéphane
  4. Hi Rangarajan, thank you for your kind proposition. What i want basicaly is to serialize them (i.e., write each to a separate file). But a would love also to be able to write them directly in Library files for algorithmic access to this material. Imagine the creation of Library of piano accompaniment figures, strings ostinato etc... directly extracted from midi file and called in score script by the function Library.... i am ok to use this forum if you agree because this information could be useful for other users too and i think sharing and knowledge exchange is good. Regards Stéphane
  5. Hi, thank you for this very nice article, very interesting ! I have used your fonction for convert midi files to score and it is very useful but i have a question: How can i do if i want to convert all the Midi-files from a folder to score in one program ? i have a bit experimenting with loop macro etc.. but can't figure how to batch convert a full folder of midi-files to scores. Could you help me a bit please ? Thanks Stéphane
  6. Hi Rangarajan, when composing, i always start in Opusmodus and do almost all in Opusmodus. I use Score editor only in the very final phase of composition. Because for me, the Opusmodus script is the Sketch of the piece and also the final piece. It is a bit like a stone in the hand of a sculptor, i start with an idea (rhythm, harmony, atmosphere, whatever...) and the vision of the piece emerge globally in my head and i try to render it in the Opusmodus script when writing the code by iterative successive refinement and more and more fine definition of what i want to hear and how to render it in a repeated loop between my imagination and the score script and Opusmodus output. But i need to precise what i often try to do with Opusmodus script is to define a musical relation between events and not necessary a fixed piece of music. For me the scipt is a model of my musical thinking and the script help me to output different instances of this thinking. I think it is a training, typical from music composition (i suppose..), to have some idea and to learn how to develop this ideas and how to put this ideas and developments side to side in a global and coherent way in a full vision of the global form of the piece. In my case, it took many years to gain this capability but Opusmodus can help a lot in the music composition knowledge acquisition process with his fast feedback loop between the user and the software. For my part, i am not a good programmer, more a musician but i'm trying to progress in Lisp. By the way, i have some question to ask to you about the Midi importation techniques in Opmo because your article on your blog was very interesting but it is not the place for this subject, it is another thread and i will write about it in the correct place Best regards Stéphane
  7. Hi, here's a new score, Après la pluie, scored for a friends trio. Opusmodus score and Notation file score attached to this post. SB. ApresLaPluieTrio - Partition et parties.pdf ApresLaPluieTrio.opmo
  8. when composing, you can use the navigator in the workspace for stock all the version of your piece, you can do my-piece 1.01, my-piece 1.02 etc... It is generally the way i use when composing with opusmodus. SB.
  9. Hi Lance, don't hesitate to ask on this forum if you need help. stephane
  10. Hi, you can use all the Opusmodus Library functions to store and retrieve material like phrases, motives, chords, scales and full part of song you have imported from midi. In library, you can put this material in sections, named for example: dark, clear, joyful etc... and call this material with rules and structures. Try the demo version of Opusmodus and have a look to the Library functions and associates. SB.
  11. Hi, may be this can do what you want: (make-scale 'c4 14 :alt '(13 -11) :type :pal) SB.
  12. here's a small exemple of using motif-map function for the particular case of legato slurs: (setf len '((e e e e q -q e e)(q e e q s s s s e -e))) (setf art (motif-map '(((e e e e) (leg leg leg -)) ((e e) (leg -)) ((s s s s) (leg leg leg -)) ) len :otherwise '- :swallow t)) (setf phrase (make-omn :pitch (rnd-sample 24 (make-scale 'a3 18)) :length len :articulation art ))
  13. hi, have a look to the LENGTH-WEIGHT documentation. SB.
  14. I think it is not possible for now. Janusz, any idea about that ? S.
  15. Sometimes we generate some flow of pitch and lengths that we assemble later into OMN material, It can be tiedous to add manually the articulations particularly the "leg" omn instruction, and it can sometimes be useful to have a technique for automated implementation of part of these task, who it will be always possible to edit more precisely thereafter. Below a possible technique based on the recognition and association of patterns of lengths values with articulation instructions. At first, we define a stream of lengths for our phrase: (setf len '(1/8 1/8 1/16 1/16 -1/16 1/8 1/8 1/8 1/8)) and we generate with the help of the function substitute-motif some articulations based on motivic lengths patterns. The substitute-motif will search for motives and will replace this motives by other (in that case, replace by motives of articulation instructions) If the function doesn't find some corresponding motives, it will use the :otherwise clause. (setf artic (substitute-motif '((1/8 1/8)(1/16)) '((leg -)(stacc)) len :otherwise '-)) ;=> (leg - stacc stacc - leg - leg -) We have to process this output now with the function gen-swallow for "swallow" the item corresponding to rest values. (setf artic.swallow (gen-swallow len artic)) => (leg - stacc stacc leg - leg -) Finally, we assemble all the parameters into an OMN stream with the make-omn function: (setf omn (make-omn :pitch '((c4 d4 e4 f4 g4)) :length len :velocity '((f)) :articulation artic.swallow)) Here's a complementary score example: ;;; Length defintion based on euclidean algorithm (setf basery (euclidean-rhythm (rnd-sample 16 '(16 18 24)) 4 16 '1/16 :type 2)) ;;; Apply the search and substitute process on each of the sublists ;;; with mapcar function (setf artic (mapcar (lambda(x) (substitute-motif '((1/16 1/16 1/16 1/16)(1/16 1/16 1/16)(1/16 1/16)(1/8 1/8) (1/4)(1/8) ) ;old '((leg leg leg -)(- - -)(leg -)(leg -) (stacc)(stacc) ) ;new x :otherwise '- )) basery)) ;;;Cleaning with gen-swallow (setf artic.swa (gen-swallow basery artic)) ;;; Pitch generation based on white noise (setf pch (vector-to-pitch '(g3 c5) (gen-white-noise 64))) ;;; Parameters assembly (setf p1.omn (make-omn :pitch pch :length basery :velocity '((f)) :articulation artic.swa )) ;;; Get the times signatures (setf ts (get-time-signature p1.omn)) ;;; Score definition (def-score solo ( :title "solo" :composer "S.Boussuge" :key-signature 'chromatic :time-signature ts :tempo 108 :layout (violin-layout 'violon) ) (violon :omn p1.omn :channel 1 :sound 'gm :program 'violin) ) SB.
  16. Hi, it was also possible without programing with gen-tuplet function: (gen-tuplet 1 1 'm 'n 'w '(1 2 3 4 5 6 7 8 9 10 11 12)) => ((1) (1/2 1/2) (1/3 1/3 1/3) (1/4 1/4 1/4 1/4) (1/5 1/5 1/5 1/5 1/5) (1/6 1/6 1/6 1/6 1/6 1/6) (1/7 1/7 1/7 1/7 1/7 1/7 1/7) (1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8) (1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9) (1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10) (1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11 1/11) (1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12 1/12)) SB.
  17. Hi, Attached to this post, you will find an Orchestral template based on the Opusmodus Orchestra Romantic Template. This template is made with some ready to use configuration and parameters, i.e.; you can start to use it immediately for your own composition, just change the parameters, tweak them, explore and experiment. I made this template for help the people who start with Opusmodus and want to have immediate fun with it and want to learn by hacking more than by coding ;-) You also will find attached a possible raw audio example of a possible basic output of the template used in his most basic form (just evaluated and play). SB. ExampleOrchestralSectionMakerTemplate.mp3 OrchlRmtcSectionMk.opmo
  18. Hi, here's 2 piece from the same algorithm slightly modified for the second version. SB.
  19. Hi, this could be a solution: (setf orig '((h c6 mp) (w. f5 pp) (d a4 mp))) (defun prepa (lst) (car (pitch-to-integer (omn :pitch lst)))) ; test of prepa: (prepa '(h c6 mp)) (setf ordered (sort (copy-seq orig) #'< :key #'prepa)) SB.
  20. A short piece scored for Violin, Clarinet, Cello and Piano (Opusmodus template :Messiaen Quartet). Score script attached to this post. Music score available a Musicaneo: http://stephaneboussuge.musicaneo.com SB. Score114.opmo
  21. Hi, here's a piece for small orchestra made with my favorite music software SB.
  22. Here is the solution for use with you DEF-SCORE without MAKE-OMN use. This solution is to use GEN-SWALLOW function: ;;; Notes played in the last 2 bars are not as per this list (setf rhy1 '((-w) (-w) (-w) (-w) (-w) (-w) (1/4 1/4 1/8 1/8 1/4) (1/4 1/4 1/8 1/8 1/4))) (setf m1 (gen-swallow rhy1 '((c4) (e4) (b4) (d5) (g4) (g4) (c5 d4 c5 c5 c5) (a4 d4 a4 e5 a4)))) ;;; Notes played in the 6th and 8th bars are not as per this list (setf rhy2 '((1/4 1/4 1/8 1/8 1/4) (1/4 1/4 1/8 1/8 1/4) (1/4 1/8 -1/8 1/4 1/4) (1/4 1/4 1/8 1/8 1/4) (1/4 1/8 1/8 1/4 1/4) (1/4 1/8 -1/8 1/4 1/4) (1/4 1/4 1/4 1/8 1/8) (1/8 1/8 1/4 -1/8 3/8))) (setf m2 (gen-swallow rhy2 '((c4 g4 c4 f4 f4) (e4 d4 c4 d4 f4) (b4 a4 a4 d5 a4) (d5 d5 g4 g4 g4) (g4 d4 d4 g4 c4) (g4 d4 f4 g4 e4) (c5 e5 a4 c5 d4) (a4 a4 e5 e5 a4)))) (def-score progression-example ( :key-signature 'chromatic :time-signature '(4 4) :tempo 120 ) (instr1 :pitch m1 :length rhy1 :velocity '(f) :channel 1 :sound 'gm :program 'Glockenspiel) (instr2 :pitch m2 :length rhy2 :velocity '(f) :channel 2 :sound 'gm :program 'Flute) ) Best SB
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy