Jump to content

All Activity

This stream auto-updates

  1. Yesterday
  2. Update: I made some progress with the Emacs/Slime interface for Opusmodus 3, but not yet a fully working solution. Just sharing here an intermediate progress report for those interested. I found out that I could start the swank server (the Lisp compiler part of Slime) in the following way. 1. Install the latest version of Slime (link) where it can be found by ASDF (which is by default the folder ~/common-lisp). 2. Execute the following code within Opusmodus (or some file loaded by Opusmodus): (asdf:load-system :swank) (swank:create-server :dont-close t) There is then no error message any longer, but instead I get the following message. ;; Swank started at port: 4005. On the Emacs side, Slime needs to be installed in the usual way (e.g., via a MELPA repository). On the Emacs side then, as before, call M-x slime-connect with the localhost IP 127.0.0.1 and the relevant port (4005 by default). On my particular system, Emacs then somehow gets stalled for a long time, much longer than before when trying to do the same with Opusmodus 2. Emacs is then completely frozen. Anyway, sometimes I already got a working connection between Emacs Slime and Opusmodus 3 now, but not necessarily reproducible. Anyway, will continue following this up and keep you in the loop if I make further progress. If anyone else finds out more, I would be grateful!
  3. An Opusmodus improvisation with Tenor Sax, Piano, Contrabass and Drums.
  4. Last week
  5. So, I understand that the export menu is now integrated into the respective player, and that so far unfortunately there is no MIDI export Lisp function complementing the import functions midi-to-omn or midi-to-score. Thank you!
  6. Is there perhaps a MIDI export function? Something like the opposite of midi-to-omn or midi-to-score, which expects a snippet/score and exports a MIDI file? I would like to export a bunch of MIDI files in one go... BTW: In Opusmodus 2, for exporting individual files we had a menu File > Export. Where is the equivalent in Opusmodus 3? Thanks!
  7. Thanks for your encouragement, Stephane! In case you want to use this and run into difficulties, just let me know. If I am not responding to any messages on the forum (apologies in advance), feel free to send me an email. You'll find my email address in the impression on my website linked in my profile.
  8. Dear Janusz, > I need to check if we can use Emacs with the new Opusmodus (LispWorks). Any updates on the Emacs/Slime interface for Opusmodus 3? I understand/assume that in order to simplify the Opusmodus interface for most of its users, Opusmodus provides its own IDE with convenient features for things like snippet playback. Indeed, Emacs would be unnecessarily confusing for most of Opusmodus' users. However, for actual Lisp/Opusmodus library development, I personally feel the Opusmodus IDE is currently far less suited than Slime. While there is a debugger already integrated in the Opusmodus IDE (thanks), it is basically only the command line version of the 80s. Also, I have not found any cross referencing support in the Opusmodus IDE (e.g., for jumping to the definition of a function call with a single shortcut). Not sure whether the Opusmodus listener has some short cuts to go back in its history etc. Perhaps I am missing some things, but Slime is a completely different cattle of fish for developers in contrast of users (of course, only after its learning curve). Anyway, I understand if you do not have the resources (or if LW does not allow) for Emacs/Slime integration into Opusmodus 3. I just keep using mainly Opusmodus 2 with working Slime in the meantime. Thanks for all your work on Opusmodus!
  9. Update: My tot library can now in principle be loaded into Opusmodus 3. However, note the current disclaimer (link) in the Readme on some still existing issues with its Opusmodus 3 support. Myself, I will for now continue using mainly Opusmodus 2, because there the Emacs/Slime interface still works. For my workflow, that interface makes a huge difference in terms of work speed etc. (I cannot really develop Lisp libraries without access to an interactive debugger, the convenient cross references between different definitions and so on).
  10. Thanks very much, Stephane! I have been looking at ways to get Opusmodus to control Kyma and this looks like a good option. I got it working but had to work around the missing function vector-scale. Is that something you wrote? I also have communication with Kyma working over OSC but I'll have to reinvent some wheels to make that a complete solution. Being able to use Opusmodus Live Coding instead is very neat.
  11. Perfect, absolutely brilliant, I just hadn't gotten that out, thank you very much, now I can sleep peacefully again
  12. (setf pattern '(q. c4 e e4 q g4 b4)) (setf dictum '((1 - 1) :extend (- - s) :span 8/4 :methods (la2 - (la2 ra t-12)))) (counterpoint (list pattern) dictum)
  13. thank you very much for your passion, this will really be the last question on this issue: With the pattern (setf pattern '(q. c4 e e4 q g4 b4)) is there a code for this: (pitch and rhythm are retrograde)
  14. (setf pattern '(q c4 e4 g4 b4)) (setf dictum '((1 - 1) :span 6/4 :methods (la2 - (la2 t-12 r)))) (counterpoint (list pattern) dictum)
  15. what would be the code with your pattern: (setf pattern '(q c4 e4 g4 b4)) For this
  16. Earlier
  17. :extend s means adding rest at the beginning if the span is lager then the given pattern. The la2 will double the rests. Nothing wrong with your code and with the result. To see how all this is work I suggest to make a very simple pattern and see how all this is working. (setf pattern '(q c4 e4 g4 b4)) (setf dictum1 '((1 - 1) :extend s :span 6/4 :methods (la2 - (la2 ra t-12)))) (setf dictum2 '((1 - 1) :extend e :span 6/4 :methods (la2 - (la2 ra t-12)))) (setf dictum3 '((1 - 1) :extend s :span 6/4 :methods (la2 - t-12))) (setf dictum4 '((1 - 1) :span 6/4 :methods (la2 - t-12))) (counterpoint (list pattern) dictum1) => (((-q - - - h c4 mf)) ((-q - - - - -)) ((h b3 mf g3 e3))) (counterpoint (list pattern) dictum2) => (((h c4 mf e4 g4)) ((-q - - - - -)) ((-q - - - h b3 mf))) (counterpoint (list pattern) dictum3) => (((-q - - - h c4 mf)) ((-q - - - - -)) ((-q - q c3 mf e3 g3 b3))) (counterpoint (list pattern) dictum4) => (((h c4 mf e4 g4)) ((-q - - - - -)) ((q c3 mf e3 g3 b3 -q -)))
  18. I understand that ra is gen-retrograde and that if I use :extend s it starts as wanted and is displayed correctly, that is the solution for the example: #|31|# ((2 - 2) :extend s :span 6/4 :methods ((la2 ra) - (la2 ra t-12)) :tempo 112) perfect, violin and violoncello are displayed! but, different example: with :extend s this example #|31|# ((2 - 2) :extend s :span 6/4 :methods (la2 - (la2 ra t-12)) ) shows the Violin in the score and with :extend e #|31|# ((2 - 2) :extend e :span 6/4 :methods (la2 - (la2 ra t-12)) ) the score shows the violoncello I could make a new seq (problem that it is a 6/4?): (setf seq4 '(he b4 p def q bb4 mp> leg q. g4 p def q f4 leg)) #|31|# ((2 - 4) :extend s :span 6/4 :methods (la2 - t-12) ) but that does not work either?
  19. The example of your previous score is correct. Let's check the expression here: #|31|# ((2 - 2) :span 6/4 :methods ((la2 ra) - (la2 ra t-12)) :tempo 112) (setf pat2 '(e f4 p leg e. g4 def e bb4 mp> leg qs b4 def)) (setf 1-step (fit-to-span 6/4 pat2)) => (e f4 p leg e. g4 def e bb4 mp> leg qs b4 p def -h.) (setf 2-step (unfold 'om '(la2 ra) 1-step)) => (-w. he b4 p def q bb4 mp> leg q. g4 p def q f4 leg) (length-span 6/4 2-step) => (-w.) As you can see you need to understand the process of your structure. The (ra) is gen-retrograde, this is why you get (-w) in the first and third voice.
  20. thank you, yes, works like this, the ra function throws the notes out of sync, I understand, how to solve: ((2 - 2) :extend s :span 6/4 :methods ((la2 r ) - (la2 ra t-12)) :tempo 112) ?
  21. #|31|# ((2 - 2) :extend s :span 6/4 :methods ((la2 ra) - (la2 ra t-12)) :tempo 112) #|32|# ((3 3 3) :extend s :span 3/4 :methods (- - - )) #|33|# ((- 2 - ) :extend s :span 6/4 :methods ((ra la2) (ra la2 ) (ra la2 t-12 )):tempo 112))) Just doing this without testing, but I think this is what you need to do.
  22. (Progn (setf seq1 '((s c4 p leg e. cs4 mp ten+def e e4 p leg q. fs4 pp def ))) (setf seq2 '((e f4 p leg e. g4 def e bb4 mp> leg qs b4 def))) (setf seq3 '((e. eb4 p leg qs d4 def s gs4 mf leg e. a4 def))) (setf dictum-d '( #|31|# ((2 - 2) :span 6/4 :methods ((la2 ra ) - (la2 ra t-12)) :tempo 112) #|32|# ((3 3 3) :span 3/4 :methods (- - - )) #|33|# ((- 2 - ) :span 6/4 :methods ((ra la2) (ra la2 ) (ra la2 t-12 )):tempo 112))) (setf globals-d '(- - -)) (counterpoint (list seq1 seq2 seq3) dictum-d :global-methods globals-d :index 'sec-d) (ps 'VSL_ss :vslv1 (list sec-d1) :vslvla (list sec-d2) :vslvlc (list sec-d3) :tempo tempo-sec-d ) ) With this code I would expect: but I get this? Think you for any hint, best wishes Version 3.0.29235 (3.0.29235)
  23. Just drop your functions source file into the ~/Opusmodus/ User Source/ Extensions folder. You might have more than one Opusmodus directory on your system.
  1. Load more activity
×
×
  • Create New...

Important Information

Terms of Use Privacy Policy