The bdef Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The bdef Reference Manual

This is the bdef Reference Manual, version 0.6, generated automatically by Declt version 3.0 "Montgomery Scott" on Wed Mar 25 16:55:01 2020 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

#+TITLE: bdef

"Buffer definition"; abstraction of audio buffers for Lisp sound synthesis systems.

Basically, this simplifies buffer management in [[https://github.com/byulparan/cl-collider][cl-collider]], making them easier to use.

*Note:* Previously at the URL for this repository was Bdef for SuperCollider. That repository has since moved [[https://github.com/defaultxr/supercollider-bdef][here]].

* Features

** Can be re-evaluated without loading a new buffer:

Compare:

#+BEGIN_SRC lisp
  (defparameter *buf* (cl-collider:buffer-read "/buffer.wav"))

  (defparameter *buf* (cl-collider:buffer-read "/buffer.wav")) ;; the same variable, and same file!

  (length (remove-if #'null (slot-value *s* 'cl-collider::buffers))) ;; => 2 -- duplicate buffers!
#+END_SRC

versus:

#+BEGIN_SRC lisp
  (bdef :buf "/buffer.wav") ;; here we give it the name :buf

  (bdef :foo "/buffer.wav") ;; same file, different "name"...

  (length (remove-if #'null (slot-value *s* 'cl-collider::buffers))) ;; => 1 -- no duplicate buffers :D
#+END_SRC

...To force a file to be reloaded, simply call ~bdef-free~ on it, then call ~bdef~ again.

** Automatically converts files unsupported by the backend if you have ffmpeg installed:

#+BEGIN_SRC lisp
(bdef :bar "/blah.mp3") ;; works!
#+END_SRC

It does this by storing them in a temporary directory (~/tmp/bdef/~ by default on linux and mac).

** No additional name needed if loading from a file:

#+BEGIN_SRC lisp
(bdef "/my-file.ogg")
#+END_SRC

** Supports pathname abbreviations:

#+BEGIN_SRC lisp
(bdef "~/cool-sound.wav") ;; will find a cool sound in your home directory
#+END_SRC

** Loads mono files as stereo by default.

For consistency. To load as mono, supply 1 for ~bdef~'s ~num-channels~ keyword argument.

** Supports loading in wavetable format:

#+BEGIN_SRC lisp
(bdef "~/wilhelm.wav" :wavetable t) ;; load the Wilhelm scream as a wavetable
#+END_SRC

** Supports loading envelopes as buffers:

Either as wavetables, or standard.

** Integration with [[https://github.com/byulparan/cl-collider][cl-collider]]:

#+BEGIN_SRC lisp
(cl-collider:bufnum (bdef :sound)) ;; returns the buffer number.

(cl-collider:synth :playbuf :bufnum (bdef :sound)) ;; plays the buffer.
#+END_SRC

Load the ~bdef/cl-collider~ system to enable this.

** Integration with [[https://github.com/defaultxr/cl-patterns][cl-patterns]]:

#+BEGIN_SRC lisp
(cl-patterns:play (bdef :sound)) ;; plays the buffer using the *cl-collider-buffer-preview-synth* set in cl-patterns.

(cl-patterns:play (cl-patterns:event :instrument :playbuf :bufnum (bdef :sound))) ;; automatically converts bdef to the buffer number.
#+END_SRC

Load the ~bdef/cl-patterns~ system to enable this.

** Designed to work with multiple backends:

At the moment, [[https://supercollider.github.io/][SuperCollider]]/[[https://github.com/byulparan/cl-collider][cl-collider]] is the main one. Support for [[https://incudine.sourceforge.net/][Incudine]] is planned.

Enable the cl-collider backend like so:

#+BEGIN_SRC lisp
  (ql:quickload :bdef/cl-collider)
#+END_SRC

** Allows metadata about the buffer to be stored:

#+BEGIN_SRC lisp
(setf (bdef-metadata (bdef :snd) :tempo) (/ 99 60)) ;; set :snd's tempo to 99 BPM.

(bdef-metadata (bdef :snd) :tempo) ;; get the stored tempo value.
#+END_SRC

** Automatically gets various metadata for a file when available:

#+BEGIN_SRC lisp
(bdef-metadata (bdef "~/my-file-128bpm.wav") :tempo) ;; => 32/15 (128bpm in beats per second)
#+END_SRC

You can also add your own auto-metadata keys with the ~define-auto-metadata~ macro or ~set-auto-metadata~ function, or remove them with the ~remove-auto-metadata~ function.

Additional metadata is loaded asynchronously in background threads using futures from the [[https://common-lisp.net/project/eager-future/][eager-future2]] library. If a requested metadatum is still being generated, ~bdef-metadata~ will block until the result is available.

** "Splits" functionality to define split points or regions in buffers:

#+BEGIN_SRC lisp
  (make-splits (list 0 0.25 0.5 0.75) :bdef (bdef :foo)) ;; splits at the start, 25%, 50%, and 75% into the file.

  (splits-from-audacity-labels "/path/to/label.txt") ;; make a splits object from an Audacity labels file.

  (setf (bdef-splits :my-bdef) *) ;; set the :my-bdef bdef's :splits metadatum to the splits object generated from the above.

  (splits-point :my-bdef 3 :start :second) ;; get the start of :my-bdef's fourth split in seconds.
#+END_SRC

** Splits integration with cl-patterns:

#+BEGIN_SRC lisp
  (pbind :instrument :playbuf
         :bufnum (bdef :my-bdef)
         :split (pwhite 0 (1- (splits-length :my-bdef))) ;; pick a random split
         :embed (psplits) ;; the psplits pattern yields events with :start, :end, and :dur keys to play the split specified by :split from the :splits metadatum of the bdef specified as :bufnum.
         :dur 1)
#+END_SRC

** Integration with the [[https://aubio.org/][Aubio]] audio analysis library if installed:

#+BEGIN_SRC lisp
(bdef::splits-from-aubio-onsets "/path/to/audio/file.wav")

(bdef :pee "/path/to/pee.wav") ;; since no BPM is listed in the filename, aubio is used to detect it (if installed)...

(bdef-metadata :pee :tempo) ;; ...and it is stored in the bdef's :tempo metadatum! nice!
#+END_SRC

* Future

- Right now, ~cl-collider~ is the only supported backend. In the future, [[http://incudine.sourceforge.net/][Incudine]] should work as well.
- Support for configurable pathname shortcuts. (i.e. set ~foo~ as a shortcut to ~/a/long/path/name/~, then provide ~"foo/bar.wav"~ instead of ~"/a/long/path/name/bar.wav"~.)
- Loading with ~num-channels~ set to 1 loads only the first channel. Might make more sense to mix all channels down to mono, perhaps as an option.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 bdef

Author

modula t. <defaultxr at gmail dot com>

License

MIT

Description

Buffer definition; audio buffer abstraction for sound synthesis systems

Version

0.6

Dependencies
Source

bdef.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 bdef.asd

Location

bdef.asd

Systems

bdef (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 bdef/package.lisp

Parent

bdef (system)

Location

package.lisp

Packages

bdef


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 bdef/bdef.lisp

Dependency

package.lisp (file)

Parent

bdef (system)

Location

bdef.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.4 bdef/splits.lisp

Dependency

bdef.lisp (file)

Parent

bdef (system)

Location

splits.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 bdef

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

Special Variable: *bdef-backends*

The list of symbols enabled backends. When the user attempts to create a bdef, each backend in this list is used to try to create the bdef from the file or object. If a backend returns nil, the next backend in the list will be tried. This is repeated until the first backend successfully returns a bdef object.

Note that backends are made available by loading the relevant bdef subsystem with Quicklisp or ASDF. For example, if you want to use SuperCollider/cl-collider, load ‘bdef/cl-collider’. Once you’ve loaded it, you should see that the :cl-collider keyword is in this list.

Package

bdef

Source

bdef.lisp (file)

Special Variable: *bdef-dictionary*

The global dictionary of bdefs.

Package

bdef

Source

bdef.lisp (file)

Special Variable: *bdef-temporary-directory*

The directory bdef should store its temporary files in (i.e. the .wav files generated from format auto-conversion).

Package

bdef

Source

bdef.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Macros

Macro: define-auto-metadata KEY &body BODY

Define an auto-metadata key for bdefs. The variable BDEF will be bound in BODY to the bdef in question.

Package

bdef

Source

bdef.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Functions

Function: all-bdefs &optional INCLUDE-ALIASES

Return a list of the names of all bdefs loaded.

Note that this doesn’t include aliases (i.e. bdef keys that point to another key) unless INCLUDE-ALIASES is true.

Package

bdef

Source

bdef.lisp (file)

Function: audacity-labels-from-splits SPLITS &optional FILE

Export a ‘splits’ object as an Audacity labels file.

Package

bdef

Source

splits.lisp (file)

Function: bdef KEY &optional VALUE &key NUM-CHANNELS WAVETABLE START-FRAME METADATA

Automaticaly load a buffer or reference one that’s already loaded. KEY is the name to give the buffer in the bdef dictionary. VALUE is the path to the file to load, or the data to construct the buffer from (i.e. an envelope, a list of frames, etc).

Without a VALUE, bdef will look up the key and return the buffer that already exists. If the KEY is a string, it’s assumed to be a pathname and will be loaded automatically if it’s not already in memory.

Package

bdef

Source

bdef.lisp (file)

Function: bdef-free BDEF &optional DICTIONARY

Free a buffer from the bdef dictionary, removing all keys that point to it.

Package

bdef

Source

bdef.lisp (file)

Function: bdef-metadata BDEF KEY

Get the value of BDEF’s metadata for KEY. Returns true as a second value if the metadata had an entry for KEY, or false if it did not.

Note that this function will block if the specified metadata is one of the ‘*auto-metadata*’ that hasn’t finished being generated yet.

Package

bdef

Source

bdef.lisp (file)

Writer

(setf bdef-metadata) (function)

Function: (setf bdef-metadata) VALUE BDEF KEY
Package

bdef

Source

bdef.lisp (file)

Reader

bdef-metadata (function)

Function: bdef-metadata-keys BDEF

Get a list of all keys in BDEF’s metadata.

Package

bdef

Source

bdef.lisp (file)

Function: bdef-splits BDEF

Get any ‘splits’ from BDEF’s metadata, searching in preferred order (i.e. :splits key first, etc).

Package

bdef

Source

bdef.lisp (file)

Writer

(setf bdef-splits) (function)

Function: (setf bdef-splits) SPLITS BDEF
Package

bdef

Source

bdef.lisp (file)

Reader

bdef-splits (function)

Function: make-splits STARTS &key ENDS LOOPS COMMENTS UNIT BDEF METADATA

Make a ‘splits’ object.

Package

bdef

Source

splits.lisp (file)

Function: remove-auto-metadata KEY

Remove a previously-defined auto-metadata key.

Package

bdef

Source

bdef.lisp (file)

Function: set-auto-metadata KEY FUNCTION

Add KEY as an auto-metadata key for bdefs. FUNCTION will be run with the bdef as its argument, and the result will be set to the bdef’s metadata for KEY.

Package

bdef

Source

bdef.lisp (file)

Function: splits-from-aubio-onsets FILE &rest ARGS &key &allow-other-keys
Package

bdef

Source

splits.lisp (file)

Function: splits-from-audacity-labels LABELS

Make a ‘splits’ from an Audacity labels file.

Package

bdef

Source

splits.lisp (file)

Function: splits-length OBJECT

Get the number of splits defined in OBJECT.

Package

bdef

Source

splits.lisp (file)

Function: splits-point SPLITS SPLIT &optional POINT UNIT

Get the split point SPLIT from SPLITS, converting to the correct UNIT (percent, samples, seconds).

Package

bdef

Source

splits.lisp (file)

Function: splits-points SPLITS &optional POINT UNIT

Get the split points for POINTS (i.e. start, end, loops, comments) from SPLITS converted to UNIT (i.e. percent, samples, seconds).

Package

bdef

Source

splits.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Generic functions

Generic Function: bdef-buffer OBJECT
Package

bdef

Methods
Method: bdef-buffer (SYMBOL symbol)
Source

bdef.lisp (file)

Method: bdef-buffer (BDEF bdef)

The actual buffer object that the bdef refers to.

Source

bdef.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.5 Classes

Class: bdef ()
Package

bdef

Source

bdef.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: key

The name given to the bdef.

Type

symbol

Initargs

:key

Readers

bdef-key (generic function)

Slot: buffer

The actual buffer object that the bdef refers to.

Initargs

:buffer

Readers

bdef-buffer (generic function)

Slot: metadata

Hash table of additional data associated with the bdef, accessible with the ‘bdef-metadata’ function.

Type

hash-table

Initargs

:metadata

Initform

(make-hash-table)

Class: splits ()

List of split data for dividing buffers into pieces.

Package

bdef

Source

splits.lisp (file)

Direct superclasses
  • sequence (class)
  • standard-object (class)
Direct methods
Direct slots
Slot: starts

The vector of split start points. If the "end" slot is non-nil, each start point will be matched with an end point in the "end" slot with the same index.

Type

(vector number)

Initargs

:starts

Slot: ends

The vector of split end points, or NIL if no end points are defined.

Type

(or null (vector number))

Initargs

:ends

Slot: loops

The vector of split loop points, or NIL if no loop points are defined.

Type

(or null (vector number))

Initargs

:loops

Slot: comments

The vector of comments for each split point.

Type

(or null (vector (or null string)))

Initargs

:comments

Slot: unit

The unit type of each split point, i.e. percents, samples, or seconds.

Type

symbol

Initargs

:unit

Initform

:percents

Readers

splits-unit (generic function)

Writers

(setf splits-unit) (generic function)

Slot: bdef

The bdef object that this splits references (i.e. for information like duration, sample rate, etc, for converting point data).

Type

(or null bdef:bdef)

Initargs

:bdef

Readers

splits-bdef (generic function)

Writers

(setf splits-bdef) (generic function)

Slot: metadata

Any additional metadata for the splits object.

Initargs

:metadata

Readers

splits-metadata (generic function)

Writers

(setf splits-metadata) (generic function)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Constants

Constant: +op-1-bytes-in-12-sec+
Package

bdef

Source

splits.lisp (file)

Constant: +op-1-drumkit-end+
Package

bdef

Source

splits.lisp (file)

Constant: +size-of-uint16-t+
Package

bdef

Source

splits.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Special variables

Special Variable: *aubio-python-directory*
Package

bdef

Source

splits.lisp (file)

Special Variable: *auto-metadata*

Plist of keys that will automatically be populated in a bdef’s metadata for all newly-created or loaded buffers. The value for each key is the function that generates the value of the key for the bdef metadata. Use the ‘define-auto-metadata’ macro or ‘set-auto-metadata’ function to define auto-metadata keys, or ‘remove-auto-metadata’ to remove them.

Package

bdef

Source

bdef.lisp (file)

Special Variable: *ffmpeg-path*

The path to ffmpeg, or nil if ffmpeg could not be found.

Package

bdef

Source

bdef.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Functions

Function: %splits-conversion-function SPLITS UNIT

Get a function that can be used to convert SPLITS’ unit into the unit type specified.

Package

bdef

Source

splits.lisp (file)

Function: %splits-conversion-function-name SPLITS UNIT

Get the name of the conversion function to convert SPLITS’ unit type into the unit specified.

Package

bdef

Source

splits.lisp (file)

Function: %splits-ensure-point-type POINT

Ensure POINT is one of the splits point types.

Package

bdef

Source

splits.lisp (file)

Function: %splits-ensure-unit UNIT

Ensure UNIT is one of the splits position unit types.

Package

bdef

Source

splits.lisp (file)

Function: aubio-demo-bpm FILE &key MODE

Use aubio’s demo_bpm_extract.py to get the bpm of FILE.

Package

bdef

Source

splits.lisp (file)

Function: aubio-demo-tempo FILE &key SAMPLE-RATE

Use aubio’s demo_tempo.py to get a list of beats in FILE. The returned list gives onsets in seconds from the start of the file.

Package

bdef

Source

splits.lisp (file)

Function: aubio-onsets-read FILE &rest ARGS &key ALGORITHM THRESHOLD SILENCE &allow-other-keys

Use the "aubioonset" utility to get a list of onsets in FILE. FILE can be a path to a file or a cl-collider buffer object. The returned list gives onsets in seconds from the start of the file.

Package

bdef

Source

splits.lisp (file)

Function: aubio-track-to-audacity-labels FILE

Generate an Audacity labels file from the output of aubio’s aubiotrack on FILE.

Package

bdef

Source

splits.lisp (file)

Function: bdef-dictionary-keys &key INCLUDE-REDIRECTS DICTIONARY

Return a list of all the keys for the bdef dictionary DICTIONARY.

Package

bdef

Source

bdef.lisp (file)

Function: bdef-get KEY &optional DICTIONARY

Get the value of KEY in the bdef dictionary DICTIONARY.

Package

bdef

Source

bdef.lisp (file)

Function: bdef-key-cleanse KEY

Expands pathnames to their full ones.

Package

bdef

Source

bdef.lisp (file)

Function: bdef-keys-pointing-to BDEF &optional DICTIONARY

Get a list of all the keys in ‘*bdef-dictionary*’ that point to this bdef.

Package

bdef

Source

bdef.lisp (file)

Function: bdef-set KEY VALUE &optional DICTIONARY

Set the KEY in the bdef dictionary DICTIONARY to VALUE.

Package

bdef

Source

bdef.lisp (file)

Function: bpm-tools-bpm FILE

Use bpm-tools’ "bpm" utility to get the BPM of FILE.

Package

bdef

Source

splits.lisp (file)

Function: end-point OBJECT &optional UNIT

Get the end point of OBJECT.

Package

bdef

Source

splits.lisp (file)

Function: ensure-bdef OBJECT

Return OBJECT if object is a bdef, otherwise look up a bdef with OBJECT as its key.

Package

bdef

Source

bdef.lisp (file)

Function: ensure-readable-audio-file PATH &key EXTENSIONS

If PATH ends in any of EXTENSIONS, return it unchanged. Otherwise, use ffmpeg to convert it to the first format in EXTENSIONS. The converted file is stored in ‘*bdef-temporary-directory*’.

Package

bdef

Source

bdef.lisp (file)

Function: extract-bpm-from-file-metadata FILE

Extract the BPM from the metadata embedded in the file using ffmpeg to read it.

Package

bdef

Source

splits.lisp (file)

Function: extract-bpm-from-string STRING

Extract the BPM from a string (typically a filename). Returns NIL if no BPM-like string is found.

NOTE: If "bpm" is not in the string, then this function will look for a number in the range 50-400, starting from the end of the string.

Package

bdef

Source

splits.lisp (file)

Function: ffmpeg-data FILE

Get the ffmpeg output for FILE.

Package

bdef

Source

bdef.lisp (file)

Function: ffmpeg-metadata FILE

Get the metadata for a file from ffmpeg’s output.

Package

bdef

Source

bdef.lisp (file)

Function: frame-to-op-1-format FRAME

Convert a frame number to the OP-1 split point format.

See also: ‘op-1-format-to-frame’

Package

bdef

Source

splits.lisp (file)

Function: frame-to-op-1-format.new FRAME

Convert a frame number to the OP-1 split point format.

See also: ‘op-1-format-to-frame’

Package

bdef

Source

splits.lisp (file)

Function: op-1-format-to-frame OP-1-SPLIT

Convert a number in OP-1 split point format to a frame number.

See also: ‘frame-to-op-1-format’.

Package

bdef

Source

splits.lisp (file)

Function: op-1-format-to-frame.new OP-1

Convert a frame number to the OP-1 split point format.

See also: ‘op-1-format-to-frame’

Package

bdef

Source

splits.lisp (file)

Function: percents-samples PERCENT TOTAL-SAMPLES
Package

bdef

Source

splits.lisp (file)

Function: percents-seconds PERCENT TOTAL-SECONDS
Package

bdef

Source

splits.lisp (file)

Function: samples-percents SAMPLES TOTAL-SAMPLES
Package

bdef

Source

splits.lisp (file)

Function: samples-seconds SAMPLES SAMPLE-RATE
Package

bdef

Source

splits.lisp (file)

Function: seconds-percents SECONDS TOTAL-SECONDS
Package

bdef

Source

splits.lisp (file)

Function: seconds-samples SECONDS SAMPLE-RATE
Package

bdef

Source

splits.lisp (file)

Function: splits-comments SPLITS &optional UNIT
Package

bdef

Source

splits.lisp (file)

Function: splits-ends SPLITS &optional UNIT
Package

bdef

Source

splits.lisp (file)

Function: splits-from-aubio-track FILE &key BUF-SIZE HOP-SIZE SILENCE-THRESHOLD
Package

bdef

Source

splits.lisp (file)

Function: splits-loops SPLITS &optional UNIT
Package

bdef

Source

splits.lisp (file)

Function: splits-starts SPLITS &optional UNIT
Package

bdef

Source

splits.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Generic functions

Generic Function: bdef-backend-load BACKEND OBJECT &key

Load a file or other object into a bdef via the specified backend.

Package

bdef

Source

bdef.lisp (file)

Generic Function: bdef-free-buffer BUFFER

Free a buffer via its backend.

Package

bdef

Source

bdef.lisp (file)

Generic Function: bdef-key OBJECT
Package

bdef

Methods
Method: bdef-key (BDEF bdef)

The name given to the bdef.

Source

bdef.lisp (file)

Generic Function: bdef-load OBJECT &key BACKEND NUM-CHANNELS WAVETABLE START-FRAME

Load a file or other object into a bdef. Different backends will support different object types, and different key arguments. Here are the key arguments supported by one or more backends:

- num-channels - Number of channels to load (defaults to 2).
- wavetable - Whether to load the object in wavetable format. If T, the buffer length will be the next power of two. If a number is provided, load the object as a wavetable of that size. - start-frame - Skip this many frames from the start of the file when loading it.

Package

bdef

Source

bdef.lisp (file)

Methods
Method: bdef-load (OBJECT string) &rest ARGS &key BACKEND NUM-CHANNELS WAVETABLE START-FRAME
Generic Function: duration OBJECT

Get the duration of OBJECT in seconds.

Package

bdef

Source

bdef.lisp (file)

Methods
Method: duration (THIS splits)
Source

splits.lisp (file)

Method: duration (BDEF bdef)
Generic Function: frames OBJECT

Get the number of frames (samples) in OBJECT.

Package

bdef

Source

bdef.lisp (file)

Methods
Method: frames (THIS splits)
Source

splits.lisp (file)

Method: frames (BDEF bdef)
Generic Function: id OBJECT

Get the ID number of OBJECT.

Package

bdef

Source

bdef.lisp (file)

Methods
Method: id (SYMBOL symbol)
Method: id (BDEF bdef)
Generic Function: num-channels OBJECT

Get the number of channels of OBJECT.

Package

bdef

Source

bdef.lisp (file)

Methods
Method: num-channels (BDEF bdef)
Generic Function: path OBJECT

Get the path of OBJECT’s file, or nil if it was not loaded from a file.

Package

bdef

Source

bdef.lisp (file)

Methods
Method: path (PATHNAME pathname)
Method: path (STRING string)
Method: path (SYMBOL symbol)
Method: path (BDEF bdef)
Generic Function: sample-rate OBJECT

Get the sample rate of OBJECT.

Package

bdef

Source

bdef.lisp (file)

Methods
Method: sample-rate (BDEF bdef)
Generic Function: splits-bdef OBJECT
Generic Function: (setf splits-bdef) NEW-VALUE OBJECT
Package

bdef

Methods
Method: splits-bdef (SPLITS splits)
Method: (setf splits-bdef) NEW-VALUE (SPLITS splits)

The bdef object that this splits references (i.e. for information like duration, sample rate, etc, for converting point data).

Source

splits.lisp (file)

Generic Function: splits-export SPLITS FILE FORMAT

Write a ‘splits’ object to a file in another format.

Package

bdef

Source

splits.lisp (file)

Methods
Method: splits-export (SPLITS splits) (STREAM stream) (FORMAT (eql audacity))
Method: splits-export OBJECT (FILE pathname) FORMAT
Method: splits-export OBJECT (FILE string) FORMAT
Method: splits-export (BDEF bdef) FILE FORMAT
Generic Function: splits-metadata OBJECT
Generic Function: (setf splits-metadata) NEW-VALUE OBJECT
Package

bdef

Methods
Method: splits-metadata (SPLITS splits)
Method: (setf splits-metadata) NEW-VALUE (SPLITS splits)

Any additional metadata for the splits object.

Source

splits.lisp (file)

Generic Function: splits-unit OBJECT
Generic Function: (setf splits-unit) NEW-VALUE OBJECT
Package

bdef

Methods
Method: splits-unit (SPLITS splits)
Method: (setf splits-unit) NEW-VALUE (SPLITS splits)

The unit type of each split point, i.e. percents, samples, or seconds.

Source

splits.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   B   F   L  
Index Entry  Section

B
bdef.asd: The bdef․asd file
bdef/bdef.lisp: The bdef/bdef․lisp file
bdef/package.lisp: The bdef/package․lisp file
bdef/splits.lisp: The bdef/splits․lisp file

F
File, Lisp, bdef.asd: The bdef․asd file
File, Lisp, bdef/bdef.lisp: The bdef/bdef․lisp file
File, Lisp, bdef/package.lisp: The bdef/package․lisp file
File, Lisp, bdef/splits.lisp: The bdef/splits․lisp file

L
Lisp File, bdef.asd: The bdef․asd file
Lisp File, bdef/bdef.lisp: The bdef/bdef․lisp file
Lisp File, bdef/package.lisp: The bdef/package․lisp file
Lisp File, bdef/splits.lisp: The bdef/splits․lisp file

Jump to:   B   F   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
A   B   D   E   F   G   I   M   N   O   P   R   S  
Index Entry  Section

%
%splits-conversion-function: Internal functions
%splits-conversion-function-name: Internal functions
%splits-ensure-point-type: Internal functions
%splits-ensure-unit: Internal functions

(
(setf bdef-metadata): Exported functions
(setf bdef-splits): Exported functions
(setf splits-bdef): Internal generic functions
(setf splits-bdef): Internal generic functions
(setf splits-metadata): Internal generic functions
(setf splits-metadata): Internal generic functions
(setf splits-unit): Internal generic functions
(setf splits-unit): Internal generic functions

A
all-bdefs: Exported functions
aubio-demo-bpm: Internal functions
aubio-demo-tempo: Internal functions
aubio-onsets-read: Internal functions
aubio-track-to-audacity-labels: Internal functions
audacity-labels-from-splits: Exported functions

B
bdef: Exported functions
bdef-backend-load: Internal generic functions
bdef-buffer: Exported generic functions
bdef-buffer: Exported generic functions
bdef-buffer: Exported generic functions
bdef-dictionary-keys: Internal functions
bdef-free: Exported functions
bdef-free-buffer: Internal generic functions
bdef-get: Internal functions
bdef-key: Internal generic functions
bdef-key: Internal generic functions
bdef-key-cleanse: Internal functions
bdef-keys-pointing-to: Internal functions
bdef-load: Internal generic functions
bdef-load: Internal generic functions
bdef-metadata: Exported functions
bdef-metadata-keys: Exported functions
bdef-set: Internal functions
bdef-splits: Exported functions
bpm-tools-bpm: Internal functions

D
define-auto-metadata: Exported macros
duration: Internal generic functions
duration: Internal generic functions
duration: Internal generic functions

E
end-point: Internal functions
ensure-bdef: Internal functions
ensure-readable-audio-file: Internal functions
extract-bpm-from-file-metadata: Internal functions
extract-bpm-from-string: Internal functions

F
ffmpeg-data: Internal functions
ffmpeg-metadata: Internal functions
frame-to-op-1-format: Internal functions
frame-to-op-1-format.new: Internal functions
frames: Internal generic functions
frames: Internal generic functions
frames: Internal generic functions
Function, %splits-conversion-function: Internal functions
Function, %splits-conversion-function-name: Internal functions
Function, %splits-ensure-point-type: Internal functions
Function, %splits-ensure-unit: Internal functions
Function, (setf bdef-metadata): Exported functions
Function, (setf bdef-splits): Exported functions
Function, all-bdefs: Exported functions
Function, aubio-demo-bpm: Internal functions
Function, aubio-demo-tempo: Internal functions
Function, aubio-onsets-read: Internal functions
Function, aubio-track-to-audacity-labels: Internal functions
Function, audacity-labels-from-splits: Exported functions
Function, bdef: Exported functions
Function, bdef-dictionary-keys: Internal functions
Function, bdef-free: Exported functions
Function, bdef-get: Internal functions
Function, bdef-key-cleanse: Internal functions
Function, bdef-keys-pointing-to: Internal functions
Function, bdef-metadata: Exported functions
Function, bdef-metadata-keys: Exported functions
Function, bdef-set: Internal functions
Function, bdef-splits: Exported functions
Function, bpm-tools-bpm: Internal functions
Function, end-point: Internal functions
Function, ensure-bdef: Internal functions
Function, ensure-readable-audio-file: Internal functions
Function, extract-bpm-from-file-metadata: Internal functions
Function, extract-bpm-from-string: Internal functions
Function, ffmpeg-data: Internal functions
Function, ffmpeg-metadata: Internal functions
Function, frame-to-op-1-format: Internal functions
Function, frame-to-op-1-format.new: Internal functions
Function, make-splits: Exported functions
Function, op-1-format-to-frame: Internal functions
Function, op-1-format-to-frame.new: Internal functions
Function, percents-samples: Internal functions
Function, percents-seconds: Internal functions
Function, remove-auto-metadata: Exported functions
Function, samples-percents: Internal functions
Function, samples-seconds: Internal functions
Function, seconds-percents: Internal functions
Function, seconds-samples: Internal functions
Function, set-auto-metadata: Exported functions
Function, splits-comments: Internal functions
Function, splits-ends: Internal functions
Function, splits-from-aubio-onsets: Exported functions
Function, splits-from-aubio-track: Internal functions
Function, splits-from-audacity-labels: Exported functions
Function, splits-length: Exported functions
Function, splits-loops: Internal functions
Function, splits-point: Exported functions
Function, splits-points: Exported functions
Function, splits-starts: Internal functions

G
Generic Function, (setf splits-bdef): Internal generic functions
Generic Function, (setf splits-metadata): Internal generic functions
Generic Function, (setf splits-unit): Internal generic functions
Generic Function, bdef-backend-load: Internal generic functions
Generic Function, bdef-buffer: Exported generic functions
Generic Function, bdef-free-buffer: Internal generic functions
Generic Function, bdef-key: Internal generic functions
Generic Function, bdef-load: Internal generic functions
Generic Function, duration: Internal generic functions
Generic Function, frames: Internal generic functions
Generic Function, id: Internal generic functions
Generic Function, num-channels: Internal generic functions
Generic Function, path: Internal generic functions
Generic Function, sample-rate: Internal generic functions
Generic Function, splits-bdef: Internal generic functions
Generic Function, splits-export: Internal generic functions
Generic Function, splits-metadata: Internal generic functions
Generic Function, splits-unit: Internal generic functions

I
id: Internal generic functions
id: Internal generic functions
id: Internal generic functions

M
Macro, define-auto-metadata: Exported macros
make-splits: Exported functions
Method, (setf splits-bdef): Internal generic functions
Method, (setf splits-metadata): Internal generic functions
Method, (setf splits-unit): Internal generic functions
Method, bdef-buffer: Exported generic functions
Method, bdef-buffer: Exported generic functions
Method, bdef-key: Internal generic functions
Method, bdef-load: Internal generic functions
Method, duration: Internal generic functions
Method, duration: Internal generic functions
Method, frames: Internal generic functions
Method, frames: Internal generic functions
Method, id: Internal generic functions
Method, id: Internal generic functions
Method, num-channels: Internal generic functions
Method, path: Internal generic functions
Method, path: Internal generic functions
Method, path: Internal generic functions
Method, path: Internal generic functions
Method, sample-rate: Internal generic functions
Method, splits-bdef: Internal generic functions
Method, splits-export: Internal generic functions
Method, splits-export: Internal generic functions
Method, splits-export: Internal generic functions
Method, splits-export: Internal generic functions
Method, splits-metadata: Internal generic functions
Method, splits-unit: Internal generic functions

N
num-channels: Internal generic functions
num-channels: Internal generic functions

O
op-1-format-to-frame: Internal functions
op-1-format-to-frame.new: Internal functions

P
path: Internal generic functions
path: Internal generic functions
path: Internal generic functions
path: Internal generic functions
path: Internal generic functions
percents-samples: Internal functions
percents-seconds: Internal functions

R
remove-auto-metadata: Exported functions

S
sample-rate: Internal generic functions
sample-rate: Internal generic functions
samples-percents: Internal functions
samples-seconds: Internal functions
seconds-percents: Internal functions
seconds-samples: Internal functions
set-auto-metadata: Exported functions
splits-bdef: Internal generic functions
splits-bdef: Internal generic functions
splits-comments: Internal functions
splits-ends: Internal functions
splits-export: Internal generic functions
splits-export: Internal generic functions
splits-export: Internal generic functions
splits-export: Internal generic functions
splits-export: Internal generic functions
splits-from-aubio-onsets: Exported functions
splits-from-aubio-track: Internal functions
splits-from-audacity-labels: Exported functions
splits-length: Exported functions
splits-loops: Internal functions
splits-metadata: Internal generic functions
splits-metadata: Internal generic functions
splits-point: Exported functions
splits-points: Exported functions
splits-starts: Internal functions
splits-unit: Internal generic functions
splits-unit: Internal generic functions

Jump to:   %   (  
A   B   D   E   F   G   I   M   N   O   P   R   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
B   C   E   K   L   M   S   U  
Index Entry  Section

*
*aubio-python-directory*: Internal special variables
*auto-metadata*: Internal special variables
*bdef-backends*: Exported special variables
*bdef-dictionary*: Exported special variables
*bdef-temporary-directory*: Exported special variables
*ffmpeg-path*: Internal special variables

+
+op-1-bytes-in-12-sec+: Internal constants
+op-1-drumkit-end+: Internal constants
+size-of-uint16-t+: Internal constants

B
bdef: Exported classes
buffer: Exported classes

C
comments: Exported classes
Constant, +op-1-bytes-in-12-sec+: Internal constants
Constant, +op-1-drumkit-end+: Internal constants
Constant, +size-of-uint16-t+: Internal constants

E
ends: Exported classes

K
key: Exported classes

L
loops: Exported classes

M
metadata: Exported classes
metadata: Exported classes

S
Slot, bdef: Exported classes
Slot, buffer: Exported classes
Slot, comments: Exported classes
Slot, ends: Exported classes
Slot, key: Exported classes
Slot, loops: Exported classes
Slot, metadata: Exported classes
Slot, metadata: Exported classes
Slot, starts: Exported classes
Slot, unit: Exported classes
Special Variable, *aubio-python-directory*: Internal special variables
Special Variable, *auto-metadata*: Internal special variables
Special Variable, *bdef-backends*: Exported special variables
Special Variable, *bdef-dictionary*: Exported special variables
Special Variable, *bdef-temporary-directory*: Exported special variables
Special Variable, *ffmpeg-path*: Internal special variables
starts: Exported classes

U
unit: Exported classes

Jump to:   *   +  
B   C   E   K   L   M   S   U  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   B   C   P   S  
Index Entry  Section

B
bdef: The bdef system
bdef: The bdef package
bdef: Exported classes

C
Class, bdef: Exported classes
Class, splits: Exported classes

P
Package, bdef: The bdef package

S
splits: Exported classes
System, bdef: The bdef system

Jump to:   B   C   P   S