Jump to content

opmo

Administrators
  • Posts

    2,891
  • Joined

  • Last visited

Everything posted by opmo

  1. NEW: DO-TIMELINE The function DO-TIMELINE distributes an operation over a number of bars, if x. If - the bar is unchanged.
  2. Thank you for finding the error. The correct keyword is VOICE and not CHORD. (gen-trope my-trope :voice nil) This is only a doc error and will be fixed.
  3. PARTIAL-DIVIDE document fix.
  4. We are excited to announce new functions in Opusmodus and we hope you will find them helpful in your work. NEW: Spectral Composition Tools ;;; Spectral Tools (import-spectral-spear "Imports spectral data from the SPEAR application.") (highest-partial "Returns the highest partial value of a given collection of partials data.") (lowest-partial "Returns the lowest partial value of a given collection of partials data.") (normalize-partials "Returns a float-vector with the amplitudes normalized so that their magnitudes add to 1.0.") (partial-divide "Divide a list of partials into sublists of a given length.") (partial-row "Converts frequency data of partials into a unique pitch row (each pitch becoming a root).") (partial "Returns partials of a given type of data.") (partial-remove "Removes partials from a given type of data with its value (min, max).") (partial-sort "Sorts partials of a given data type.") PITCH-ROW This function allows a pitch series to be altered into a unique pitch row (each pitch is quasi a root). (setf mat (vector-to-pitch 'piano (mod-sine-waves 4 64 4 0.6 :modulation (gen-sine 64 1 '(0.5 0.2 0.1) :phase 60)))) => (f4 cs6 gs7 b7 f7 c7 bb3 g3 e2 a0 bb0 a0 fs4 fs2 fs2 d6 bb6 c7 a0 b0 bb0 a0 b7 gs7 c7 bb7 bb4 b2 b4 a0 a0 d1 eb6 bb2 d2 e3 b6 eb4 d3 c2 bb0 cs7 a0 a2 cs3 f7 c7 e6 d7 eb7 f2 a0 g7 gs7 a7 c5 cs1 c5 bb7 c8 e6 b2 bb3 fs6) (pitch-row mat) => (f4 cs6 gs7 b7 c7 bb3 g3 e2 a0 fs4 d6 eb6) More options have been added to: CREATE-LIBRARY Another option we have is to save the library output as a file directly into the DEF-LIBRARY directory. To do that we use the :file keyword. The :file name must be a string "name-of-the-file". (create-library 'Binary-Rhythmics '4-bit-binary 'bin (combination2 4 '(1 0 1 0)) :file "4-bit-library") We also can add an annotation (e.g. explanation or comment) by using the :note keyword: (create-library 'Binary-Rhythmics '4-bit-binary 'bin (combination2 4 '(1 0 1 0)) :file "4-bit-library" :note "Library explanation or comment") The next time we open the application the file will load at the start and will be ready for use. LIBRARY (library 'binary-rhythmics '4-bit-binary 'bin15) => (1 1 1 1) (library 'binary-rhythmics '4-bit-binary nil :random 10) => ((1 1 0 1) (1 0 1 1) (0 1 0 1) (0 1 0 1) (1 1 0 1) (0 1 0 0) (0 0 1 0) (1 0 0 0) (0 1 1 0) (0 1 1 0)) (library 'binary-rhythmics '4-bit-binary nil :collect '(1 2 3 2 1)) => ((0 0 0 1) (0 0 1 0) (0 0 1 1) (0 0 1 0) (0 0 0 1)) (library 'binary-rhythmics '4-bit-binary nil :collect :all) Above there is an example of a defined library file followed by four possible output options. The first is to output a single library entry. The second picks 10 entries at random. The third allows an integer list to determine which entries in the library list can be collected together in a set order. The fourth :all will collect the entire library.
  5. At the moment I am busy with programming and testing the spectral functions and FUNCALL-SHEET function. At the end of the week I should have something very exiting for all of us. As for the tempoThe DEF-SCORE marco works only with one tempo line. I don't think the midi can't deal with multi tempo events - separate tempo events for each instrument. The best way to do that would be to import the musicxml Opusmodus files into Sibelius or Finale and then there assemble the two or more scores into one.
  6. (integer-to-pitch '(1 2 3 4 5)) => (cs4 d4 eb4 e4 f4) Do check the Conversions 'System Library' section.
  7. Instruments can't use the own tempo values and changes. You need to do that with modification to the length of each instrument.
  8. To import various tables would need number of functions for each table. Mapping any data to pitches or any other parameter can be done with DEF-CASE or CREATE-LIBRARY function. At the moment I am working on spectral composition functions with data files as a source. Data example: par-text-partials-format point-type time frequency amplitude partials-count 5188 partials-data 0 14 0.000000 0.187415 0.000000 12057.894531 0.000101 0.012494 12063.160156 0.000068 0.037483 12090.256836 0.000050 0.049977 12089.161133 0.000072 0.062472 12088.927734 0.000090 0.074966 12089.553711 0.000092 0.087460 12090.407227 0.000074 0.099955 12090.043945 0.000054 0.112449 12088.445312 0.000055 0.137438 12052.342773 0.000091 0.149932 12025.845703 0.000064 0.162426 12027.272461 0.000042 0.174921 12049.388672 0.000037 0.187415 12049.388672 0.000000 1 14 0.000000 0.187415 0.000000 11805.857422 0.000155 0.012494 11809.532227 0.000107 0.024989 11815.603516 0.000094 0.037483 11816.318359 0.000098 0.049977 11812.620117 0.000099 0.062472 11809.903320 0.000105 0.074966 11810.748047 0.000094 0.087460 11810.438477 0.000065 0.099955 11805.530273 0.000057 0.112449 11822.302734 0.000090 0.149932 11796.957031 0.000115 0.162426 11829.777344 0.000072 0.174921 11835.147461 0.000053 0.187415 11835.147461 0.000000 2 43 0.000000 0.562245 ... The data file then is converted to library format: (def-library spec-tbn (:section frames p0 '(0.0 2549.2737 3.3E-5 0.012494 2558.6868 8.6E-5 0.024989 2560.725 1.55E-4 0.037483 2563.198 2.2E-4 0.049977 2565.248 2.65E-4 0.049977 2565.248 2.65E-4 0.062472 2565.5603 2.54E-4 0.074966 2557.2236 1.97E-4 0.08746 2553.4763 1.61E-4 0.099955 2556.5354 1.16E-4 0.112449 2560.5886 9.7E-5 0.124943 2559.0767 7.4E-5 ...) p1 '(0.0 2460.5183 3.3E-5 0.012494 2457.8718 7.3E-5 0.024989 2467.1047 8.6E-5 0.037483 2475.6711 8.5E-5 0.049977 2483.0276 8.7E-5 0.049977 2483.0276 8.7E-5 0.062472 2487.2944 9.0E-5 0.074966 2489.3833 8.3E-5 0.08746 2485.5657 6.4E-5 0.099955 2505.8418 3.4E-5 0.112449 2483.4546 9.7E-5 0.124943 2461.0674 1.6E-4 0.124943 2461.0674 1.6E-4 0.137438 .... And with LIBRARY function we retrieve the desired frame: (library 'spec-tbn 'frames 'p273) => (2.011587 1575.7258 2.89E-4 2.024082 1573.7743 2.95E-4 2.036576 1569.0957 2.63E-4 2.04907 1569.0957 0.0)
  9. Opusmodus Version 1.1.17409 has addressed the problem. Any snippet selection should play and display.
  10. Check the function LENGTH-FIT. Try this: (length-fit longlist)
  11. You will need to find your own way to do the conversion. There are few functions with should help you with the mapping of the data. Do you have an example of the source you would like to transform to OPMO?
  12. New: OSX 10.11 Change the way we do pane titlebar highlighting. In the LCI, explicitly request monospaced numbers in the system font. Fix to MIDI and LCI panes. One Note Dynamic NIENTE: 0<ppppp 0<pppp 0<ppp 0<pp 0<p 0<mp 0<mf 0<f 0<ff 0<fff 0<ffff 0<fffff ppppp>0 pppp>0 ppp>0 pp>0 p>0 mp>0 mf>0 f>0 ff>0 fff>0 ffff>0 fffff>0 0<ppppp>0 0<pppp>0 0<ppp>0 0<pp>0 0<p>0 0<mp>0 0<mf>0 0<f>0 0<ff>0 0<fff>0 0<ffff>0 0<fffff>0 0<ppppp> 0<pppp> 0<ppp> 0<pp> 0<p> 0<mp> 0<mf> 0<f> 0<ff> 0<fff> 0<ffff> 0<fffff> <ppppp>0 <pppp>0 <ppp>0 <pp>0 <p>0 <mp>0 <mf>0 <f>0 <ff>0 <fff>0 <ffff>0 <fffff>0
  13. Score example from the Opusmodus home page 'Made in Opusmodus'. Focus: PITCH-FIGURATE Theme (setf theme '((-e eb4 stacc s gb3 d3 -e) (e eb4 stacc s gb3 q d3 stacc -s) (-s e eb4 stacc s gb3 d3 -e s eb4 tie+stacc) (s eb4 gb3 d3 stacc gb3 eb4 a3 -e) (-e eb4 stacc s gb3 d3 -e) (e eb4 stacc s gb3 q d3 tie s tie+stacc) (s d3 -e eb4 stacc s gb3 d3 -) (-s e eb4 stacc s gb3 d3 stacc gb3 eb4 a3))) Baritone (setf barsax1 (length-span 8/4 '(s - s s e e - s s t t t t e -q))) (setf barsax2 (ambitus '(c2 gs4) (pitch-figurate '(3 2) (make-omn :pitch (randomize-octaves 'baritone-sax (rnd-order (gen-loop 16 (rnd-row :type :pitch)))) :length (rnd-order (gen-repeat 16 (list barsax1))) :velocity '(f) :articulation (rnd-order (gen-loop 16 '(- - stacc - stacc - - - - stacc stacc)))) :interval '((1 -1) (1 13 -13)) :variant '?))) (setf baritone (assemble-seq theme (sort-asc (subseq barsax2 0 4) :section 0) theme (sort-desc (subseq barsax2 4 12) :section 0) theme)) Contrabass (setf bass1 (length-span 8/4 '(e - s s e e - s s e))) (setf bass2 (ambitus 'bass (pitch-figurate '(1 2) (make-omn :pitch (pitch-transpose -24 (rnd-order (gen-loop 16 (rnd-row :type :pitch)))) :length (rnd-order (gen-repeat 16 (list bass1))) :velocity '(f)) :interval '((1 -1) (1 6 -6)) :variant '?))) (setf contrabass (assemble-seq (pitch-transpose -12 theme) (subseq bass2 0 4) (pitch-transpose -12 theme) (subseq bass2 4 12) (pitch-transpose -12 theme))) Drums (setf hh1 (length-span 8/4 '(-s gs2 ff))) (setf oh1 (length-span 8/4 '(-s - bb2 ff -))) (setf ch1 (length-span 8/4 '(s fs2 ff -))) (setf sn1 (length-span 8/4 '(-e d2 - - a2 - - s = q f2 e))) (setf bd1 (length-span 8/4 '(-s b1 ff e c2 = -e. e = -e. -s))) (setf hh (rnd-order (gen-repeat 18 (list hh1)))) (setf oh (rnd-order (gen-repeat 18 (list oh1)))) (setf ch (rnd-order (gen-repeat 18 (list ch1)))) (setf sn (pitch-figurate '(3 2) (rnd-order (gen-repeat 18 (list sn1))) :interval '(-1 -2 14))) (setf bd (rnd-order (gen-repeat 18 (list bd1)))) Def-Score (def-score trio-atonal (:title "Trio Atonal" :composer "Opmo" :copyright "Copyright © 2015 Opusmodus" :key-signature 'atonal :time-signature '(4 8) :tempo 100 :layout (list (baritone-sax-layout 'baritone) (contrabass-layout 'contrabass :name "Bass" :abbr "Bass"))) (baritone :omn baritone :channel 1 :sound 'gm :program 'Baritone-Sax :volume 100) (contrabass :omn contrabass :channel 2 :sound 'gm :program 'Acoustic-Bass :volume 70) (hh :omn hh :channel 10 :sound 'gm :program 0 :volume 100) (oh :omn oh) (ch :omn oh) (sn :omn sn) (bd :omn bd) ) Trio Atonal.opmo
  14. Click on the notation and select 'Save' from the menu. Same with MIDI file.
  15. My development workspace has a round 500 files. It is possible that to many files are open in the Composer and in the Assistant panel. To found out how many files are open click the top left corner icon. I suggest you close some of them if more then 20 are open. To close a file click on the the top right cross x icon. To close all Assistant files and panels with one click press alt+click in the x.
  16. Thank you for the annotation, excellent.
  17. Impressive study and great score! I see you have found your own way to create the score dynamically. I am sure many OPMO users will love to study the score and the technique. This score would be great with annotation. I like how you use the Schillinger interference functions to generate the length series.
  18. New: One Note Dynamic Crescendo-Diminuendo <ppppp> <pppp> <ppp> <pp> <p> <mp> <mf> <f> <ff> <fff> <ffff> <fffff> Diminuendo-Crescendo >ppppp< >pppp< >ppp< >pp< >p< >mp< >mf< >f< >ff< >fff< >ffff< >fffff< Crescendo ppppp<pppp ppppp<ppp ppppp<pp ppppp<p ppppp<mp ppppp<mf ppppp<f ppppp<ff ppppp<fff ppppp<ffff ppppp<fffff pppp<ppp pppp<pp pppp<p pppp<mp pppp<mf pppp<f pppp<ff pppp<fff pppp<ffff pppp<fffff ppp<pp ppp<p ppp<mp ppp<mf ppp<f ppp<ff ppp<fff ppp<ffff ppp<fffff pp<p pp<mp pp<mf pp<f pp<ff pp<fff pp<ffff pp<fffff p<mp p<mf p<f p<ff p<fff p<ffff p<fffff mp<mf mp<f mp<ff mp<fff mp<ffff mp<fffff mf<f mf<ff mf<fff mf<ffff mf<fffff f<ff f<fff f<ffff f<fffff ff<fff ff<ffff ff<fffff fff<ffff fff<fffff ffff<fffff Diminuendo fffff>ffff fffff>fff fffff>ff fffff>f fffff>mf fffff>mp fffff>p fffff>pp fffff>ppp fffff>pppp fffff>ppppp ffff>fff ffff>ff ffff>f ffff>mf ffff>mp ffff>p ffff>pp ffff>ppp ffff>pppp ffff>ppppp fff>ff fff>f fff>mf fff>mp fff>p fff>pp fff>ppp fff>pppp fff>ppppp ff>f ff>mf ff>mp ff>p ff>pp ff>ppp ff>pppp ff>ppppp f>mf f>mp f>p f>pp f>ppp f>pppp f>ppppp mf>mp mf>p mf>pp mf>ppp mf>pppp mf>ppppp mp>p mp>pp mp>ppp mp>pppp mp>ppppp p>pp p>ppp p>pppp p>ppppp pp>ppp pp>pppp pp>ppppp ppp>pppp ppp>ppppp pppp>ppppp
  19. If you are not using gm drums then don't use channel 10, this channel is reserved for drums only.
  20. New:Don't deselect text on Evaluate Expression - selected snippets or expression will stay selected after evaluation.
  21. The first thing you need to do is to create a source file (.opmo or .lisp). Give the file a name eg. Custom functions.opmo. This file will now be the source file for your functions, make sure the functions are working and that there are no errors. Save the file into the ~/Opusmodus/Extensions folder. The next step is to document the functions that you have created. Go to the ~/Opusmodus/System Library folder and create a new folder for example Custom Function. This folder is where you will place your (TextEdit) .rtfd system library documents (the best way to create a new document is to copy the contents of one of the System Library’s documents and paste it into the newly created .rtfd file). Now replace the function name i.e. variables, values etc… with your own examples and documentation. Each function must have its own document. Place the documents into the ~/Opusmodus/System Library/Custom Function folder. The last step is to create a new file that must be named contents.opmo and place it into the same folder. The form of the contents.opmo file should be written as follows: ;;; Custom functions (foo1 "here you write short note about the foo1 function") (foo2 "here you write short note about the foo2 function") The next time you start the application you should be able to use and see your function documents in the ’System Library’ utilities panel.
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy