Patents by Inventor Todor C. Fay
Todor C. Fay has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 6541689Abstract: A music generation system includes a segment manager and a plurality of segment objects. Each segment object has one or more track objects. Each track object containing a time sequence of musical performance data. Some of the track objects are dependent track objects and some of the track objects are controlling track objects. The dependent track objects contain dependent musical performance data that is interpreted based on controlling musical performance data contained in one or more of the controlling track objects. Each of the controlling track objects contains a predefined type of controlling musical performance data, wherein a plurality of different control type identifiers correspond respectively to different predefined types of controlling musical performance data. When a dependent track object needs controlling musical performance data, the track object calls the segment manager with an argument comprising a control type identifier.Type: GrantFiled: February 2, 1999Date of Patent: April 1, 2003Assignee: Microsoft CorporationInventors: Todor C. Fay, Mark T. Burton
-
Patent number: 6433266Abstract: A musical performance is generated by a segment object and a plurality of constituent track objects. Multiple segment instances can be played concurrently by instantiating multiple state objects corresponding to the segment instances. Each state object stores state information for the track objects of the segment object. When calling a track object to play a portion of its track, the state object provides the stored state information and the track object plays in accordance with the provided state information. The track object updates the state information and returns it to the segment object. Each state object calls the same track objects, but maintains a different set of state information for use by the track objects. This allows multiple concurrent instances of the tracks, without requiring actual duplication of the track objects.Type: GrantFiled: February 2, 1999Date of Patent: August 13, 2002Assignee: Microsoft CorporationInventors: Todor C. Fay, Mark T. Burton
-
Patent number: 6353172Abstract: A music generation and playback system includes an application program and a music processing component. The application program makes repeated calls to the music processing component and provides a group of music events to be sent to the music processing component during each call. Each group of events comprises a plurality of individual events and associated timestamps indicating when the events are to be played. The timestamps of the individual music events of a particular group indicate that the events are to be played at varying times subsequent to being sent to the music processing component. The music processing component exposes a latency clock interface, which indicates the earliest time at which a new music event can be rendered. The application program uses this interface to determine how far ahead of time to provide new music events, and to schedule spontaneously occurring events for playback at the earliest possible time.Type: GrantFiled: February 2, 1999Date of Patent: March 5, 2002Assignee: Microsoft CorporationInventors: Todor C. Fay, James F. Geist, Jr.
-
Patent number: 6169242Abstract: The invention utilizes segments and tracks to generate and playback musical performances. A segment is implemented as a programming object, and represents a specified musical piece. The segment comprises a plurality of tracks, each of which is implemented as a programming object. The tracks are of different types, and generate music in a variety of ways. However, every track supports an identical track interface that is utilized by the segment object. To play the musical piece, a performance supervisor makes repeated calls to the segment object to play specified intervals of the musical piece. In response, the segment object calls its track objects, requesting them to play the specified interval. The tracks generate the requested interval in accordance with their own methods. In some cases, the track objects communicate and cooperate with each other to generate their musical tracks.Type: GrantFiled: February 2, 1999Date of Patent: January 2, 2001Assignee: Microsoft CorporationInventors: Todor C. Fay, Mark T. Burton
-
Patent number: 6153821Abstract: A performance engine selects note patterns from a pattern style containing a plurality of note patterns. The note patterns are categorized by embellishment type and by ranges of playback levels. In addition, a beat pattern is specified for each note pattern, indicating the chord rhythm with which the style can be used. The beat pattern is a bit array, with bits corresponding to every beat of one or more contiguous measures. In response to selection of a particular embellishment type and playback level, the performance engine selects a note pattern that meets the following qualifications: (a) it is of the selected embellishment type; (b) its designated range of playback levels includes the selected playback level; and (c) its beat pattern indicates that it can accommodate chord changes at the beats at which such changes occur in the currently selected chord progression. If there are no qualifying note patterns, these conditions are gradually relaxed until at least one of the note patterns qualifies.Type: GrantFiled: February 2, 1999Date of Patent: November 28, 2000Assignee: Microsoft CorporationInventors: Todor C. Fay, Robert S. Williams, David G. Yackley
-
Patent number: 6150599Abstract: A system for processing music events includes a plurality of different music sources that provide music events to a performance manager. In response to receiving a music event, the performance manager calculates a time sequence of individual MIDI commands to implement the music event, and places a first of these events in a command queue. The performance manager monitors the command queue, and removes and processes individual commands from the command queue at the times indicated by their timestamps. Upon removing a non-concluding individual command of particular time sequence from the command queue, the music processing component determines a subsequent individual command of the particular time sequence and places it in the command queue. Upon receiving a flush instruction for a particular music source, the performance manager identifies any individual commands in the command queue corresponding to the music source, processes any of the commands that are off commands, and discards any other commands.Type: GrantFiled: February 2, 1999Date of Patent: November 21, 2000Assignee: Microsoft CorporationInventors: Todor C. Fay, Mark T. Burton
-
Patent number: 6093881Abstract: A method of generating music includes steps of specifying a note sequence and a chord progression against which the note sequence is played. The notes of the note sequence are defined relative to chord elements, and melodic runs are identified within the note sequence. Each melodic run consists of a series of notes. Inversion conditions are specified in terms of inversion boundaries and in terms of legal inversion notes relative to the individual chords of the chord progression. When interpreting the note sequence in conjunction with the chord progression to generate output notes, the output notes are compared against the inversion conditions and inverted if appropriate. If a note belongs to an identified melodic run, the run is evaluated against the inversion conditions as a whole. More specifically, one note of the melodic run is compared against the inversion conditions. If the one note satisfies the inversion conditions, the entire run is inverted.Type: GrantFiled: February 2, 1999Date of Patent: July 25, 2000Assignee: Microsoft CorporationInventors: Todor C. Fay, Robert S. Williams
-
Patent number: 5920843Abstract: The present invention provides a system and a method for tracking parameters of a synthesized ?an! audio signal that reduces the amount of processing time without causing any discernible degradation in the sound quality of the audio signal. An audio signal is intelligently divided into multiple time slices and the parameters of the audio signal are tracked over the duration of the time slice. The time slices are selected so that the actual characteristic of the parameters over the duration of the time slice can be easily approximated by performing simple, non-processor intensive steps. The characteristics of various components of an audio signal such as a volume envelope, pitch envelope, low frequency oscillator, MIDI commands controlling the audio signal, and various other inputs are used to identify control points. Adjacent control points are then selected as the start point and end point of a time slice.Type: GrantFiled: June 23, 1997Date of Patent: July 6, 1999Assignee: Mircrosoft CorporationInventor: Todor C. Fay
-
Patent number: 5902947Abstract: A music processing system that processes music events includes a performance supervisor and a graph object. The graph object defines an ordered graph of music event processors, through which music events are routed. The graph object has a graph interface with methods allowing an application to insert and remove event processors in the graph. In addition, the graph interface has a method that can be called to update a music event data structure that represents the music event. This updating consists up supplying an identification of a music event processor that is next to receive the music event. Each event processor has a processor interface, which includes an initialization method and a process event method for performing the actual processing of a music event. Each processor supports one of a plurality of delivery timing modes, and also supports a subset of available event types.Type: GrantFiled: September 16, 1998Date of Patent: May 11, 1999Assignee: Microsoft CorporationInventors: Mark T. Burton, Todor C. Fay
-
Patent number: 5900567Abstract: A system and a method for the notes of one track to move in a harmonically separate manner from the notes of another track when the notes of each track are played against a chord progression. Each track is associated with a chord function. The notes of the tracks are then played against a progression of polychords, where each polychord consists of one or more chords. In addition, each chord of a polychord is associated with one or more chord functions. During operation, each note of a track is mapped against a chord of the currently playing polychord. The chord for each track is selected by identifying the chord of the polychord that is associated with the same chord function as the track. Furthermore, individual tracks, groups of notes, or single notes can be assigned to one of several playback modes. Each note includes a field that identifies a playback mode. In addition, each track is associated with a playback mode.Type: GrantFiled: June 23, 1997Date of Patent: May 4, 1999Assignee: Microsoft CorporationInventors: Todor C. Fay, David G. Yackley
-
Patent number: 5827989Abstract: The present invention includes a system and a method for a series of discrete MIDI events to be represented by a single curve event. The curve event is stored as a curve data structure and may include one or more sub-curve data structures. Each sub-curve data structure represents one or more of the series of discrete MIDI events. The curve data structure identifies when the curve event should start, the type of MIDI events that the curve represents, and a list of one or more sub-curve data structures. Each of the sub-curve data structures identify a curve-shape, the start time for the playback of the sub-curve, the end time for the playback of the sub-curve, the minimum and maximum values that the sub-curve reaches, and an orientation of the sub-curve. At performance time, each sub-curve event in the curve data structure is converted into time-stamped, discrete MIDI events that can be provided as input to a MIDI device.Type: GrantFiled: June 23, 1997Date of Patent: October 27, 1998Assignee: Microsoft CorporationInventors: Todor C. Fay, Mark Taylor Burton
-
Patent number: 5777254Abstract: The present invention provides a system and a method for intelligently controlling note inversions during a computer based musical performance. During a musical performance, notes of a track are transposed against a chord. In some instances, the resulting pitch of the transposed note may fall outside of an upper-pitch boundary or a lower-pitch boundary defined for the track. Two additional control mechanisms are examined to determine if the note should be inverted. One mechanism includes a chord inversion mask used for managing the inversion of notes within the context of the chord. Another mechanism includes a track inversion mask defining one or more series of ranges where inversions are allowed. If the pitch of a transposed note exceeds the upper-pitch boundary or the lower-pitch boundary, the chord inversion mask and the track inversion mask are scanned to determine if the note can be inverted.Type: GrantFiled: June 23, 1997Date of Patent: July 7, 1998Assignee: Microsoft CorporationInventors: Todor C. Fay, David G. Yackley