| |
Haystack
A database of performance components
To date, music has always been stored as one or many files per song. Typically, a songwriter or music analyst works
with one song at a time, and it is difficult to work with or compare multiple songs at once. While the waveDNA engine
does allow multiple songs to be loaded at once, Haystack removes the file-based limitations of music completely.
Haystack extends the core waveDNA engine by adding database functionality. Haystack is a database of
unique performance components and instrument playlists. In the database, a waveDNA model is an association
of instrument playlists and the performance components that they reference .
When a waveDNA model is added to Haystack, each instruments' performance component hierarchy is compared
against the master pool of performance components, to determine if it contains any novel unique performance
components. Once this process is complete, the instrument playlist can then reference the appropriate performance
components. As a result, Haystack enables the user to focus on the entire body of work in the database ,
freely moving from song to song.

Performance component queries
Currently, Haystack can perform the following queries:
Directed component query
Direct component queries can be composed by selecting a set of performance components to search on.
Queries can consist of metric components, pitch components , abstract motif components, and duration components.
( click to enlarge)
 |
 |
 |
| Query Construction |
Query Results 1 |
Query Results 2 |
Directed queries can be formed with the following relationships:
AND - find the instrument playlists that
contain all of the query performance components.

OR - find instrument playlists that contain any of the query performance components.

SEQUENCE - find instrument playlists that contain the query performance components in order ( wildcards also accepted ).

Intersection query
An intersection query compares selected instrument track models, in order to determine
if they contain
any common motifs. The intersection query returns a number of match motifs and their distribution in
the playlists of the intersected instruments.
( click to enlarge )
Blind find query
The blind find query takes the model of a source instrument track and compares it to every
instrument track in the database, in order to find if there are any database tracks that share
common motifs with the candidate track. A blind find result summarizes the number of matching
motifs as they occur in the source track and the database track. Results are ranked according
to the significance of the matches.
Each blind find result can launch an intersection query between the source instrument track
and the database track, in order to identify the nature and distribution of the common motifs
in both tracks.

|
|