# fibonacci*

## Recommended Posts

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)

(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)
```

Edited by AM

## Join the conversation

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

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

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

×

• ### Similar Topics

• 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
• 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)

• An ambient piece based on a Fibonacci series.

SB.
FibonacciMeditation.opmo
×

• Lessons