Jump to content


  • Posts

  • Joined

  • Last visited

Contact Methods

Profile Information

  • Gender

Recent Profile Visitors

3,745 profile views
  1. Hi, It's likely I'm not fully understanding the integer-to-pitch function in this case, so any help is much appreciated. I have an arbitrary integer sequence with no repeated elements: (setf test-seq '(13 80 61 81 74 72 46 64 31 47 77 22 19 69 7 2 26 71 33 73 59 55 3 39 62 5 65 44 38 49 14 4 52 53 66 57 29 21 6 78 35 10 41 88 76 9 28 8 15 17 43 25 58 42 12 67 70 20 82 87 63 18 56 16 30 34 86 50 27 84 24 45 51 40 75 85 37 36 23 32 60 68 83 11 54 79 48 1)) ; all the notes on the piano ; I can see that the elements are unique: (equalp (length test-seq) (length (remove-duplicates test-seq))) t ; Here's what I'm failing to understand -- (integer-to-pitch test-seq) should not have any duplicates, but it does: (sort-asc (integer-to-pitch *my-log-seq* :quantize 1/2)) (cs4 d4 eb4 e4 f4 fs4 g4 gs4 a4 bb4 b4 c5 cs5 d5 eb5 e5 f5 fs5 g5 gs5 a5 bb5 b5 c6 cs6 d6 eb6 e6 f6 fs6 g6 gs6 a6 bb6 b6 c7 cs7 d7 eb7 e7 f7 fs7 g7 gs7 a7 bb7 b7 c8 c8 c8 cs8 cs8 cs8 d8 d8 d8 eb8 eb8 eb8 e8 e8 e8 f8 f8 fs8 fs8 g8 g8 gs8 gs8 gs8 a8 a8 a8 bb8 bb8 bb8 b8 b8 b8 c9 cs9 d9 eb9 e9 f9 fs9 g9) Perhaps I'm not fully understanding integer-to-pitch. Is there a better function I can use to map an integer to a unique pitch? Many Thanks, Paul Marquardt
  2. This is excellent -- and the feature to accept lists of lists is very helpful -- thank you
  3. OMers, I wrote this function and use it in my composition work. Please feel free to steal use it. It returns the "polarity" of a sequence, defined as the ratio of consecutive uneven and even interval classes (IC) in a sequence. I use this as a way of testing if a generated sequence contains a balanced mix of even or uneven ICs. (defun polarity (in-seq) (when (equal (length in-seq) 0) return 0 ) (let((accum 0) (int-pairs (interval-class in-seq))) (mapcar (lambda (x) (when (evenp x) (incf accum) )) int-pairs) (/ (* accum 1.0) (- (length in-seq) 1)) ) ) Some examples: ;; The polarity of a chromatic scale is 0.0, as there are no even interval classes. OM 9 > (polarity '(0 1 2 3 4 5 6 7 8 9 10)) 0.0 ;; The polarity of a whole-tone scale is 1.0, as there are no uneven interval classes. OM 10 > (polarity '(0 4 8 2 6 10)) 1.0 ;; The polarity of a chromatic scale is 0.0, as there are no even interval classes. OM 9 > (polarity '(0 1 2 3 4 5 6 7 8 9 10)) 0.0 ;; The polarity of a sequence of alternating even and uneven ICs is 0.5. OM 14 > (polarity `(0 6 11 5 10 4 9 3 8 2 7 1 6)) interval-class Right now it only works on sequences of numbers and there's no error handling. I would appreciate very much any advice on a concise and OM-ian way to extend it to accepts either integers or pitch symbols like '(c4 fs4 b4 f5 bb5). Thanks! Paul Marquardt
  4. Thanks -- that seems to work. It doesn't always give me what I expect, but I'm a fairly novice Lisper LOL.
  5. Is there a command or key combination to format Lisp code? I'm still learning the formatting standards for Common Lisp and more complex forms in my code are a total mess. I'm not seeing anything in Help -> Display Commands List... Thanks! Paul M.
  6. I see OpusModus 2.0 is scheduled for release soon-- I look forward to some of the new features. I've been running Catalina for several months. I used to have two Macs, where I could have them at different versions, but no I have only one with 10.15 Catalina. It's been several months since I've been able to use OpusModus. I'd like to know: 1. Will there be a pre-2.0 version that will be released with compatibility with OS Catalina 10.15? 2. If so, will it be a free or paid upgrade? 3. Will 2.0 be compatible with OS Catalina 10.15 when it comes out? Thanks in advance, Paul M.
  7. Hi, So I found what seems to be my license key. It's a string of 68 numbers and capital letters. When I paste it in the verification field to buy the upgrade, it returns "License Key can't be found in our database". Is there an alternate method to upgrade?
  8. Hi, I have OpusModus 1.2.23428 and am considering the upgrade to 1.3. It asks for a license key, but I can find it in the application itself (Help, About, Register, etc) or in other common places, such as $HOME/Library/Application Support, etc. What's the best way for me to get my license? Thanks! Paul M. Hot diggity dawg-- found the license email from 2015! It's safely stored away now In case I didn't, is there a recovery process?
  9. I find the permute function very useful, but I've some across the need to work with a very large number of permutations (all possible 12-note rows, but other situations as well). I think it would be great to have a companion function, something like nth-permutation, that returns the nth permutation of a list, as we know there will be (setq num-perms (factorial (length my-list))) permutations, and they can be traversed in a simple (loop from i upto num-perms (do-stuff (nth-permutation i))). For numbers beyond 10, the list is too large to store in memory. The Wikipedia article on permutations has some excellent strategies on cycling through all permutations one at a time and even offers some pseudo-code. I'm working on one in Common Lisp but I'm pretty much of a newbie. I'll gladly share it if I can get it working. Thanks! Paul
  10. Is there a function or some parameter I can set to avoid note collisions in chords? For a very simple example, to re-notate the chord (c4 cs4 e) as C, D flat, E. If not, another question-- maybe a way to set all D sharps to be notated as E flat, etc. Thanks! Paul M.
  11. Hi, Is there an OpusModus function (I'll bet there is) that can create lists (chords, etc) created from items selected from lists of varying lengths? Something like this: Source lists (3 lists): ( '(c4 d4 e4) '(f4 g4 a4 b4) '(cs4 ds4 fs4 gs4 as4) ) Output, successive items from each list: (list '(c4 f4 cs4) '(d4 g4 ds4) '(e4 a4 fs4) '(c4 b4 gs4) '(d4 f4 as4) '(e4 g4 cs4) ...) I'm having a great time learning LISP and OM (I come from Python/Java background mostly). I looked through the gen- functions, but nothing seemed to match. I was going to try to write a LISP function, but I figure there was already something in OM, as it seems geared towards these types of transformations. Thanks!
  12. Yes-- I was able to run the latest version of Jack and version 1.0.15697 of Opusmodus. Thanks! Paul
  13. Hi, I'm starting a new post for an issue where the trial version wouldn't load on older hardware for some users. This is more of a question than a request for support. I needed to uninstall Jack Audio on OS X to get Opusmodus to work. I even tried a newer version of Jack and had the same problem. I removed Jack and an happily using OPM. I will eventually need to reinstall Jack. My question is: Is Opusmodus known to work with Jack on newer hardware? I plan on updating my hardware at some point soon and could possibly do without it for a while (I'm doing less SuperCollider at the time being), but I would eventually need to run Jack on the machine running OPM. Thanks, Paul
  • Create New...

Important Information

Terms of Use Privacy Policy