Jump to content

Recommended Posts

Hi,

 

how can I do to emulate this wonderful Fibonacci function in Symbolic Composer, great to create "background" patterns.

 

'cause the Fibonacci in OM handle just numbers, and not musical events. In scom, it was something like that:

 

note1, note2, note2 + note1...

 

Alain

Link to post
Share on other sites

Just use numbers to pitch, lengths etc... conversion.
I would advise you to check the System Function documentation and play with the examples a bit :-)

 

Example:

(setf fib (interval-modus (fibonacci 0 23) :mod 12))
 
(setf pitch (integer-to-pitch fib))
 => (c4 cs4 cs4 d4 eb4 f4 gs4 cs4 a4 bb4 g4 f4
     c4 f4 f4 bb4 eb4 cs4 e4 f4 a4 d4 b4 cs4)

(setf length (vector-to-length 1/16 1 2 fib))
=> (1/16 1/16 1/16 1/16 1/16 1/16 1/8 1/16 1/8 1/8 1/8 1/16
    1/16 1/16 1/16 1/8 1/16 1/16 1/16 1/16 1/8 1/16 1/8 1/16)

(make-omn
 :length length
 :pitch pitch)
=> (s c4 cs4 cs4 d4 eb4 f4 e gs4 s cs4 e a4 bb4 g4
   s f4 c4 f4 f4 e bb4 s eb4 cs4 e4 f4 e a4 s d4 e b4 s cs4)

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Topics

    • By AM
      same with fibonacci
      (defun fibonacci* (n &key (offset 0) (every-x 1) (reverse nil)) (let ((n (* n every-x)) (seq)) (setf seq (find-everyother every-x (subseq (fibonacci 0 (+ n offset)) offset (+ n offset)))) (if (equal reverse nil) seq (reverse seq)))) (fibonacci* 5 :offset 2) => (1 2 3 5 8) (fibonacci* 5 :offset 5 :every-x 2) => (5 13 34 89 233) (fibonacci* 5 :offset 5 :every-x 2 :reverse t) => (233 89 34 13 5) ;;;; in combination with "reading-list-by-steps" (defun reading-list-by-steps (&key steps values (start (car values))) (let ((pos (car (position-item start values)))) (append (list (nth pos values)) (loop for i in steps do (setf pos (+ pos i)) when (> pos (length values)) do (setf pos (+ 0 i)) collect (nth pos values))))) (list-plot (reading-list-by-steps :steps '(1 -1 4 -3 2 -1 3 -2 4 1 1 -1) :values (fibonacci* 14 :offset 6 :reverse t) :start 89) :join-points t)  
    • By AM
      ;;little function to make a transition by FIBONACCI-seq ;;i have seen this idea in "slippery chicken" (by michael edwards), ;;so here is a - "not so smart" but working - basic-function. (defun transition-with-fibonacci (number-of-values value-a value-b) (let ((fib-length) (fib-seq) (all-seq)) (setq fib-length (loop for cnt = 1 then (incf cnt) collect (sum (fibonacci 2 cnt)) into bag when (> (car (last bag)) number-of-values) do (return (1- (length bag)))) fib-seq (fibonacci 2 fib-length) all-seq (append (reverse fib-seq) (loop repeat (- number-of-values (sum fib-seq)) collect 1))) (loop for i in all-seq append (loop repeat i for cnt = 0 then (incf cnt) when (= cnt 0) collect value-b else collect value-a)))) ;;example-1 => only the process (transition-with-fibonacci 70 1 2) ;;example-2 => with context = sequence with 1 or 2 (before/after transition) (list-plot (append (gen-repeat 10 1) (transition-with-fibonacci 32 1 2) (gen-repeat 10 2)) :zero-based t :point-radius 2 :join-points t)  
    • By Stephane Boussuge
      An ambient piece based on a Fibonacci series.

       
      SB.
      FibonacciMeditation.opmo
×
×
  • Create New...