# US 5,877,445 A · System for generating prescribed duration audio and/or video sequences

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 5,877,445 A
- Document ID: US5877445A
- Status: Granted
- Kind: A
- Application number: 08/957,422
- Filed: 1997-10-24
- Granted: 1999-03-02
- Earliest claimed: 1995-09-22
- Assignees: Sonic Desktop Software
- Inventors: Geoffrey Calvin Hufford; Christopher P. Hufford; Kevin C. Klingler
- Web page: https://patentgrep.com/patent/US5877445A

## CPC

- G11B 27/031: Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G06F 16/40: of multimedia data, e.g. slideshows comprising image and additional audio data (retrieval of still image data G06F16/50; retrieval of audio data G06F16/60; retrieval of video data G06F16/70)
- G06F 16/68: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F 16/683: using metadata automatically derived from the content
- G10H 1/0025: {Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece (automatically producing a series of tones G10H1/26)}
- G10H 1/0033: {Recording/reproducing or transmission of music for electrophonic musical instruments}
- G10H 2210/125: Medley, i.e. linking parts of different musical pieces in one single piece, e.g. sound collage, DJ mix
- G10H 2240/085: Mood, i.e. generation, detection or selection of a particular emotional content or atmosphere in a musical piece
- G10H 2240/131: Library retrieval, i.e. searching a database or selecting a specific musical piece, segment, pattern, rule or parameter set
- G10H 2250/035: Crossfade, i.e. time domain amplitude envelope control of the transition between musical sounds or melodies, obtained for musical purposes, e.g. for ADSR tone generation, articulations, medley, remix
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G10H: ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE

## Abstract

A block sequence compiler for compiling a sequence of audio and/or video blocks (e.g., audio tracks, MIDI, video clips, animation, etc.) suitable for producing one or more audio and/or video output sequences (i.e., audio, video, or multimedia) each having a duration corresponding to user-prescribed criteria. In a preferred embodiment, a user chooses an audio and/or video source segment from a predefined library and prescribes the duration of an audio and/or video sequence. Prior to depositing each audio and/or video segment in the library, the segment is partitioned into audio and/or video blocks that are identified in a corresponding characteristic data table with characteristics including (1) duration, (2) suitability for being used as a beginning or ending of an audio and/or video sequence, and (3) compatibility with each block. Using this characteristic table and the user-prescribed criteria, i.e., duration, the block sequence compiler generates a plurality of audio and/or video sequences satisfying the user-prescribed criteria which can be reviewed, e.g., played, and/or saved for future use.

## Claims

### Claim 1

A system for compiling data blocks for producing a prescribed duration output sequence suitable for driving an output transducer, said system comprising:
a data storage library storing one or more source segments wherein each source segment is capable of being partitioned into a plurality of data blocks;
a stored data table comprised of one or more groups of table entries, each such group being associated with a different one of said source segments and wherein each table entry defines a data block within the associated source segment;
each said table entry additionally identifying characteristics of the associated data block including its duration, its suitability to begin or end an output sequence, and its interblock compatibility;
a user interface for enabling a user to prescribe an output sequence duration; and
a block sequence compiler for iteratively compiling a list of one or more output sequences each essentially conforming to said prescribed output sequence duration and wherein each output sequence is comprised of a plurality of data blocks selected according to said table entry characteristics.

### Claim 2 (depends on 1)

The system of claim 1 additionally comprising means for displaying said list of one or more output sequences.

### Claim 3 (depends on 1)

The system of claim 1 additionally comprising means to store at least one said output sequence from said list.

### Claim 4 (depends on 1)

The system of claim 1 additionally comprising means for driving an output transducer according to an output sequence selected from said list.

### Claim 5 (depends on 1)

The system of claim 1 wherein said table entries additionally include data identifying a mood parameter for each said data block and said user interface additionally enables a user to prescribe a mood parameter and said block sequence compiler selects data blocks according to said user-prescribed mood parameter.

### Claim 6 (depends on 1)

The system of claim 1 wherein said table entries additionally include data identifying a fadeable parameter for each said data block and said block sequence compiler selects an ending data block having said fadeable parameter set and wherein such fadeable data blocks can be truncated to achieve output sequences of said user-prescribed output sequence duration.

### Claim 7 (depends on 1)

The system of claim 1 wherein said table entries additionally include data identifying an intensity parameter for each said data block and said user interface additionally enables a user to prescribe an intensity curve and said block sequence compiler selects data blocks according to said user-prescribed intensity curve.

### Claim 8 (depends on 1)

The system of claim 1 wherein said table additionally comprises data identifying a hit point parameter for each said data block for specifying when an intensity burst is present within said data block and said user interface additionally prescribes an intensity burst location and said block sequence compiler compiles output sequences of said data blocks according to said user-prescribed intensity burst location.

### Claim 9 (depends on 1)

The system of claim 1 wherein said user interface additionally enables a user to prescribe one of said source segments and said block sequence compiler compiles output sequences of data blocks selected from said user-prescribed source segment.

### Claim 10 (depends on 1)

The system of claim 1 wherein said table entries additionally include data identifying a static parameter for each said data block and said block sequence compiler can select an ending data block having said static parameter set and wherein such static data blocks can be extended to form output sequences of said user-prescribed output sequence duration.

### Claim 11

A method for compiling data blocks for producing a prescribed duration output sequence suitable for driving an output transducer, said method comprising the steps of:
providing data in a data storage library corresponding to at least one source segment;
partitioning said source segment into a plurality of data blocks;
indicating characteristics corresponding to the duration of each data block;
indicating characteristics of each data block corresponding to the suitability of each data block to begin or end an output sequence and the interblock compatibility of each data block;
defining a desired duration for an output sequence; and
iteratively compiling a list of one or more output sequences essentially conforming to said prescribed output sequence duration and wherein each output sequence is comprised of a plurality of data blocks selected according to said table entry characteristics.

### Claim 12 (depends on 11)

The method of claim 11 additionally comprising the step of selecting one of said source segments and wherein said iteratively compiling step compiles sequences of data blocks from those data blocks corresponding to a selected source segment.

### Claim 13 (depends on 11)

The method of claim 11 additionally comprising the step of displaying said compiled list of one or more output sequences.

### Claim 14 (depends on 11)

The method of claim 11 additionally comprising the steps of:
selecting one of said output sequences from said compiled list; and
outputting a sequence of data blocks corresponding to said selected output sequence.

### Claim 15

A method for compiling data blocks for producing a prescribed duration output sequence suitable for driving an output transducer wherein said output sequence is comprised of a plurality of data blocks corresponding to portions of a source segment and indicating characteristics of each data block corresponding to its duration, its suitability of each data block to begin or end an output sequence, and its interblock compatibility, said method comprising the steps of:
defining a desired output sequence duration; and
iteratively compiling a list of one or more output sequences each comprised of a plurality of data blocks according to said desired output sequence duration such that each said output sequence is comprised of a plurality of data blocks conforming to its indicated characteristics.

### Claim 16

A system for compiling data blocks for producing an output sequence suitable for repeatable driving an output transducer, said system comprising:
a data storage library for storing one or more source segments wherein each source segment is capable of being partitioned into a Plurality of data blocks;
a stored data table comprised of one or more groups of table entries, each such group being associated with a different one of said source segments and wherein each table entry defines a data block within the associated source segment;
each said table entry additionally identifying characteristics of the associated data block including its duration and its interblock compatibility;
a user interface for enabling a user to prescribe an output sequence duration corresponding to the durations of said data blocks comprising an output sequence; and
a block sequence compiler for iteratively compiling a list of one or more repeatable output sequences each comprised of a plurality of data blocks selected to essentially conform to said user-prescribed output sequence duration and wherein each output sequence is comprised of a Plurality of data blocks selected according to said table entry characteristics.

### Claim 17 (depends on 16)

The system of claim 16 additionally comprising means for displaying said list of one or more output sequences.

### Claim 18 (depends on 16)

The system of claim 16 wherein each said repeatable sequence comprises at least a first data block and a last data block and wherein said last data block of each said repeatable output sequence is selected such that the first data block of each said repeatable output sequence is compatible, according to said table entries, to sequentially follow said last data block of each said repeatable output sequence.

### Claim 19 (depends on 16)

The system of claim 16 wherein said table entries additionally include a reversible parameter to identify data blocks suitable for playing both in a forward or in a reverse direction and each said data block selected by said block sequence compiler has said reversible parameter set.

### Claim 20 (depends on 16)

The system of claim 16 additionally comprising means for driving an output transducer according to an output sequence selected from said list.
