sclist/reaper-file [ Classes ]

[ Top ] [ sclist ] [ Classes ]

sclist/reaper-track [ Classes ]

[ Top ] [ sclist ] [ Classes ]

sndfile/reaper-item [ Classes ]

[ Top ] [ sndfile ] [ Classes ]

NAME

 reaper

 File:             reaper.lsp            

 Class Hierarchy:  named-object -> linked-named-object -> sndfile ->
                   reaper-item
 Class Hierarchy:  named-object -> linked-named-object -> sclist ->
                   reaper-track
 Class Hierarchy:  named-object -> linked-named-object -> sclist ->
                   reaper-file

 Version:          1.0.12

 Project:          slippery chicken (algorithmic composition)

 Purpose:          Class and routine definition for the generation of partial
                   and/or complete reaper files from rhythms, soundfiles.

 Author:           Michael Edwards: m@michael-edwards.org

 Creation date:    January 21st 2021

 $$ Last modified:  17:16:28 Thu Feb 25 2021 CET

 SVN ID: $Id: sclist.lsp 963 2010-04-08 20:58:32Z medward2 $

utilities/pdivide-reaper-markers [ Functions ]

[ Top ] [ utilities ] [ Functions ]

DESCRIPTION

 Write to standard out (terminal/interpreter) marker data for a reaper file
 generated from calls to the pdivide function.

ARGUMENTS

 Takes the same arguments as the pdivide function

RETURN VALUE

 T

SYNOPSIS

(defun pdivide-reaper-markers (&rest args)

utilities/pexpand-reaper-markers [ Functions ]

[ Top ] [ utilities ] [ Functions ]

DATE

 September 4th 2015, Edinburgh

DESCRIPTION

 Using the pexpand function, we write marker information in a format which
 can be read by the Reaper (version 4/5+) DAW software. Though we can think
 of the outputs of pexpand to be in beats, seconds, bars, or any arbitrary
 scale, the timings of Reaper markers are in seconds, hence the need here
 for an initial tempo. In other words, we treat the output of pexpand to be
 beat counts; if you would prefer to interpret these as bars, simply divide
 the tempo by the number of beats per bar. If there are to be tempo changes
 in the mix/piece Reaper itself will update the markers' positions when the
 new tempo is inserted in the project window--this is fine when you are
 thinking in beats/bars but beware of changing tempo in Reaper if you are
 thinking of markers with fixed timings (seconds).

 Copy the output of this into the Reaper file verbatim (no enclosing < >
 marks) before the <PROJBAY tag.

ARGUMENTS

 - the tempo in BPM
 - the number of generations: see the pexpand function
 - (&rest) the proportions: see the pexpand function

RETURN VALUE

 Always T

EXAMPLE

(pexpand-reaper-markers 144 2 6 3 5 4)
->
  MARKER 1 7.5 "level 4" 0 0 1
  MARKER 2 15.0 "level 4" 0 0 1
  MARKER 3 22.5 "level 4" 0 0 1
  MARKER 4 30.0 "level 4" 0 0 1
  MARKER 5 37.5 "level 4" 0 0 1
...
  MARKER 108 810.0 "level 1" 0 0 1
  MARKER 109 817.5 "level 4" 0 0 1
  MARKER 110 825.0 "level 4" 0 0 1
  MARKER 111 832.5 "level 4" 0 0 1
  MARKER 112 840.0 "level 4" 0 0 1
  MARKER 113 847.5 "level 4" 0 0 1
  MARKER 114 855.0 "level 3" 0 0 1
...
  MARKER 319 2392.5 "level 4" 0 0 1
  MARKER 320 2400.0 "level 3" 0 0 1
  MARKER 321 2407.5 "level 4" 0 0 1
  MARKER 322 2415.0 "level 4" 0 0 1
  MARKER 323 2422.5 "level 4" 0 0 1


Here's where I pasted the data into the .RPP Reaper file:

  <TEMPOENVEX
    ACT 0
    VIS 1 0 1
    LANEHEIGHT 0 0
    ARM 0
    DEFSHAPE 1 -1 -1
  >
  MARKER 1 7.5 "level 4" 0 0 1
  MARKER 2 15 "level 4" 0 0 1
  MARKER 3 22.5 "level 4" 0 0 1
  MARKER 4 30 "level 4" 0 0 1
...
  MARKER 320 2400 "level 3" 0 0 1
  MARKER 321 2407.5 "level 4" 0 0 1
  MARKER 322 2415 "level 4" 0 0 1
  MARKER 323 2422.5 "level 4" 0 0 1
  <PROJBAY
  >
  <TRACK {EBF9837F-BE25-9542-B720-A1862C0DF380}

SYNOPSIS

(defun pexpand-reaper-markers (tempo generations &rest proportions)