Jump to content

Mapping 'Alle meine Entchen'

Recommended Posts

Algorithmic 'play' with the song "Alle meine Entchen" (All my little ducklings) popular german children song.

An example with TONALITY-MAP and GEN-PAUSE functions.
A fun exercise for four voices in five parts.
The original song
Global seed.
(init-seed 35)


Song in OMN script.

(setf song 
      '((e c4 d4 e4 f4) (q g4 =) (e a4 = = =) (q g4 -)
        (e a4 = = =) (q g4 -) (e f4 = = =) (q e4 =)
        (e g4 = = =) (q c4 -)))
Creating four voices based on the original song.
Processing three voices, each with its own random order of its bars.
(setf s-rnd (rnd-order song :list t))
(setf a-rnd (rnd-order song :list t))
(setf t-rnd (rnd-order song :list t))


The fourth voice is 10 repetitions of the first bar of the original song.

(setf b-rep (gen-repeat 10 (list (first song))))
Transposition of each bar to start pitch.
(setf s-trs (pitch-transpose-start '(0 1 2 3 4 5 6 7 8 9 10) s-rnd))
(setf t-trs (pitch-transpose-start '(0 7) t-rnd))
(setf b-trs (pitch-transpose-start '(0 -1 2 -3 4 -5 6 -7 8 -9) b-rep))
Adding accents to the bass voice.
(setf b-dyn (subseq (gen-accent 0.2 '(2 3) b-trs) 0 4))
Three voices of the 2nd part are mapped to dorico-flamenco scale.
(setf s-2 (tonality-map '(dorico-flamenco :root f3 :ambitus soprano :shift t) s-trs))
(setf t-2 (tonality-map '(dorico-flamenco :root f3 :ambitus tenor :shift t) t-trs))
(setf b-2 (tonality-map '(dorico-flamenco :root f3 :ambitus bass :shift t) b-trs))
The 'bass' voice in the 3rd part is mapped to prometheus-liszt scale.
(setf b-3 (tonality-map '(prometheus-liszt :root f3 :ambitus bass :shift t) b-dyn))
All four voices of the 4th part are mapped to minor tonality. 
(setf s-4 (tonality-map '(minor :root gs4 :ambitus soprano :shift t) s-rnd))
(setf a-4 (tonality-map '(minor :root gs4 :ambitus alto :shift t) a-rnd))
(setf t-4 (tonality-map '(minor :root gs4 :ambitus tenor :shift t) t-rnd))
(setf b-4 (tonality-map '(minor :root gs4 :ambitus bass :shift t) b-rep))
End bar with fermata.
(setf end-bar '(e gs3 b3 eb4 e4 fermata))
10, 4 and 1 bar pause.
(setf pause10 (gen-pause song))
(setf pause4 (gen-pause b-dyn))
(setf pause1 (gen-pause end-bar))
Assembling voices.
(setf soprano (assemble-seq song s-2 pause4 s-4 pause1))
(setf alto (assemble-seq pause10 pause10 pause4 a-4 pause1))
(setf tenor (assemble-seq pause10 t-2 pause4 t-4 pause1))
(setf bass (assemble-seq pause10 b-2 b-3 b-4 end-bar))
Defining the score and the layout.
(def-score Alle-meine-Entchen
           (:title "Alle meine Entchen"
            :key-signature '(c maj)
            :time-signature '(2 4)
            :tempo '((120 34) (:rit 120 30 1/16 1))
            :layout (choir-satb-layout 'soprano 'alto 'tenor 'bass
                                       :ignore-velocity t))

  (soprano :omn soprano :channel 1 :sound 'gm :program '0)
  (alto :omn alto)
  (tenor :omn tenor)
  (bass :omn bass))
Link to comment
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.

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.

  • Create New...

Important Information

Terms of Use Privacy Policy