sc-map/set-map [ Classes ]

[ Top ] [ sc-map ] [ Classes ]

NAME

 set-map

 File:             set-map.lsp

 Class Hierarchy:  named-object -> linked-named-object -> sclist -> 
                   circular-sclist -> assoc-list -> recursive-assoc-list ->
                   sc-map -> set-map

 Version:          1.1.0

 Project:          slippery chicken (algorithmic composition)

 Purpose:          Implementation of the set-map class for mapping sets for
                   a piece.   
 
 Author:           Michael Edwards: m@michael-edwards.org

 Creation date:    March 11th 2010

 $$ Last modified:  19:47:46 Thu Feb  8 2024 CET

 SVN ID: $Id$

set-map/cmn-display [ Methods ]

[ Top ] [ set-map ] [ Methods ]

DATE

 January 30th 2016

DESCRIPTION

 Generate musical notation of the set-map object using CMN. 

ARGUMENTS

 a set-map object

OPTIONAL ARGUMENTS

 see the set-palette class for a description of the keyword arguments.

RETURN VALUE

 T

SYNOPSIS

(defmethod cmn-display ((sm set-map) &rest keyargs &key &allow-other-keys)

set-map/gen-midi-chord-seq [ Methods ]

[ Top ] [ set-map ] [ Methods ]

DESCRIPTION

 Write a midi file with each set in the set-map played as a chord at 1
 second intervals.

ARGUMENTS

 - A set-map object.
 - The path+file-name for the midi file to be written.

OPTIONAL ARGUMENTS

 - the tempo in beats per minute. Default = 60.
 - subsets-id, related-sets-id. If you want to generate a MIDI file of just
   a named subset or related-set, pass the ID here. NB this ID will have to
   exist for all sets.

RETURN VALUE

 Returns T.

EXAMPLE

(let ((mini
       (make-slippery-chicken
        '+mini+
        :ensemble '(((vn (violin :midi-channel 1))))
        :set-palette '((1 ((c3 e3 g3 a3 c4 d4 g4 a4 b4 e5))))
        :set-map '((1 (1 1 1)))
        :rthm-seq-palette '((1 ((((2 4) q e s s))
                                :pitch-seq-palette ((1 2 3 4)))))
        :rthm-seq-map '((1 ((vn (1 1 1))))))))
  (gen-midi-chord-seq (set-map mini) "/tmp/mchsq.mid"))

=> T

SYNOPSIS

(defmethod gen-midi-chord-seq ((sm set-map) midi-file
                               &optional (tempo 60.0) subsets-id
                                 related-sets-id)

set-map/midi-play [ Methods ]

[ Top ] [ set-map ] [ Methods ]

DESCRIPTION

 Write a MIDI file containing the sets in order of the set-map.

ARGUMENTS

 - the set-map object

OPTIONAL ARGUMENTS

 keyword arguments:
 - :midi-file. The path (string) of the midi file to write. Default is to
   use the ID of the set-palette and write it into the default directory.
 - :tempo. The tempo of the MIDI file in beats per minute. Default = 60.
 - :auto-open. Whether to open the midi file after generating (not available
   on all operating systems). Default is (get-sc-config
   'midi-play-auto-open) which itself defaults to sc-auto-open in the
   *features* list.
 - :related-sets-id :subsets-id. If you want to generate a MIDI file of just
   a named subset or related-set, pass the ID here. NB this ID will have to
   exist for all sets.

RETURN VALUE

 T

SYNOPSIS

(defmethod midi-play ((sm set-map)
                      &key
                        ;; MDE Sat Mar 20 12:05:17 2021, Heidhausen
                        related-sets-id subsets-id
                        (tempo 60.0)
                        (auto-open (get-sc-config 'midi-play-auto-open))
                        (midi-file
                         (format nil "~a~a.mid"
                                 (get-sc-config 'default-dir)
                                 (string-downcase (string (id sm))))))