One interesting thing that could be implemented as a function could be a form of generating Negative Harmony.
In the video below, there are some explanation of what it is and the origin in the Levy book.
It was a trendy topic due to the Jacob Collier interview. And there are a lot of fun videos making versions of pop tunes using negative harmony.
The way I understand it, it is simply a kind of mapping notes in relation to an axis, like in the figure below.
So we need a function that could map a note in any register to another note in the closest register to the first on.
So, any C note will be mapped to G, all Db to F#, all D to F, all, Eb to E, all B to Ab, all Bb to A.
It´s also possible to generate other mappings as well.
I think that replace map or substitute map can do the job, but I´m not sure (I will try), but I find interesting to post it here to explore the idea.
All the best,
It´s kind of funny to sse in this por versions how every is upside down and how you can generate an entirely new song from exactly the same material.
POP TUNES with negative harmony:
;;; a little extension for lsystems, i needed all generations, not only the final one. i think for in-time-processes it's more interesting, because you will hear/see the way of "growing/developing" ;;; perhaps JANUSZ could extended the original OPMO-function. keep attention about stack-overflow if you have LARGE DEPth :-) ;;; function (defun all-gen-lsystem (ls &key depth ) (loop repeat (1+ depth) for i from 0 to depth collect (rewrite-lsystem ls :depth i))) ;;; setup (defclass sieve_1 (l-system) ((axiom :initform '(1)) (depth :initform 10))) (defmethod l-productions ((ls sieve_1)) (choose-production ls (1 (--> 2 1)) (2 (--> 4)) (4 (--> 2 6)) (6 (--> 1)))) ;;; example ; new => all gen (all-gen-lsystem 'sieve_1 :depth 3) => ((1) (2 1) (4 2 1) (2 6 4 2 1)) ; original => only last gen (rewrite-lsystem 'sieve_1 :depth 3) => (2 6 4 2 1)
What is the Lisp function for stopping playback (bound to the shortcut cmd-esc)?
... I could never add a custom keyboard shortcut to the Opusmodus text editor Hemlock (and I tried), but I just managed adding keyboard shortcuts and a menu for playing Opusmodus snippets and my polyphonic score format to Emacs (thanks to the fact that scores now can be displayed in a separate window). Only need some key for stopping playback as well.
(The main thing I will then miss when using Emacs as the Opusmodus IDE is the close integration of the document, but well, you cannot have everything 🙂 On the plus side, I have a more stable editor and in particular a very good debugger.)