Jump to content

Yuichi Yamamoto

  • Content count

  • Joined

  • Last visited

About Yuichi Yamamoto

  • Rank

Profile Information

  • Gender
  • Location
  • Interests
    Music / Programming

Recent Profile Visitors

713 profile views
  1. Yuichi Yamamoto

  2. gen-tuplet not working for a length longer than 4/4?

    Oh wow, yes that is exactly what I was looking for! Thank you!
  3. gen-tuplet not working for a length longer than 4/4?

    Thank you for your quick reply. OK, I get it. Would there be a quick alternative way of dividing a desired length into tuplets? I'm trying to define a function which will work like (some-func-name 'd 5) which will return quintuplet of 'd. Any ideas? Yuichi
  4. Hi, I'm playing around with the function gen-tuplet and having some bug / unexpected result. When I evaluate some code like (gen-tuplet 1 1 'm 'n 'w 5) I get which is understandable. But when I give the length-value twice the duration, (gen-tuplet 1 1 'm 'n 'd 5) I get whereas I would expect it to be (2/5 2/5 2/5 2/5 2/5). Is this a bug? Or this is just how it is? Cheers, Yuichi
  5. Development Environment / IDE / Editor

    I'm very interested in this topic, too!
  6. muting every other note

    Hi Ole, I'm not very into Lisp language so this is just a quick and dirty solution but works for the given example. ;;Original Melody (setf melo '(q c4 e d4 e e4 q. f4 e g4 q a4 b4)) ;;Define Function (defun skip-notes(original) (let ((len (omn :length original)) (pitch (omn :pitch original))) (let '(pos (loop for i from 1 to (length len) when (oddp i) collect i)) (let '(new-len (flatten (gen-pause (mclist len) :section pos))) (let '(new-pitch (gen-swallow new-len pitch)) (return-from skip-notes (make-omn :pitch new-pitch :length new-len)) ) ) ) ) ) ;;Use it (skip-notes melo) I think someone can improve this, hopefully. Best wishes, Yuichi
  7. Microtonal notations

    Wait, is microtonal notation already supported on the current version? Or are we only talking about the future implementation? Yuichi
  8. Hi, just a quick question. I don't think it is possible but does Opusmodus possibly have the capability of being used from the command line tools like Terminal? Or alternatively, is there any way one can include the Opusmodus package on a normal CCL environment (not on the Opusmodus IDE)? Just out of curiosity. Best regards, Yuichi
  9. Recurrent Evaluation of Music

    Hi, I'm Yuichi. I don't know if there was anyone else who already did similar things or not, but I would like to share the way I achieved the continuously self-evaluating program. I actually made a video of it and hopefully I can post it here but I'll paste the code down here anyway, too. CODE wrap the whole music with a function named "evalAll (better name should be applied): (defun evalAll () (setf pitch (integer-to-pitch (rnd-row))) (setf len (span pitch '(s))) (setf omn (make-omn :pitch pitch :length len)) (def-score 12-tone (:key-signature 'atonal :time-signature '(4 3) :tempo 120) (inst :omn omn)) (display-musicxml '12-tone) (display-midi '12-tone) (sleep 1.5) (evalAll) ) (evalAll) This is just a tiny fragment of music so I'm not going to discuss the music but you see the difference between this and "live-coding-midi". In each loop it re-evaluates itself: meaning if there is random things, it will get each different results. Note that this is an infinite loop so in order to stop this, you have to press "command" + ",". If you don't like the program to freeze while executing this program, there is a way. Thanks to the developers for adding bordeaux-threads in the recent update, you can have multi-threads in Opusmodus now, so if you just make a thread of this recurrent program alone you won't be bothered to be stopped anymore. And extending this idea will lead you to have one recurrent program running while you can freely change some variables(maybe scales / chords/ instruments/ whatever) and it will be, right-on-time, reflected to the music. I hope this will inspire somebody's imagination. Yuichi recurrent.mp4
  10. How do you clear the listener?

    Thank you for the reply. (makunbound) seems very useful! But the reason why I brought this topic was because sometimes after working on a project for a long time, trying a lot of things (usually with messy codes ;p), it is very easy to forget what variable / function names I have used before, right? The problem is: For example, let's say there's a project on which I try really hard and finally finished over a night. Maybe I get very satisfied by the result and go to bed happily. But next the morning, the code does not work. Why? Because after struggling with some codes, adding / modifying / deleting things, I sometimes delete (or change the names of) what is necessary for the project. If I initially declare a variable like "motif" and later rename it to "motif-1", (maybe because I created multiple motifs), of course I have to rewrite all of the variable names for the entire project. But due the fact that I'm a normal human, I don't always remember to properly rewrite everything. And when I forget it, does the program give me error messages? No! Because the deleted "motif" is still there in the memory and working. This is precisely why I intentionally close everything once in 30 minutes, just so that I can check that everything is okay, by just doing "evaluate all".
  11. How do you clear the listener?

    Well, I think "Return To Top Level" is kind of the thing you use when you are stuck in an infinite loop? I meant, for example, when I declare a variable "a" and set it to an integer 100, that "a" is forever going to be stored in the memory as 100, unless I quit the program. Is there an alternative way for clearing the memory?
  12. Hi, quick question: Is there a way to clear all the evaluated variables / functions, or I mean, reset and re-initialize? For now every time I've done something wrong, I quit the whole application and then re-launch it. Would love to know if there is a better way. Yuichi
  13. Multi-thread Programming?

    Sorry to bring this topic back, but it seems that those symbols for the tone names (such as 'c4, 'ds5 etc.) don't get loaded correctly when I include the Opusmodus package? Is it only me? P.S. It happend when I tried to evaluate "vector-to-pitch" or "ambitus" with the arguments of '(c4 c6) and it did not recognize the symbols.
  14. Multi-thread Programming?

    g000001, Thank you so much for your precise information! I was reading through a lot of references about the lisp package thing, but actually what I really wanted to know was how to figure out which package a symbol / function belongs to; so "find-all-symbols" was exactly what I needed. I really appreciate it. Though when I referenced the 'display-musicXML' and 'atonal (symbol), these both belonged to the Opusmodus package itself, but thank you very much to the developers, after updating the app, it all fixed peacefully!