METHOD OF AND SYSTEM FOR CONTROLLING THE QUALITIES OF MUSICAL ENERGY EMBODIED IN AND EXPRESSED BY DIGITAL MUSIC TO BE AUTOMATICALLY COMPOSED AND GENERATED BY AN AUTOMATED MUSIC COMPOSITION AND GENERATION ENGINE
20190237051 ยท 2019-08-01
Assignee
Inventors
Cpc classification
G10H2220/101
PHYSICS
G10H1/368
PHYSICS
G10H2210/066
PHYSICS
G10H2210/115
PHYSICS
G10H2240/081
PHYSICS
G10H2210/021
PHYSICS
G10H2240/305
PHYSICS
G06N7/01
PHYSICS
G10H2240/131
PHYSICS
G10H1/0025
PHYSICS
G10H2240/085
PHYSICS
G10H2250/311
PHYSICS
G10H2220/106
PHYSICS
G10H2210/105
PHYSICS
G10H2210/111
PHYSICS
International classification
G06N7/00
PHYSICS
Abstract
An automated music composition and generation system and process for producing one or more pieces of digital music, by providing a set of musical energy (ME) quality control parameters to an automated music composition and generation engine, applying certain of the selected musical energy quality control parameters as markers to specific spots along the timeline of a selected media object or event marker by the system user during a scoring process, and providing the selected set of musical energy quality control parameters to drive the automated music composition and generation engine to automatically compose and generate one or more pieces of digital music with control over the specified qualities of musical energy embodied in and expressed by the piece of digital music to composed and generated by the automated music composition and generation engine.
Claims
1. An automated music composition and generation system for composing and generating pieces of digital music in response to a system user providing, as input, musical energy (ME) quality control parameters, said automated music composition and generation system comprising: a system user interface subsystem supporting spotting media objects and timeline-based event markers, and employing a graphical user interface (GUI) for supporting the selection of musical energy (ME) quality control parameters including (i) emotion/mood and style/genre type musical experience descriptors (MXDs), and timing parameters, and (ii) one or more musical energy quality (ME) control parameters selected from the group consisting of instrumentation, ensemble, volume, tempo, rhythm, harmony, and timing (e.g. start/hit/stop) and framing (e.g. intro, climax, outro or ICO), and wherein said musical energy quality control parameters are applied along the timeline of a graphical representation of a selected media object or timeline-based event marker, so as to control particular musical energy qualities within the piece of digital music being composed and generated by an automated music composition and generation engine using said musical energy quality control parameters selected by the system user.
2-7. (canceled)
8. An automated music composition and generation system for composing and generating pieces of music in response to a system user providing, as input, musical energy quality control parameters, said automated music composition and generation system comprising: a system user interface subsystem (B0) including at least one GUI-based system user interface that supports composition control over musical energy (ME) embodied in pieces of digital music being composed; and an automated music composition and generation engine in communication with the system user interface subsystem (B0), for receiving musical energy quality control parameters from the system user; wherein said system interfaces support communication of musical energy quality control parameters from system users and said automated music composition and generation engine, for transformation into musical-theoretical system operating parameters (SOP) to drive subsystems of said automated music composition and generation system, and support dimensions of control over the qualities of musical energy (ME) embodied or expressed in pieces of digital music being composed and generated from said automated music composition and generation; and wherein the dimensions of control over musical energy (ME) in each said piece of music composed and generated by said automated music composition and generation system includes one or more musical energy quality parameters selected from the group consisting of emotion/mood type musical experience descriptors expressed in the form of at least one of graphical icons, emojis, images, words and other linguistic expressions, style/genre type musical experience expressed in the form of at least one of graphical icons, emojis, images, words and other linguistic expressions, tempo, dynamics, rhythm, harmony, melody, instrumentation, orchestration, instrument performance, ensemble performance, volume, timing, and framing, thereby allowing the system user to exert a specific amount of control over the music being composed and generated by said system without having any specific knowledge of or experience in music theory or performance.
9.-11 (canceled)
12. A method of composing and generating pieces of music in response to a system user providing, as input, musical energy quality control parameters, said method comprising the steps of: (a) capturing or accessing a digital photo or video or other media object to be uploaded to a studio application, and scored with one or more pieces of digital music to be composed and generated by an automated music composition and generation engine; (b) enabling an automated music composition studio supported by a graphical user interface (GUI); (c) selecting one or more emotion/mood descriptors (MXD) from menus supported by the GUI, so as to load default musical instruments and MXD settings; (e) selecting style musical experience descriptors (MXD) from menus supported by the GUI, so as to load default musical instruments and MXD settings; (f) selecting musical instruments to be represented in the piece of music to be composed and generated; (g) adjusting the spotting markers as desired; (h) rendering the piece of composed music using selected MXD and spotting settings; (i) reviewing the piece of digital music generated; (j) optionally changing the spotting settings and re-render piece of digital music; (k) reviewing new composed piece of digital music generated, to determine that it is acceptable and satisfactory for its intended application; (l) combining the composed piece of digital music with the selected video or other media object uploaded to the application; and (l) send the musically-scored video or media object to the intended destination.
13-25. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0147] The Objects of the Present Invention will be more fully understood when read in conjunction with the Figures Drawings, wherein:
[0148]
[0149]
[0150]
[0151]
[0152]
[0153]
[0154]
[0155]
[0156]
[0157]
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164]
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206] FIGS. 27B1 and 27B2, taken together, show a schematic representation of the Descriptor Parameter Capture Subsystem (B1) used in the Automated Music Composition and Generation Engine of the present invention, wherein the system user provides the exemplary emotion-type musical experience descriptorHAPPYto the descriptor parameter capture subsystem for distribution to the probability-based parameter tables employed in the various subsystems therein, and subsequent subsystem set up and use during the automated music composition and generation process of the present invention;
[0207] FIGS. 27B3A, 27B3B and 27B3C, taken together, provide a schematic representation of the Parameter Transformation Engine Subsystem (B51) configured with the Parameter Capture Subsystem (B1), Style Parameter Capture Subsystem (B37) and Timing Parameter Capture Subsystem (B40) used in the Automated Music Composition and Generation Engine of the present invention, for receiving emotion-type musical experience descriptors (MXD), style-type musical experience descriptors, musical energy (ME) quality control parameters identified in
[0208] FIGS. 27B4A, 27B4B, 27B4C, 27B4D, and 27B4E, taken together, provide a schematic map representation specifying the locations of particular music-theoretic system operating parameter (SOP) tables employed within the subsystems of the automatic music composition and generation system of the present invention;
[0209] FIG. 27B4F is a table showing the musical energy (ME) quality control supported by the A-level subsystems employed within the automated music composition and generation engine of the present invention, integrated within the diverse automated music composition and generation systems of the present invention;
[0210] FIG. 27B5 is a schematic representation of the Parameter Table Handling and Processing Subsystem (B70) used in the Automated Music Composition and Generation Engine of the present invention, wherein multiple emotion/style-specific music-theoretic system operating parameter (SOP) tables are received from the Parameter Transformation Engine Subsystem B51 and handled and processed using one or parameter table processing methods M1, M2 or M3 so as to generate system operating parameter tables in a form that is more convenient and easier to process and use within the subsystems of the system of the present invention;
[0211] FIG. 27B6 is a schematic representation of the Parameter Table Archive Database Subsystem (B80) used in the Automated Music Composition and Generation System of the present invention, for storing and archiving system user account profiles, tastes and preferences, as well as all emotion/style-indexed system operating parameter (SOP) tables generated for system user music composition requests on the system;
[0212] FIGS. 27C1 and 27C2, taken together, show a schematic representation of the Style Parameter Capture Subsystem (B37) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter table employed in the subsystem is set up for the exemplary style-type musical experience descriptorPOPand used during the automated music composition and generation process of the present invention;
[0213]
[0214] FIGS. 27E1 and 27E2, taken together, show a schematic representation of the Timing Generation Subsystem (B41) used in the Automated Music Composition and Generation Engine of the present invention, wherein the timing parameter capture subsystem (B40) provides timing parameters (e.g. piece length) to the timing generation subsystem (B41) for generating timing information relating to (i) the length of the piece to be composed, (ii) start of the music piece, (iii) the stop of the music piece, (iv) increases in volume of the music piece, and (v) accents in the music piece, that are to be created during the automated music composition and generation process of the present invention;
[0215]
[0216]
[0217]
[0218]
[0219]
[0220]
[0221]
[0222] FIGS. 27M1 and 27M2, taken together, show a schematic representation of the Song Form Generation Subsystem (B9) used in the Automated Music Composition and Generation Engine of the present invention, wherein the song form is selected using the probability-based song form sub-phrase parameter table employed within the subsystem for the exemplary emotion-type musical experience descriptorHAPPYprovided to the system by the system user, and wherein the selected song form is used during the automated music composition and generation process of the present invention;
[0223]
[0224] FIGS. 27O1, 27O2, 27O3 and 27O4, taken together, show a schematic representation of the Chord Length Generation Subsystem (B11) used in the Automated Music Composition and Generation Engine of the present invention, wherein the chord length is selected using the probability-based chord length parameter table employed within the subsystem for the exemplary emotion-type musical experience descriptor provided to the system by the system user, and wherein the selected chord length is used during the automated music composition and generation process of the present invention;
[0225]
[0226]
[0227]
[0228]
[0229]
[0230]
[0231] FIGS. 27V1, 27V2 and 27V3, taken together, show a schematic representation of the Sub-Phrase Chord Progression Generation Subsystem (B19) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter tables (i.e. chord root table, chord function root modifier, and beat root modifier table) employed in the subsystem for the exemplary emotion-type musical experience descriptorHAPPYis used during the automated music composition and generation process of the present invention;
[0232]
[0233] FIGS. 27X1, 27X2 and 27X3, taken together, show a schematic representation of the Chord Inversion Generation Subsystem (B20) used in the Automated Music Composition and Generation Engine of the present invention, wherein chord inversion is determined using the probability-based parameter tables (i.e. initial chord inversion table, and chord inversion table) for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process of the present invention;
[0234]
[0235] FIGS. 27Z1 and 27Z2, taken together, show a schematic representation of the Melody Sub-Phrase Generation Subsystem (B24) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter tables (i.e. sub-phrase melody placement tables) employed in the subsystem for the exemplary emotion-type musical experience descriptorHAPPYare used during the automated music composition and generation process of the present invention;
[0236]
[0237]
[0238]
[0239] FIGS. 27DD1, 27DD2 and 27DD3, taken together, show a schematic representation of the Melody Note Rhythm Generation Subsystem (B26) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter tables (i.e. initial note length table and initial and second chord length tables) employed in the subsystem for the exemplary emotion-type musical experience descriptorHAPPYare used during the automated music composition and generation process of the present invention;
[0240]
[0241] FIGS. 27FF1 and 27FF2, and 27FF3, taken together, show a schematic representation of the Sub-Phrase Pitch Generation Subsystem (B29) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter tables (i.e. melody note table and chord modifier table, leap reversal modifier table, and leap incentive modifier table) employed in the subsystem for the exemplary emotion-type musical experience descriptorHAPPYare used during the automated music composition and generation process of the present invention;
[0242]
[0243] FIGS. 27HH1 and 27HH2, taken together, show a schematic representation of the Pitch Octave Generation Subsystem (B30) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter tables (i.e. melody note octave table) employed in the subsystem is set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process of the present invention;
[0244] FIGS. 27II1 and 27II2, taken together, show a schematic representation of the Instrumentation Subsystem (B38) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter table (i.e. instrument table) employed in the subsystem for the exemplary emotion-type musical experience descriptorHAPPYare used during the automated music composition and generation process of the present;
[0245] FIGS. 27JJ1 and 27JJ2, taken together, show a schematic representation of the Instrument Selector Subsystem (B39) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter tables (i.e. instrument selection table) employed in the subsystem for the exemplary emotion-type musical experience descriptorHAPPYare used during the automated music composition and generation process of the present invention;
[0246] FIGS. 27KK1, 27KK2, 27KK3, 27KK4, 27KK5, 27KK6, 27KK7, 27KK8 and 27KK9, taken together, show a schematic representation of the Orchestration Generation Subsystem (B31) used in the Automated Music Composition and Generation Engine of the present invention, wherein the probability-based parameter tables (i.e. instrument orchestration prioritization table, instrument energy tabled, piano energy table, instrument function table, piano hand function table, piano voicing table, piano rhythm table, second note right hand table, second note left hand table, piano dynamics table, etc.) employed in the subsystem for the exemplary emotion-type musical experience descriptorHAPPYare used during the automated music composition and generation process of the present invention;
[0247]
[0248]
[0249]
[0250]
[0251] FIG. 27OO1 shows a schematic representation of the Piece Format Translator Subsystem (B50) used in the Automated Music Composition and Generation Engine of the present invention, wherein the completed music piece is translated into desired alterative formats requested during the automated music composition and generation process of the present invention;
[0252]
[0253] FIGS. 27QQ1, 27QQ2 and 27QQ3, taken together, show a schematic representation of The Feedback Subsystem (B42) used in the Automated Music Composition and Generation Engine of the present invention, wherein (i) digital audio file and additional piece formats are analyzed to determine and confirm that all attributes of the requested piece are accurately delivered, (ii) that digital audio file and additional piece formats are analyzed to determine and confirm uniqueness of the musical piece, and (iii) the system user analyzes the audio file and/or additional piece formats, during the automated music composition and generation process of the present invention;
[0254]
[0255]
[0256]
[0257]
[0258]
[0259]
[0260]
[0261]
[0262]
[0263]
[0264]
[0265]
[0266]
[0267]
[0268]
[0269]
[0270] FIGS. 28J1 and 28J2, taken together, show a schematic representation of the probability-based parameter tables maintained in the Sub-Phrase Chord Progression Generation Subsystem (B19) of the Automated Music Composition and Generation Engine of the present invention, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0271]
[0272] FIG. 28L1 shows a schematic representation of probability-based parameter tables maintained in the Melody Sub-Phrase Length Progression Generation Subsystem (B25) of the Automated Music Composition and Generation Engine of the present invention, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0273] FIG. 28L2 shows a schematic representation of probability-based parameter tables maintained in the Melody Sub-Phrase Generation Subsystem (B24) of the Automated Music Composition and Generation Engine of the present invention, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0274]
[0275]
[0276] FIGS. 28O1, 28O2 and 28O3, taken together, show a schematic representation of probability-based parameter tables maintained in the sub-phrase pitch generation subsystem (B29) of the Automated Music Composition and Generation Engine of the present invention, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0277]
[0278] FIGS. 28Q1A and 28Q1B, taken together, show a schematic representation of the probability-based instrument tables maintained in the Instrument Subsystem (B38) of the Automated Music Composition and Generation Engine of the present invention, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0279] FIGS. 28Q2A and 28Q2B, taken together, show a schematic representation of the probability-based instrument selector tables maintained in the Instrument Selector Subsystem (B39) of the Automated Music Composition and Generation Engine of the present invention, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0280] FIGS. 28R1, 28R2 and 28R3, taken together, show a schematic representation of the probability-based parameter tables and energy-based parameter tables maintained in the Orchestration Generation Subsystem (B31) of the Automated Music Composition and Generation Engine of the present invention, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0281]
[0282]
[0283]
[0284]
[0285]
[0286]
[0287]
[0288]
[0289]
[0290]
[0291]
[0292]
[0293]
[0294]
[0295]
[0296]
[0297]
[0298]
[0299]
[0300]
[0301]
[0302]
[0303]
[0304]
[0305]
[0306]
[0307]
DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS OF THE PRESENT INVENTION
[0308] Referring to the accompanying Drawings, like structures and elements shown throughout the figures thereof shall be indicated with like reference numerals.
Overview on the Automated Music Composition and Generation System of the Present Invention, and the Employment of its Automated Music Composition and Generation Engine in Diverse Applications
[0309]
[0310] The architecture of the automated music composition and generation system of the present invention is inspired by the inventor's real-world experience composing music scores for diverse kinds of media including movies, video-games and the like. As illustrated in
[0311]
Specification of Musical Energy (ME) and Controlling the Qualities Thereof Using the Automated Music Composition and Generation System of the Present Invention
[0312] Sound is created and perceived in its vibrations, in moving air throughout space, and in moving physical objects such as the small bones located within the human ear. Music is most often perceived as sound, with listeners receiving vibrations in the physical world. However, it is not a requirement of music to be perceived as sound, for humans can imagine music in all its forms in their mind, whether as a memory or novel creation, and enjoy it equally as if it were reaching their ears from an external source.
[0313] In both of these scenarios, physical and mental perception of music, we sense energy within the music. Musical Energy (ME) is a subjective perception, in that different individuals might perceive the same source material differently. ME is also inexorably tied to the context in which the music is perceived. The same music perceived in a battlefield, in a church, in a performance hall, after a loud piece of music, after a slow piece of music, before silence, after silence, and so on, all might affect how the perceiver of the music perceives its MF. The musical energy (ME) of music can also change within a piece, growing, languishing, and changing (or not), whether by design or by perception.
[0314] A composer often considers musical energy (ME) when creating music and utilizes compositional techniques to create it. While ME is perceived subjective, composers still strive to convey specific musical energies (MEs). Certain, but certainly not all of the attributes that might contribute to ME are tempo, rhythm, dynamics, harmony, instrumentation, orchestrationthese largely driven by the composer. In contrast, instrument performance, ensemble performance and volume are largely driven by the conductor (or performance leader).
[0315] Ultimately, there are countless variables and dimensions that, in an ever-changing and non-quantitatively definable manner, cumulate with musical energy perception. And so, musical energy is not scientifically measurable nor constant. Unlike electricity, for example, where both a creator and consumer of electrical power can consistently and properly account for and define the exact amount of electricity created and used, the same cannot be said for musical energy.
[0316] At the same time, creators of music and their collaborators often include musical energy as a key area of their collaboration, and this is true if the creators and collaborators are talking in musical language or not. In each collaborative relationship, a system, however musical or tangential, however simple or complex, is typically used to facilitate communication around musical energy. What is important is that there is a common system, and/or a common language, used. And with this common system, there is a level of control provided over the music and its quality.
[0317] Each participant in music making and/or music perceiving has a role to play in the perception of musical energy (ME). The composer creates the (often, though not necessarily written) record of the music, the performer interprets the record and creates physical vibrations of mental perceptions, and the perceiver feels the musical energy of the music. Energy is defined as a fundamental entity of nature that is transferred between parts of a system in the production of physical change within the system, and usually regarded as the capacity for doing work. The parallels to musical energy are strong, such that musical energy (ME) can be defined as a fundamental entity of music that is transferred between parts of a system in the production of physical and/or mental change within the system.
[0318] In general, the automated music composition and generation system of the present invention provides users the ability to exert a specific amount of control over their music being composed and generated by the system, without having any specific knowledge of or experience in music theory or performance. How much control a system user will be provided over the qualities of musical energy (ME) embodied in and expressed by a piece of music being composed and generated by the automated music composition and generation engine (E1), will depend on the design and implementation of the system user interface subsystem B0 supported on each client computing system in communication with the automated music composition and generation engine E1.
[0319] As disclosed herein, there are many different ways to practice the systems and methods of the present invention. As shown in
[0320] The system user interface subsystem (B0) includes both GUI-based and API-based interfaces that support: (i) pre-musical composition control over musical energy (ME) before composition, and (ii) post-musical composition control over musical energy (ME) after musical composition. These options provide system users with little or no musical theory experience or musical talent, with a greater degree of flexibility and control over the qualities of musical energy (ME) embodied in music to be composed and generated during the music composition and generation process using the automated music composition and generation system of the present invention, so that the resulting produce pieces of music better reflects the desires and requirements of the system user in specific applications.
[0321] While not having any inh user interface, an application program ming interface (API) supported by the system user interface subsystem (130) shown in
[0322] While many different kinds of APIs may be developed and supported by the system user interface subsystem (130) of the Engine (E1), the current preference would a web API such as JSON:API built using the JSON (JavaScript Object Notation), an open-standard file data-interchange format that uses human-readable text to transmit data objects consisting of attributevalue pairs and array data types. JSON is easy for humans to read and write. It is easy for machines to parse and generate. A JSON:API specifies how a client should request that resources be fetched or modified, and how a server should respond to those requests. The JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability. JSON:API requires use of the JSON:API media type (application/vnd.api+json) for exchanging data.
[0323] In the illustrative embodiments described herein, the dimensions of control over musical energy (ME) include the following Musical Energy Qualities: [0324] Emotion/Mood Type Musical Experience Descriptors (MXD)(e.g. expressed in the form of graphical icons, emojis, images, words and other linguistic expressions) [0325] Style/Genre Type Musical Experience Descriptors (MXD)(e.g. expressed in the form of graphical icons, emojis, images, words and other linguistic expressions) [0326] Tempo: Number, from 0-N [0327] Dynamics: ppp (pianissimo)-fff (fortissimo) [0328] Rhythm: SimpleComplex [0329] Harmony: SimpleComplex [0330] Melody: SimpleComplex [0331] Instrumentation: Specific Instrumentation Control [0332] Orchestration: SparseDense [0333] Instrument Performance: RigidFlowing [0334] Ensemble Performance: RigidFlowing [0335] Volume: N db-N db [0336] Timing: 0-XXXSeconds, and start/peak/stop [0337] Framing: intro, climax, outro (ICO)
[0338] Notably, the range of ME parameter quantities for Orchestration (SparseDense)could be defined as how many instruments are playing simultaneously or how many notes are they (or is the collective ensemble) playing at one time.
[0339] The range of ME parameter quantities for Ensemble Performance or Ensemble Performance (RigidFlowing) could be defined as how consistent a musical performance is with respect to timing (e.g. the music sounds like it is played to the beat of a metronome) in comparison to a musical performance which ebbs and flows with more musicality (e.g. rubato, accelerando, etc.)
[0340] The range of ME parameter quantities for Rhythm (SimpleComplex) could be defined as the degree of complexity that the patterned arrangement of notes, pitch events or sounds appear in a piece of music, as measured according to duration and periodic stress. This measure could be quantified on a scale of 0-10, or other suitable continuum.
[0341] The range of ME parameter quantities for Harmony (SimpleComplex) could be defined as the degree of complexity that combinations of musical notes are simultaneously sounded in a piece of music to produce chords and chord progressions with a pleasing effect. This measure could be quantified on a scale of 0-10, or other suitable continuum.
[0342] The range of ME parameter quantities for Melody (SimpleComplex) could be defined as the degree of complexity that a sequence of single notes in a piece of music, have a sense of Rhythm, wherein Rhythm is understood to represent the time patterned characteristics of the piece of music. This measure could be quantified on a scale of 0-10, or other suitable continuum.
[0343] In the pre-musical composition section of the system, users can specify the Intro, Climax, and Outro (ICO) delineations in the piece of music that is to be composed. In the case that both ICO and tempo qualities are specified, then the requested ICO points may not line up with a (down) beat in the music, and in such cases, the system will automatically generate musical structure that most effectively achieves the system user's creative goal(s) within a predefined set of guidelines represented by the SOP tables maintained within the system.
[0344] Once a piece of music has been composed, the user has control over the quality of musical energy (ME) embodied in the piece of music, typically in the post-musical composition section of the system. In some system designs, the same robust range of musical energy quality control parameters represented in the schematic diagram of FIG. lA may be supported and controlled by the system user, in both the pre-musical composition section as well as the post-musical composition system. How different such sections will be from each other in any given system implementation will depend on the system designer's objectives, design requirements, and system user's needs and capacities. In some illustrative embodiments, the post-musical composition section may support all ME quality control parameters illustrated in
[0345] In general, the system users will be provided with system user interfaces that support the specific dimensions of musical energy control that will meet the needs and requirements of specific user segments who will be expected to utilize the system in a specified manner. As shown in
[0346] (i) simple user experience (UX) designs that may be implemented in a mobile application (e.g. Instagram, Snapchat and/or YouTube media, messaging and communication applications) as illustrated in
[0347] (ii) complex UX designs that may be implemented in desktop and/or mobile applications as lustrated in
[0348] In some applications of the present invention, machine-controlled computer-vision can be used to automatically recognize and extract specific features from graphical images (e.g. specific facial recognition details such as a smile, grin, or grimace on the face of a human being, or scene objects that indicate or suggest specific kinds of emotions/broods that may accompany the video, or scene objects that indicate or suggest specific styles or genres of music that may aptly accompany such video scenery). Once recognized, and confirmed against a database of features or validated against a set of predefined principles, these recognized image features can be used to support and implement a course of automated control over the quality of musical energy (MF) that is to be embodied or expressed in the piece of digital music being composed and generated by the automated music composition and generation system of the present invention. Using this method of musical energy quality control, it is possible to automatically control the musical energy of music being composed without any human system user ever being provided as system input to the system user interface subsystem (B0) of the system.
[0349] Other kinds of inputs can be used to control the musical energy (MF) of music being composed: audio tracks (i.e. when dialogue drops down, then musical energy could pick up and vice versa); and text (either prose or words and phrases) in the form of emotion and style MXDs.
[0350] AR input control parameters should be contextual to themselves, meani that if a user requests music that is happy, when happy has been previously requested, then make music that is happier using the original happy input as the reference point.
Specification of the Automated Music Composition Process of the Present Invention
[0351] As shown in
[0352] The automated music composition and generation system is a complex system comprised of many subsystems, wherein complex calculators, analyzers and other specialized machinery is used to support highly specialized generative processes that support the automated music composition and generation process of the present invention. Each of these components serves a vital role in a specific part of the music composition and generation engine system (i.e. engine) of the present invention, and the combination of each component into a ballet of integral elements in the automated music composition and generation engine creates a value that is truly greater that the sum of any or all of its parts. A concise and detailed technical description of the structure and functional purpose of each of these subsystem components is provided hereinafter in
[0353] As shown in
[0354] In
[0355] As shown in FIGS. 27B1 and 27B2, the Descriptor Parameter Capture Subsystem B1 interfaces with a Parameter Transformation Engine Subsystem B51 schematically illustrated in FIG. 27B3B, wherein the musical experience descriptors (e.g. emotion-type descriptors illustrated in
[0356] The principles by which such non-musical system user parameters are transformed or otherwise mapped into the probabilistic-based system operating parameters of the various system operating parameter (SOP) tables employed in the system will be described hereinbelow with reference to the transformation engine model schematically illustrated in FIGS. 27B3A, 27B3B and 27B3C, and related figures disclosed herein. In connection therewith, it will be helpful to illustrate how the load of parameter transformation engine in subsystem B51 will increase depending on the degrees of freedom supported by the musical experience descriptor interface in subsystem B0.
[0357] Consider an exemplary system where the system supports a set of N different emotion-type musical experience descriptors (N.sub.e) and a set of M different style-type musical experience descriptors (M.sub.s), from which a system user can select at the system user interface subsystem B0. Also, consider the case where the system user is free to select only one emotion-type descriptor from the set of N different emotion-type musical experience descriptors (N.sub.e), and only one style-type descriptor set of M different style-type musical experience descriptors (M.sub.s). In this highly limited case, where the system user can select any one of N unique emotion-type musical experience descriptors (N.sub.e). and only one of the M different style-type musical experience descriptors (M.sub.s), the Parameter Transformation Engine Subsystem B51 FIGS. 27B3A, 27B3B and 27B3C will need to generate N.sub.sopt=N.sub.e!/(N.sub.er)!r.sub.e!M.sub.s!/(M.sub.sr.sub.s)!r.sub.s! unique sets of probabilistic system operating parameter (SOP) tables, as illustrated in
[0358] For the case where the system user is free to select up to two (2) unique emotion-type musical experience descriptors from the set of N unique emotion-type musical experience descriptors (N.sub.e), and two (2) unique style-type musical experience descriptors from the set of M different style-type musical experience descriptors (M.sub.s), then the Transformation Engine of FIGS. 27B3A, 27B3B and 27B3C must generate N.sub.sopt=N.sub.e!/(N.sub.e2)!2!M.sub.s!/(M.sub.s2)!2! different sets of probabilistic system operating parameter tables (S.sub.OPT) as illustrated in
[0359] While the quantitative nature of the probabilistic system operating tables have been explored above, particularly with respect to the expected size of the table sets, that can be generated by the Transformation Engine Subsystem B51, it will be appropriate to discuss at a later juncture with reference to FIGS. 27B3A, 27B3B and 27B3C and
[0360] Regarding the overall timing and control of the subsystems within the system, reference should be made to the system timing diagram set forth in
[0361] As shown in
[0362] The table formed by
[0363]
Overview of the Automated Musical Composition and Generation Process of the Present Invention Supported by the Architectural Components of the Automated Music Composition and Generation System Illustrated in
[0364] It will be helpful at this juncture to refer to the high-level flow chart set forth in
[0365] As indicated in Block A of
[0366] As indicated in Block B of
[0367] As indicated in Block C of
[0368] As indicated in Block D of
[0369] As indicated in Block E of
[0370] As indicated in Block F of
[0371] As indicated in Block G of
[0372] As indicated in Block H of
[0373] As indicated in Block I of
Specification of the First Illustrative Embodiment of the Automated Music Composition and Generation System of the Present Invention
[0374]
[0375]
[0376] In general, the automatic or automated music composition and generation system shown in
[0377] For purpose of illustration, the digital circuitry implementation of the system is shown as an architecture of components configured around SOC or like digital integrated circuits. As shown, the system comprises the various components, comprising: SOC sub-architecture including a multi-core CPU, a multi-core GPU, program memory (DRAM), and a video memory (VRAM); a hard drive (SATA); a LCD/touch-screen display panel; a microphone/speaker; a keyboard; WIFI/Bluetooth network adapters; pitch recognition module/board; and power supply and distribution circuitry; all being integrated around a system bus architecture and supporting controller chips, as shown.
[0378] The primary function of the multi-core CPU is to carry out program instructions loaded into program memory (e.g. micro-code), while the multi-core GPU will typically receive and execute graphics instructions from the multi-core CPU, although it is possible for both the multi-core CPU and GPU to be realized as a hybrid multi-core CPU/GPU chip where both program and graphics instructions can be implemented within a single IC device, wherein both computing and graphics pipelines are supported, as well as interface circuitry for the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry. The purpose of the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry will be to support and implement the functions supported by the system interface subsystem B0, as well as other subsystems employed in the system.
[0379]
[0380]
Specification of Modes of Operation of the Automated Music Composition and Generation System of the First Illustrative Embodiment of the Present Invention
[0381] The Automated Music Composition and Generation System of the first illustrative embodiment shown in
Specification of the Second Illustrative Embodiment of the Automated Music Composition and Generation System of the Present Invention
[0382]
[0383]
[0384] In general, the automatic or automated music composition and generation system shown in
[0385] For purpose of illustration, the digital circuitry implementation of the system is shown as an architecture of components configured around SOC or like digital integrated circuits. As shown, the system comprises the various components, comprising: SOC sub-architecture including a multi-core CPU, a multi-core GPU, program memory (DRAM), and a video memory (VRAM); a hard drive (SATA); a LCD/touch-screen display panel; a microphone/speaker; a keyboard; WIFI/Bluetooth network adapters; pitch recognition module/board; and power supply and distribution circuitry; all being integrated around a system bus architecture and supporting controller chips, as shown.
[0386] The primary function of the multi-core CPU is to carry out program instructions loaded into program memory (e.g. micro-code), while the multi-core GPU will typically receive and execute graphics instructions from the multi-core CPU, although it is possible for both the multi-core CPU and GPU to be realized as a hybrid multi-core CPU/GPU chip where both program and graphics instructions can be implemented within a single IC device, wherein both computing and graphics pipelines are supported, as well as interface circuitry for the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry. The purpose of the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry will be to support and implement the functions supported by the system interface subsystem B0, as well as other subsystems employed in the system.
[0387]
[0388]
Specification of Modes of Operation of the Automated Music Composition and Generation System of the Second Illustrative Embodiment of the Present Invention
[0389] The Automated Music Composition and Generation System of the second illustrative embodiment shown in
Specification of the Third Illustrative Embodiment of the Automated Music Composition and Generation System of the Present Invention
[0390]
[0391]
[0392]
[0393] In general, the automatic or automated music composition and generation system shown in
[0394] For purpose of illustration, the digital circuitry implementation of the system is shown as an architecture of components configured around SOC or like digital integrated circuits. As shown, the system comprises the various components, comprising: SOC sub-architecture including a multi-core CPU, a multi-core GPU, program memory (DRAM), and a video memory (VRAM); a hard drive (SATA); a LCD/touch-screen display panel; a microphone/speaker; a keyboard; WIFI/Bluetooth network adapters; pitch recognition module/board; and power supply and distribution circuitry; all being integrated around a system bus architecture and supporting controller chips, as shown.
[0395] The primary function of the multi-core CPU is to carry out program instructions loaded into program memory (e.g. micro-code), while the multi-core GPU will typically receive and execute graphics instructions from the multi-core CPU, although it is possible for both the multi-core CPU and GPU to be realized as a hybrid multi-core CPU/GPU chip where both program and graphics instructions can be implemented within a single IC device, wherein both computing and graphics pipelines are supported, as well as interface circuitry for the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry. The purpose of the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry will be to support and implement the functions supported by the system interface subsystem B0, as well as other subsystems employed in the system.
[0396]
Specification of Modes of Operation of the Automated Music Composition and Generation System of the Third Illustrative Embodiment of the Present Invention
[0397] The Automated Music Composition and Generation System of the third illustrative embodiment shown in
Specification of the Fourth Illustrative Embodiment of the Automated Music Composition and Generation System of the Present Invention
[0398]
[0399]
[0400]
[0401]
Specification of Modes of Operation of the Automated Music Composition and Generation System of the Fourth Illustrative Embodiment of the Present Invention
[0402] The Automated Music Composition and Generation System of the fourth illustrative embodiment shown in
Specification of Graphical User Interfaces (GUIs) for the Various Modes of Operation Supported by the Automated Music Composition and Generation System of the Fourth Illustrative Embodiment of the Present Invention
[0403]
Specification of the Score Media Mode
[0404] The user decides if the user would like to create music in conjunction with a video or other media, then the user will have the option to engage in the workflow described below and represented in
[0405] When the system user selects Select Video object in the GUI of
[0406] Using the GUI screen shown in
[0407]
[0408]
[0409]
[0410]
[0411] It should be noted at this juncture that while the fourth illustrative embodiment shows a fixed set of emotion-type musical experience descriptors, for characterizing the emotional quality of music to be composed and generated by the system of the present invention, it is understood that in general, the music composition system of the present invention can be readily adapted to support the selection and input of a wide variety of emotion-type descriptors such as, for example, linguistic descriptors (e.g. words), images, and/or like representations of emotions, adjectives, or other descriptors that the user would like to music to convey the quality of emotions to be expressed in the music to be composed and generated by the system of the present invention.
[0412]
[0413] At this stage of the workflow, the system user can select COMPOSE and the system will automatically compose and generate music based only on the emotion-type musical experience parameters provided by the system user to the system interface. In such a case, the system will choose the style-type parameters for use during the automated music composition and generation system. Alternatively, the system user has the option to select CANCEL, to allow the user to edit their selections and add music style parameters to the music composition specification.
[0414]
[0415]
[0416] It should be noted at this juncture that while the fourth illustrative embodiment shows a fixed set of style-type musical experience descriptors, for characterizing the style quality of music to be composed and generated by the system of the present invention, it is understood that in general, the music composition system of the present invention can be readily adapted to support the selection and input of a wide variety of style-type descriptors such as, for example, linguistic descriptors (e.g. words), images, and/or like representations of emotions, adjectives, or other descriptors that the user would like to music to convey the quality of styles to be expressed in the music to be composed and generated by the system of the present invention.
[0417]
[0418]
[0419]
[0420] In this illustrative embodiment, the music spotting function or mode allows a system user to convey the timing parameters of musical events that the user would like to music to convey, including, but not limited to, music start, stop, descriptor change, style change, volume change, structural change, instrumentation change, split, combination, copy, and paste. This process is represented in subsystem blocks 40 and 41 in
[0421]
[0422]
[0423]
[0424] At this stage of the process, the system user may preview the music that has been created. If the music was created with a video or other media, then the music may be synchronized to this content in the preview.
[0425] As shown in
[0426] (i) edit the musical experience descriptors set for the musical piece and recompile the musical composition;
[0427] (ii) accept the generated piece of composed music and mix the audio with the video to generated a scored video file; and
[0428] (iii) select other options supported by the automatic music composition and generation system of the present invention.
[0429] If the user would like to resubmit the same request for music to the system and receive a different piece of music, then the system user may elect to do so. If the user would like to change all or part of the user's request, then the user may make these modifications. The user may make additional requests if the user would like to do so. The user may elect to balance and mix any or all of the audio in the project on which the user is working including, but not limited to, the pre-existing audio in the content and the music that has been generated by the platform. The user may elect to edit the piece of music that has been created.
[0430] The user may edit the music that has been created, inserting, removing, adjusting, or otherwise changing timing information. The user may also edit the structure of the music, the orchestration of the music, and/or save or incorporate the music kernel, or music genome, of the piece. The user may adjust the tempo and pitch of the music. Each of these changes can be applied at the music piece level or in relation to a specific subset, instrument, and/or combination thereof. The user may elect to download and/or distribute the media with which the user has started and used the platform to create.
[0431] The user may elect to download and/or distribute the media with which the user has started and used the platform to create.
[0432] In the event that, at the GUI screen shown in
Specification of the Compose Music Only Mode of System Operation
[0433] If the user decides to create music independently of any additional content by selecting Music Only in the GUI screen of
[0434]
Specification of the Fifth Illustrative Embodiment of the Automated Music Composition and Generation System of the Present Invention
[0435]
[0436]
[0437]
[0438]
[0439]
[0440]
[0441]
[0442]
Specification of the Sixth Illustrative Embodiment of the Automated Music Composition and Generation System of the Present Invention
[0443]
[0444]
[0445]
[0446]
[0447] In general, the automatic or automated music composition and generation system shown in
[0448] For purpose of illustration, the digital circuitry implementation of the system is shown as an architecture of components configured around SOC or like digital integrated circuits. As shown, the system comprises the various components, comprising: SOC sub-architecture including a multi-core CPU, a multi-core GPU, program memory (DRAM), and a video memory (VRAM); a hard drive (SATA); a LCD/touch-screen display panel; a microphone/speaker; a keyboard; WIFI/Bluetooth network adapters; pitch recognition module/board; and power supply and distribution circuitry; all being integrated around a system bus architecture and supporting controller chips, as shown.
[0449] The primary function of the multi-core CPU is to carry out program instructions loaded into program memory (e.g. micro-code), while the multi-core GPU will typically receive and execute graphics instructions from the multi-core CPU, although it is possible for both the multi-core CPU and GPU to be realized as a hybrid multi-core CPU/GPU chip where both program and graphics instructions can be implemented within a single IC device, wherein both computing and graphics pipelines are supported, as well as interface circuitry for the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry. The purpose of the LCD/touch-screen display panel, microphone/speaker, keyboard or keypad device, as well as WIFI/Bluetooth (BT) network adapters and the pitch recognition module/circuitry will be to support and implement the functions supported by the system interface subsystem B0, as well as other subsystems employed in the system.
[0450]
Specification of the Illustrative Embodiment of the Automated Music Composition and Generation Engine of the Present Invention
[0451]
[0452]
[0453] At this stage, it is appropriate to discuss a few important definitions and terms relating to important music-theoretic concepts that will be helpful to understand when practicing the various embodiments of the automated music composition and generation systems of the present invention. However, it should be noted that, while the system of the present invention has a very complex and rich system architecture, such features and aspects are essentially transparent to all system users, allowing them to have essentially no knowledge of music theory, and no musical experience and/or talent. To use the system of the present invention, all that is required by the system user is to have (i) a sense of what kind of emotions they system user wishes to convey in an automatically composed piece of music, and/or (ii) a sense of what musical style they wish or think the musical composition should follow.
[0454] At the top level, the Pitch Landscape C0 is a term that encompasses, within a piece of music, the arrangement in space of all events. These events are often, though not always, organized at a high level by the musical piece's key and tonality; at a middle level by the musical piece's structure, form, and phrase; and at a low level by the specific organization of events of each instrument, participant, and/or other component of the musical piece. The various subsystem resources available within the system to support pitch landscape management are indicated in the schematic representation shown in
[0455] Similarly, Rhythmic Landscape C1 is a term that encompasses, within a piece of music, the arrangement in time of all events. These events are often, though not always, organized at a high level by the musical piece's tempo, meter, and length; at a middle level by the musical piece's structure, form, and phrase; and at a low level by the specific organization of events of each instrument, participant, and/or other component of the musical piece. The various subsystem resources available within the system to support pitch landscape management are indicated in the schematic representation shown in
[0456] There are several other high-level concepts that play important roles within the Pitch and Rhythmic Landscape Subsystem Architecture employed in the Automated Music Composition And Generation System of the present invention.
[0457] In particular, Melody Pitch is a term that encompasses, within a piece of music, the arrangement in space of all events that, either independently or in concert with other events, constitute a melody and/or part of any melodic material of a musical piece being composed.
[0458] Melody Rhythm is a term that encompasses, within a piece of music, the arrangement in time of all events that, either independently or in concert with other events, constitute a melody and/or part of any melodic material of a musical piece being composed.
[0459] Orchestration for the piece of music being composed is a term used to describe manipulating, arranging, and/or adapting a piece of music.
[0460] Controller Code for the piece of music being composed is a term used to describe information related to musical expression, often separate from the actual notes, rhythms, and instrumentation.
[0461] Digital Piece of music being composed is a term used to describe the representation of a musical piece in a digital or combination or digital and analog, but not solely analog manner.
[0462]
[0463] More specifically, as shown in
[0464] As shown in
[0465] As shown in
[0466] As shown in
[0467] As shown in
[0468] As shown in
[0469] As shown in
[0470] As shown in
[0471] As shown in
[0472] As shown in
[0473] As shown in
[0474] Having provided an overview of the subsystems employed in the system, it is appropriate at this juncture to describe, in greater detail, the input and output port relationships that exist among the subsystems, as clearly shown in
Specification of Input and Output Port Connections Among Subsystems Within the Input Subsystem B0
[0475] As shown in
[0476] As shown in
[0477] As shown in
[0478] In the event that the music spotting feature is enabled or accessed by the system user, and timing parameters are transmitted to the input subsystem B0, then the Timing Parameter Capture Subsystem B40 will enable other subsystems (e.g. Subsystems A1, A2, etc.) to support such functionalities.
[0479] As shown in
Specification of Input and Output Port Connections Among Subsystems Within the General Rhythm Generation Subsystem A1
[0480] As shown in
[0481] As shown in
[0482] As shown in
[0483] As shown in
[0484] As shown in
[0485] As shown in
[0486] As shown in
[0487] As shown in
[0488] As shown in
[0489] As shown in
[0490] As shown in
[0491] As shown in
[0492] As shown in FIGS. 26E1, 26H and 261, the data output port of the Song Form Subsystem B9 is connected to the data input ports of the Sub-Phrase Length Generation Subsystem B15, the Chord Length Generation Subsystem B11, and Phrase Length Generation Subsystem B12.
[0493] As shown in
[0494] As shown in
[0495] As shown in
[0496] As shown in
Specification of Input and Output Port Connections Among Subsystems Within the General Pitch Generation Subsystem A2
[0497] As shown in
[0498] As shown in
[0499] As shown in
[0500] As shown in
Specification of Input and Output Port Connections Among Subsystems Within the Melody Rhythm Generation Subsystem A3
[0501] As shown in
[0502] As shown in
[0503] As shown in
[0504] As shown in
[0505] As shown in
[0506] As shown in
[0507] As shown in
[0508] As shown in 26L, the data output port of the Melody Length Generation Subsystem B21 is connected to the data input port of Melody Note Rhythm Generation Subsystem B26.
Specification of Input and Output Port Connections Among Subsystems Within the Melody Pitch Generation Subsystem A4
[0509] As shown in
[0510] As shown in
[0511] As shown in
[0512] As shown in
[0513] As shown in
Specification of Input and Output Port Connections Among Subsystems Within the Orchestration Subsystem A5
[0514] As shown in
[0515] As shown in
[0516] As shown in
Specification of Input and Output Port Connections Among Subsystems Within the Controller Code Creation Subsystem A6
[0517] As shown in
[0518] As shown in
Specification of Input and Output Port Connections Among Subsystems Within the Digital Piece Creation Subsystem A7
[0519] As shown in
[0520] As shown in
[0521] As shown in
[0522] As shown in
[0523] As shown in
[0524] As shown in
Specification of Input and Output Port Connections Among Subsystems Within the Feedback and Learning Subsystem A8
[0525] As shown in
[0526] As shown in
[0527] As shown in
[0528] As shown in
[0529] As shown in
[0530] As shown in
[0531] As shown in
[0532] As shown in
[0533] As shown in
[0534] As shown in
Specification of Lower (B) Level Subsystems Implementing Higher (A) Level Subsystems with the Automated Music Composition and Generation Systems of the Present Invention, and Quick Identification of Parameter Tables Employed in Each B-Level Subsystem
[0535] Referring to FIGS. 23B3A, 27B3B and 27B3C, there is shown a schematic representation illustrating how system user supplied sets of emotion, style and timing/spatial parameters are mapped, via the Parameter Transformation Engine Subsystem B51, into sets of system operating parameters stored in parameter tables that are loaded within respective subsystems across the system of the present invention. Also, the schematic representation illustrated in FIGS. 27B4A, 27B4B, 27B4C, 27B4D and 27B4E, also provides a map that illustrates which lower B-level subsystems are used to implement particular higher A-level subsystems within the system architecture, and which parameter tables are employed within which B-level subsystems within the system. These subsystems and parameter tables will be specified in greater technical detail hereinafter.
Specification of the Probability-Based System Operating Parameters Maintained Within the Programmed Tables of The Various Subsystems Within the Automated Music Composition and Generation System of the Present Invention
[0536] The probability-based system operating parameters (SOPs) maintained within the programmed tables of the various subsystems specified in
Specification of the Tempo Generation Table Within the Tempo Generation Subsystem (B3)
[0537]
[0538] The primary function of the tempo generation table is to provide a framework to determine the tempo(s) of a musical piece, section, phrase, or other structure. The tempo generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
Specification of the Length Generation Table Within the Length Generation Subsystem (B2)
[0539]
[0540] The primary function of the length generation table is to provide a framework to determine the length(s) of a musical piece, section, phrase, or other structure. The length generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
Specification of the Meter Generation Table Within the Meter Generation Subsystem (B4)
[0541]
[0542] The primary function of the meter generation table is to provide a framework to determine the meter(s) of a musical piece, section, phrase, or other structure. The meter generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
[0543] Like all system operating parameter (SOP) tables, the Parameter Transformation Engine Subsystem B51 generates probability-weighted tempo parameter tables for all of the possible musical experience descriptors selected at the system user interface subsystem B0. Taking into consideration these inputs, this subsystem B4 creates the meter(s) of the piece. For example, a piece with an input descriptor of Happy, a length of thirty seconds, and a tempo of sixty beats per minute might have a one third probability of using a meter of 4/4 (four quarter notes per measure), a one third probability of using a meter of 6/8 (six eighth notes per measure), and a one third probability of using a tempo of 2/4 (two quarter notes per measure). If there are multiple sections, music timing parameters, and/or starts and stops in the music, multiple meters might be selected.
[0544] There is a strong relationship between Emotion and style descriptors and meter. For example, a waltz is often played with a meter of , whereas a march is often played with a meter of 2/4. The system's meter tables are reflections of the cultural connection between a musical experience and/or style and the meter in which the material is delivered.
[0545] Further, meter(s) of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to line up the measures and/or beats of the music with certain timing requests. For example, if a piece of music a certain tempo needs to accent a moment in the piece that would otherwise occur on halfway between the fourth beat of a 4/4 measure and the first beat of the next 4/4 measure, an change in the meter of a single measure preceding the desired accent to would cause the accent to occur squarely on the first beat of the measure instead, which would then lend itself to a more musical accent in line with the downbeat of the measure.
Specification of the Key Generation Table Within the Key Generation Subsystem (B5)
[0546]
[0547] The primary function of the key generation table is to provide a framework to determine the key(s) of a musical piece, section, phrase, or other structure. The key generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
Specification of the Tonality Generation Table Within the Tonality Generation Subsystem (B7)
[0548]
[0549] The primary function of the tonality generation table is to provide a framework to determine the tonality(s) of a musical piece, section, phrase, or other structure. The tonality generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
Specification of the Parameter Tables Within the Song Form Generation Subsystem (B9)
[0550]
[0551] The primary function of the song form generation table is to provide a framework to determine the song form(s) of a musical piece, section, phrase, or other structure. The song form generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27M1 and 27M2, the subsystem B9 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0552] The primary function of the sub-phrase generation table is to provide a framework to determine the sub-phrase(s) of a musical piece, section, phrase, or other structure. The sub-phrase generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27M1 and 27M2, the subsystem B9 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Table Within the Sub-Phrase Length Generation Subsystem (B15)
[0553]
[0554] The primary function of the sub-phrase length generation table provides a framework to determine the length(s) or duration(s) of a musical piece, section, phrase, or other structure. The sub-phrase length generation table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
Specification of the Parameter Tables Within the Chord Length Generation Subsystem (B11)
[0555]
[0556] Length Generation Subsystem (B11) of the Automated Music Composition and Generation Engine of the present invention. As shown in
[0557] The primary function of the initial chord length table is to provide a framework to determine the duration of an initial chord(s) or prevailing harmony(s) in a musical piece, section, phrase, or other structure. The initial chord length table is used by loading a proper set of parameters as determined by B1, B37, B40, and B41 and, through a guided stochastic process, the subsystem makes a determination(s) as to what value (s) and/or parameter(s) in the table to use.
[0558] The primary function of the second chord length table is to provide a framework to determine the duration of a non-initial chord(s) or prevailing harmony(s) in a musical piece, section, phrase, or other structure. The second chord length table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
Specification of the Parameter Tables Within the General Rhythm Generation Subsystem (B17)
[0559]
[0560] The primary function of the initial chord root table is to provide a framework to determine the root note of the initial chord(s) of a piece, section, phrase, or other similar structure. The initial chord root table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B5, B7, and B37, and, through a guided stochastic process, the subsystem B17 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0561] The primary function of the chord function table is to provide a framework to determine to musical function of a chord or chords. The chord function table is used by loading a proper set of parameters as determined by B1, B5, B7, and B37, and, through a guided stochastic process illustrated in
Specification of the Parameter Tables Within the Sub-Phrase Chord Progression Generation Subsystem (B19)
[0562] FIGS. 28J1 and 28J2 shows the probability-based parameter tables maintained in the Sub-Phrase Chord Progression Generation Subsystem (B19) of the Automated Music Composition and Generation Engine of the present invention. As shown in FIGS. 28J1 and 28J2, for each emotion-type musical experience descriptor supported by the system and selected by the system user, a probability measure is provided for each original chord root (i.e. indicated by musical letter) and upcoming beat in the measure supported by the system, and these probability-based parameter tables are used during the automated music composition and generation process of the present invention.
[0563] The primary function of the chord function root modifier table is to provide a framework to connect, in a causal manner, future chord root note determination(s)s to the chord function(s) being presently determined. The chord function root modifier table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B5, B7, and B37 and, through a guided stochastic process, the subsystem B19 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0564] The primary function of the current chord function is the same as the chord function table. The current chord function table is the same as the chord function table.
[0565] The primary function of the beat root modifier table is to provide a framework to connect, in a causal manner, future chord root note determination(s)s to the arrangement in time of the chord root(s) and function(s) being presently determined. The beat root modifier table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27V1, 27V2 and 27V3, the subsystem B19 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Chord Inversion Generation Subsystem (B20)
[0566]
[0567] The primary function of the initial chord inversion table is to provide a framework to determine the inversion of the initial chord(s) of a piece, section, phrase, or other similar structure. The initial chord inversion table is used by loading a proper set of parameters as determined by B 1, B37, B40, and B41 and, through a guided stochastic process, the subsystem B20 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0568] The primary function of the chord inversion table is to provide a framework to determine the inversion of the non-initial chord(s) of a piece, section, phrase, or other similar structure. The chord inversion table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27X1, 27X2 and 27X3, the subsystem B20 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Melody Sub-Phrase Length Progression Generation Subsystem (B25)
[0569] FIG. 28L1 shows the probability-based parameter table maintained in the melody sub-phrase length progression generation subsystem (B25) of the Automated Music Composition and Generation Engine and System of the present invention. As shown in FIG. 28L1, for each emotion-type musical experience descriptor supported by the system, configured for the exemplary emotion-type musical experience descriptorHAPPYspecified in the emotion descriptor table in
[0570] The primary function of the melody length table is to provide a framework to determine the length(s) and/or rhythmic value(s) of a musical piece, section, phrase, or other structure. The melody length table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in
Specification of the Parameter Tables Within the Melody Sub-Phrase Generation Subsystem (B24)
[0571] FIG. 28L2 shows a schematic representation of probability-based parameter tables maintained in the Melody Sub-Phrase Length Generation Subsystem (B24) of the Automated Music Composition and Generation Engine of the present invention. As shown in FIG. 28L2, for each emotion-type musical experience descriptor supported by the system and selected by the system user, a probability measure is provided for each into the sub-phrase supported by the system, and this probability-based parameter table is used during the automated music composition and generation process of the present invention.
[0572] The primary function of the sub-phrase melody placement table is to provide a framework to determine the position(s) in time of a melody or other musical event. The sub-phrase melody placement table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27Z1 and 27Z2, the subsystem B24 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Melody Note Rhythm Generation Subsystem (B26)
[0573]
[0574] The primary function of the initial note length table is to provide a framework to determine the duration of an initial note(s) in a musical piece, section, phrase, or other structure. The initial note length table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 28DD1, 28DD2 and 28DD3, the subsystem B26 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Initial Pitch Generation Subsystem (B27)
[0575]
[0576] The primary function of the initial melody table is to provide a framework to determine the pitch(es) of the initial melody(s) and/or melodic material(s) of a musical piece, section, phrase, or other structure. The melody length table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B5, B7, and B37 and, through a guided stochastic process illustrated in
Specification of the Parameter Tables Within the Sub-Phrase Pitch Generation Subsystem (B29)
[0577] FIGS. 28O1, 28O2 and 28O3 shows the four probability-based system operating parameter (SOP) tables maintained in the Sub-Phrase Pitch Generation Subsystem (B29) of the Automated Music Composition and Generation Engine of the present invention. As shown in FIGS. 28O1, 28O2 and 28O3, for each emotion-type musical experience descriptor supported by the system and selected by the system user, a probability measure is provided for each original note (i.e. indicated by musical letter) supported by the system, and leap reversal, and these probability-based parameter tables are used during the automated music composition and generation process of the present invention.
[0578] The primary function of the melody note table is to provide a framework to determine the pitch(es) of a melody(s) and/or melodic material(s) of a musical piece, section, phrase, or other structure. The melody note table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B5, B7, and B37 and, through a guided stochastic process illustrated in FIGS. 27FF1, 27FF2 and 27FF3, the subsystem B29 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0579] The primary function of the chord modifier table is to provide a framework to influence the pitch(es) of a melody(s) and/or melodic material(s) of a musical piece, section, phrase, or other structure. The melody note table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B5, B7, and B37 and, through a guided stochastic process illustrated in FIGS. 27FF1, 27FF2 and 27FF3, the subsystem B29 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0580] The primary function of the leap reversal modifier table is to provide a framework to influence the pitch(es) of a melody(s) and/or melodic material(s) of a musical piece, section, phrase, or other structure. The leap reversal modifier table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a guided stochastic process illustrated in FIGS. 27FF1, 27FF2 and 27FF3, the subsystem B29 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0581] The primary function of the leap incentive modifier table to provide a framework to influence the pitch(es) of a melody(s) and/or melodic material(s) of a musical piece, section, phrase, or other structure. The leap incentive modifier table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a guided stochastic process illustrated in FIGS. 27FF1, 27FF2 and 27FF3, the subsystem B29 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Pitch Octave Generation Subsystem (B30)
[0582]
[0583] The primary function of the melody note octave table is to provide a framework to determine the specific frequency(s) of a note(s) in a musical piece, section, phrase, or other structure. The melody note octave table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27HH1 and 27HH2, the subsystem B30 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Instrument Subsystem (B38)
[0584] FIGS. 28Q1A and 28Q1B show the probability-based instrument table maintained in the Instrument Subsystem (B38) of the Automated Music Composition and Generation Engine of the present invention. As shown in FIGS. 28Q1A and 28Q1B, for each emotion-type musical experience descriptor supported by the system and selected by the system user, a probability measure is provided for each instrument supported by the system, and these probability-based parameter tables are used during the automated music composition and generation process of the present invention.
[0585] The primary function of the instrument table is to provide a framework for storing a local library of instruments, from which the Instrument Selector Subsystem B39 can make selections during the subsequent stage of the musical composition process. There are no guided stochastic processes within subsystem B38, nor any determination(s) as to what value(s) and/or parameter(s) should be select from the parameter table and use during the automated music composition and generation process of the present invention. Such decisions take place within the Instrument Selector Subsystem B39.
Specification of the Parameter Tables Within the Instrument Selector Subsystem (B39)
[0586] FIGS. 28Q2A and 28Q2B show the probability-based instrument section table maintained in the Instrument Selector Subsystem (B39) of the Automated Music Composition and Generation Engine of the present invention. As shown in FIGS. 28Q1A and 28Q1B, for each emotion-type musical experience descriptor supported by the system and selected by the system user, a probability measure is provided for each instrument supported by the system, and these probability-based parameter tables are used during the automated music composition and generation process of the present invention.
[0587] The primary function of the instrument selection table is to provide a framework to determine the instrument or instruments to be used in the musical piece, section, phrase or other structure. The instrument selection table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27JJ1 and 27JJ2, the subsystem B39 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Orchestration Generation Subsystem (B31)
[0588] FIGS. 28R1, 28R2 and 28R3 show the probability-based parameter tables maintained in the Orchestration Generation Subsystem (B31) of the Automated Music Composition and Generation Engine of the present invention, illustrated in FIGS. 27KK1 through 27KK9. As shown in FIGS. 28R1, 28R2 and 28R3, for each emotion-type musical experience descriptor supported by the system and selected by the system user, probability measures are provided for each instrument supported by the system, and these parameter tables are used during the automated music composition and generation process of the present invention.
[0589] The primary function of the instrument orchestration prioritization table is to provide a framework to determine the order and/or process of orchestration in a musical piece, section, phrase, or other structure. The instrument orchestration prioritization table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a guided stochastic process illustrated in FIG. 27KK1, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0590] The primary function of the instrument function table is to provide a framework to determine the musical function of each instrument in a musical piece, section, phrase, or other structure. The instrument function table is used by loading a proper set of parameters as determined by B1 and B37 and, through a guided stochastic process illustrated in FIG. 27KK1, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0591] The primary function of the piano hand function table is to provide a framework to determine the musical function of each hand of the piano in a musical piece, section, phrase, or other structure. The piano hand function table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a guided stochastic process illustrated in FIGS. 27KK2 and 27KK3, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0592] The primary function of the piano voicing table is to provide a framework to determine the voicing of each note of each hand of the piano in a musical piece, section, phrase, or other structure. The piano voicing table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a guided stochastic process illustrated in FIG. 27KK3, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0593] The primary function of the piano rhythm table is to provide a framework to determine the arrangement in time of each event of the piano in a musical piece, section, phrase, or other structure. The piano rhythm table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIG. 27KK3, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0594] The primary function of the second note right hand table is to provide a framework to determine the arrangement in time of each non-initial event of the right hand of the piano in a musical piece, section, phrase, or other structure. The second note right hand table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIGS. 27KK3 and 27KK4, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0595] The primary function of the second note left hand table is to provide a framework to determine the arrangement in time of each non-initial event of the left hand of the piano in a musical piece, section, phrase, or other structure. The second note left hand table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1, B37, B40, and B41 and, through a guided stochastic process illustrated in FIG. 27KK4, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0596] The primary function of the third note right hand length table provides a framework to determine the rhythmic length of the third note in the right hand of the piano within a musical piece, section, phrase, or other structure(s). The third note right hand length table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a guided stochastic process illustrated in FIGS. 27KK4 and 27KK5, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
[0597] The primary function of the piano dynamics table is to provide a framework to determine the musical expression of the piano in a musical piece, section, phrase, or other structure. The piano voicing table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a guided stochastic process illustrated in FIGS. 27KK6 and 27KK7, the subsystem B31 makes a determination(s) as to what value(s) and/or parameter(s) to select from the parameter table and use during the automated music composition and generation process of the present invention.
Specification of the Parameter Tables Within the Controller Code Generation Subsystem (B32)
[0598]
[0599] The primary function of the instrument controller code table is to provide a framework to determine the musical expression of an instrument in a musical piece, section, phrase, or other structure. The instrument controller code table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a process of guided stochastic process, making a determination(s) for the value(s) and/or parameter(s) to use.
[0600] The primary function of the instrument group controller code table is to provide a framework to determine the musical expression of an instrument group in a musical piece, section, phrase, or other structure. The instrument group controller code table is used by loading a proper set of parameters into the various subsystems determined by subsystems by B1 and B37 and, through a process of guided stochastic process, making a determination(s) for the value(s) and/or parameter(s) to use.
[0601] The primary function of the piece-wide controller code table is to provide a framework to determine the overall musical expression in a musical piece, section, phrase, or other structure. The piece-wide controller code table is used by loading a proper set of parameters into the various subsystems determined by subsystems B1 and B37 and, through a process of guided stochastic process illustrated in
Methods of Distributing Probability-Based System Operating Parameters (SOP) to the Subsystems Within the Automated Music Composition and Generation System of the Present Invention
[0602] There are different methods by which the probability-based music-theoretic parameters, generated by the Parameter Transformation Engine Subsystem B51, can be transported to and accessed within the respective subsystems of the automated music composition and generation system of the present invention during the automated music composition process supported thereby. Several different methods will be described in detail below.
[0603] According to a first preferred method, described throughout the illustrative embodiments of the present invention, the following operations occur in an organized manner:
[0604] (i) the system user provides a set of emotion and style type musical experience descriptors (e.g. HAPPY and POP) and timing/spatial parameters (t=32 seconds) to the system input subsystem B0, which are then transported to the Parameter Transformation Engine Subsystem B51;
[0605] (ii) the Parameter Transformation Engine Subsystem B51 automatically generates only those sets of probability-based parameter tables corresponding to HAPPY emotion descriptors, and POP style descriptors, and organizes these music-theoretic parameters in their respective emotion/style-specific parameter tables (or other data suitable structures, such as lists, arrays, etc.); and
[0606] (iii) any one or more of the subsystems B1, B37 and B51 are used to transport the probability-based emotion/style-specific parameter tables from Subsystem B51, to their destination subsystems, where these emotion/style-specific parameter tables are loaded into the subsystem, for access and use at particular times/stages in the execution cycle of the automated music composition process of the present invention, according to the timing control process described in
[0607] Using this first method, there is no need for the emotion and style type musical experience parameters to be transported to each of numerous subsystems employing probabilistic-based parameter tables. The reason is because the subsystems are loaded with emotion/style-specific parameter tables containing music-theoretic parameter values seeking to implement the musical experience desired by the system user and characterized by the emotion-type and style-type musical experience descriptors selected by the system user and supplied to the system interface. So in this method, the system user's musical experience descriptors need not be transmitted past the Parameter Transformation Engine Subsystem B51, because the music-theoretic parameter tables generated from this subsystem B51 inherently contain the emotion and style type musical experience descriptors selected by the system user. There will be a need to transmit timing/spatial parameters from the system user to particular subsystems by way of the Timing Parameter Capture Subsystem B40, as illustrated throughout the drawings.
[0608] According to a second preferred method, the following operations will occur in an organized manner:
[0609] (iii) during system configuration and set-up, the Parameter Transformation Engine Subsystem B51 is used to automatically generate all possible (i.e. allowable) sets of probability-based parameter tables corresponding to all of the emotion descriptors and style descriptors available for selection by the system user at the GUI-based Input Output Subsystem B0, and then organizes these music-theoretic parameters in their respective emotion/style parameter tables (or other data suitable structures, such as lists, arrays, etc.);
[0610] (ii) during system configuration and set-up, subsystems B1, B37 and B51) are used to transport all sets of generalized probability-based parameter tables across the system data buses to their respective destination subsystems where they are loaded in memory;
[0611] (iii) during system operation and use, the system user provides a particular set of emotion and style type musical experience descriptors (e.g. HAPPY and POP) and timing/spatial parameters (t=32 seconds) to the system input subsystem B0, which are then are received by the Parameter Capture Subsystems B1, B37 and B40;
[0612] (iv) during system operation and use, the Parameter Capture subsystems B1, B37 and B40 transport these emotion descriptors and style descriptors (selected by the system user) to the various subsystems in the system; and
[0613] (v) during system operation and use, the emotion descriptors and style descriptors transmitted to the subsystems are then used by each subsystem to access specific parts of the generalized probabilistic-based parameter tables relating only to the selected emotion and style descriptors (e.g. HAPPY and POP) for access and use at particular times/stages in the execution cycle of the automated music composition process of the present invention, according to the timing control process described in
[0614] Using this second method, there is a need for the emotion and style type musical experience parameters to be transported to each of numerous subsystems employing probabilistic-based parameter tables. The reason is because the subsystems need to have information on which emotion/style-specific parameter tables containing music-theoretic parameter values, should be accessed and used during the automated music composition process within the subsystem. So in this second method, the system user's emotion and style musical experience descriptors must be transmitted through Parameter Capture Subsystems B1 and B37 to the various subsystems in the system, because the generalized music-theoretic parameter tables do not contain the emotion and style type musical experience descriptors selected by the system user. Also when using this second method, there will be a need to transmit timing/spatial parameters from the system user to particular subsystems by way of the Timing Parameter Capture Subsystem B40, as illustrated throughout the drawings.
[0615] While the above-described methods are preferred, it is understood that other methods can be used to practice the automated system and method for automatically composing and generating music in accordance with the spirit of the present invention.
Specification of the B-Level Subsystems Employed in the Automated Music Composition System of the Present Invention, and the Specific Information Processing Operations Supported by and Performed Within Each Subsystem During the Execution of the Automated Music Composition and Generation Process of the Present Invention
[0616] A more detail technical specification of each B-level subsystem employed in the system (S) and its Engine (E1) of the present invention, and the specific information processing operations and functions supported by each subsystem during each full cycle of the automated music composition and generation process hereof, will now be described with reference to the schematic illustrations set forth in
[0617] Notably, the description of the each subsystem and the operations performed during the automated music composition process will be given by considering an example of where the system generates a complete piece of music, on a note-by-note, chord-by-chord basis, using the automated virtual-instrument music synthesis method, in response to the system user providing the following system inputs: (i) emotion-type music descriptor=HAPPY; (ii) style-type descriptor=POP; and (iii) the timing parameter t=32 seconds.
[0618] As shown in the Drawings, the exemplary automated music composition and generation process begins at the Length Generation Subsystem B2 shown in
[0619] Also, while Subsystems B1, B37, B40 and B41 do not contribute to generation of musical events during the automated musical composition process, these subsystems perform essential functions involving the collection, management and distribution of emotion, style and timing/spatial parameters captured from system users, and then supplied to the Parameter Transformation Engine Subsystem B51 in a user-transparent manner, where these supplied sets of musical experience and timing/spatial parameters are automatically transformed and mapped into corresponding sets of music-theoretic system operating parameters organized in tables, or other suitable data/information structures that are distributed and loaded into their respective subsystems, under the control of the Subsystem Control Subsystem B60, illustrated in
Specification of the User GUI-Based Input Output Subsystem (B0)
[0620]
Specification of the Descriptor Parameter Capture Subsystem (B1)
[0621] FIGS. 27B1 and 27B2 show a schematic representation of the (Emotion-Type) Descriptor Parameter Capture Subsystem (B1) used in the Automated Music Composition and Generation Engine of the present invention. The Descriptor Parameter Capture Subsystem B1 serves as an input mechanism that allows the user to designate his or her preferred emotion, sentiment, and/or other descriptor for the music. It is an interactive subsystem of which the user has creative control, set within the boundaries of the subsystem.
[0622] In the illustrative example, the system user provides the exemplary emotion-type musical experience descriptorHAPPYto the descriptor parameter capture subsystem B1. These parameters are used by the parameter transformation engine B51 to generate probability-based parameter programming tables for subsequent distribution to the various subsystems therein, and also subsequent subsystem set up and use during the automated music composition and generation process of the present invention.
[0623] Once the parameters are inputted, the Parameter Transformation Engine Subsystem B51 generates the system operating parameter tables and then the subsystem 51 loads the relevant data tables, data sets, and other information into each of the other subsystems across the system. The emotion-type descriptor parameters can be inputted to subsystem B51 either manually or semi-automatically by a system user, or automatically by the subsystem itself. In processing the input parameters, the subsystem 51 may distill (i.e. parse and transform) the emotion descriptor parameters to any combination of descriptors as described in
[0624] Preferably, the number of distilled descriptors is between one and ten, but the number can and will vary from embodiment to embodiment, from application to application. If there are multiple distilled descriptors, and as necessary, the Parameter Transformation Engine Subsystem B51 can create new parameter data tables, data sets, and other information by combining previously existing data tables, data sets, and other information to accurately represent the inputted descriptor parameters. For example, the descriptor parameter happy might load parameter data sets related to a major key and an upbeat tempo. This transformation and mapping process will be described in greater detail with reference to the Parameter Transformation Engine Subsystem B51 described in greater detail hereinbelow.
[0625] In addition to performing the music-theoretic and information processing functions specified above, when necessary or helpful, System B1 can also assist the Parameter Transformation Engine System B51 in transporting probability-based music-theoretic system operating parameter (SOP) tables (or like data structures) to the various subsystems deployed throughout the automated music composition and generation system of the present invention.
Specification of the Style Parameter Capture Subsystem (B37)
[0626] FIGS. 27C1 and 27C2 show a schematic representation of the Style Parameter Capture Subsystem (B37) used in the Automated Music Composition and Generation Engine and System of the present invention. The Style Parameter Capture Subsystem B37 serves as an input mechanism that allows the user to designate his or her preferred style parameter(s) of the musical piece. It is an interactive subsystem of which the user has creative control, set within the boundaries of the subsystem. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both. Style, or the characteristic manner of presentation of musical elements (melody, rhythm, harmony, dynamics, form, etc.), is a fundamental building block of any musical piece. In the illustrative example of FIGS. 27C1 and 27C2, the probability-based parameter programming table employed in the subsystem is set up for the exemplary style-type musical experience descriptor=POP and used during the automated music composition and generation process of the present invention.
[0627] The style descriptor parameters can be inputted manually or semi-automatically or by a system user, or automatically by the subsystem itself. Once the parameters are inputted, the Parameter Transformation Engine Subsystem B51 receives the user's musical style inputs from B37 and generates the relevant probability tables across the rest of the system, typically by analyzing the sets of tables that do exist and referring to the currently provided style descriptors. If multiple descriptors are requested, the Parameter Transformation Engine Subsystem B51 generates system operating parameter (SOP) tables that reflect the combination of style descriptors provided, and then subsystem B37 loads these parameter tables into their respective subsystems.
[0628] In processing the input parameters, the Parameter Transformation Engine Subsystem B51 may distill the input parameters to any combination of styles as described in
[0629] In addition to performing the music-theoretic and information processing functions specified above, when necessary or helpful, Subsystem B37 can also assist the Parameter Transformation Engine System B51 in transporting probability-based music-theoretic system operating parameter (SOP) tables (or like data structures) to the various subsystems deployed throughout the automated music composition and generation system of the present invention.
Specification of the Timing Parameter Capture Subsystem (B40)
[0630]
[0631] In addition to performing the music-theoretic and information processing functions specified above, when necessary or helpful, Subsystem B40 can also assist the Parameter Transformation Engine System B51 in transporting probability-based music-theoretic system operating parameter (SOP) tables (or like data structures) to the various subsystems deployed throughout the automated music composition and generation system of the present invention.
Specification of the Parameter Transformation Engine (PTE) of the Present Invention (B51)
[0632] As illustrated in FIGS. 27B3A, 27B3B and 27B3C, the Parameter Transformation Engine Subsystem B51 is shown integrated with subsystems B1, B37 and B40 for handling emotion-type, style-type and timing-type parameters, respectively, supplied by the system user though subsystem B0. The Parameter Transformation Engine Subsystem B51 performs an essential function by accepting the system user input(s) descriptors and parameters from subsystems B1, B37 and B40, and transforming these parameters (e.g. input(s)) into the probability-based system operating parameter tables that the system will use during its operations to automatically compose and generate music using the virtual-instrument music synthesis technique disclosed herein. The programmed methods used by the parameter transformation engine subsystem (B51) to process any set of musical experience (e.g. emotion and style) descriptors and timing and/or spatial parameters, for use in creating a piece of unique music, will be described in great detail hereinafter with reference to FIGS. 27B3A through 27B3C, wherein the musical experience descriptors (e.g. emotion and style descriptors) and timing and spatial parameters that are selected from the available menus at the system user interface of input subsystem B0 are automatically transformed into corresponding sets of probabilistic-based system operating parameter (SOP) tables which are loaded into and used within respective subsystems in the system during the music composition and generation process.
[0633] As will be explained in greater detail below, this parameter transformation process supported within Subsystem B51 employs music theoretic concepts that are expressed and embodied within the probabilistic-based system operation parameter (SOP) tables maintained within the subsystems of the system, and controls the operation thereof during the execution of the time-sequential process controlled by the timing signals illustrated in timing control diagram set forth in
[0634] In addition to performing the music-theoretic and information processing functions specified above, the Parameter Transformation Engine System B51 is fully capable of transporting probability-based music-theoretic system operating parameter (SOP) tables (or like data structures) to the various subsystems deployed throughout the automated music composition and generation system of the present invention.
Specification of the Parameter Table Handling and Processing Subsystem (B70)
[0635] In general, there is a need with the system to manage multiple emotion-type and style-type musical experience descriptors selected by the system user, to produce corresponding sets of probability-based music-theoretic parameters for use within the subsystems of the system of the present invention. The primary function of the Parameter Table Handling and Processing Subsystem B70 is to address this need at either a global or local level, as described in detail below.
[0636] FIG. 27B5 shows the Parameter Table Handling and Processing Subsystem (B70) used in connection with the Automated Music Composition and Generation Engine of the present invention. The primary function of the Parameter Table Handling and Processing Subsystem (B70) is to determine if any system parameter table transformation(s) are required in order to produce system parameter tables in a form that is more convenient and easier to process and use within the subsystems of the system of the present invention. The Parameter Table Handling and Processing Subsystem (B70) performs its functions by (i) receiving multiple (i.e. one or more) emotion/style-specific music-theoretic system operating parameter (SOP) tables from the data output port of the Parameter Transformation Engine Subsystem B51, (ii) processing these parameter tables using one or parameter table processing methods M1, M2 or M3, described below, and (iii) generating system operating parameter tables in a form that is more convenient and easier to process and use within the subsystems of the system of the present invention.
[0637] In general, there are two different ways in which to practice this aspect of the present invention: (i) performing parameter table handing and transformation processing operations in a global manner, as shown with the Parameter Table Handling and Processing Subsystem B70 configured with the Parameter Transformation Engine Subsystem B51, as shown in
[0638] As shown in
[0639] As shown in FIG. 27B5, the Parameter Table Handling and Processing Subsystem B70 receives one or more emotion/style-indexed system operating parameter tables and determines whether or not system input (i.e. parameter table) transformation is required, or not required, as the case may be. In the event only a single emotion/style-indexed system parameter table is received, it is unlikely transformation will be required and therefore the system parameter table is typically transmitted to the data output port of the subsystem B70 in a pass-through manner. In the event that two or more emotion/style-indexed system parameter tables are received, then it is likely that these parameter tables will require or benefit from transformation processing, so the subsystem B70 supports three different methods M1, M2 and M3 for operating on the system parameter tables received at its data input ports, to transform these parameter tables into parameter table that are in a form that is more suitable for optimal use within the subsystems.
[0640] There are three case scenarios to consider and accompanying rules to use in situations where multiple emotion/style musical experience descriptors are provided to the input subsystem B0, and multiple emotion/style-indexed system parameter tables are automatically generated by the Parameter Transformation Engine Subsystem B51.
[0641] Considering the first case scenario, where Method M1 is employed, the subsystem B70 makes a determination among the multiple emotion/style-indexed system parameter tables, and decides to use only one of the emotion/style-indexed system parameter tables. In scenario Method 1, the subsystem B70 recognizes that, either in a specific instance or as an overall trend, that among the multiple parameter tables generated in response to multiple musical experience descriptors inputted into the subsystem B0, a single one of these descriptors-indexed parameter tables might be best utilized.
[0642] As an example, if HAPPY, EXHUBERANT, and POSITIVE were all inputted as emotion-type musical experience descriptors, then the system parameter table(s) generated for EXHUBERANT might likely provide the necessary musical framework to respond to all three inputs because EXUBERANT encompassed HAPPY and POSITIVE. Additionally, if CHRISTMAS, HOLIDAY, AND WINTER were all inputted as style-type musical experience descriptors, then the table(s) for CHRISTMAS might likely provide the necessary musical framework to respond to all three inputs.
[0643] Further, if EXCITING and NERVOUSNESS were both inputted as emotion-type musical experience descriptors and if the system user specified EXCITING: 9 out of 10, where 10 is maximum excitement and 0 is minimum excitement and NERVOUSNESS: 2 out of 10, where 10 is maximum NERVOUSNESS and 0 is minimum NERVOUSNESS (whereby the amount of each descriptor might be conveyed graphically by, but not limited to, moving a slider on a line or by entering in a percentage into a text field), then the system parameter table(s) for EXCITING might likely provide the necessary musical framework to respond to both inputs. In all three of these examples, the musical experience descriptor that is a subset and, thus, a more specific version of the additional descriptors, is selected as the musical experience descriptor whose table(s) might be used.
[0644] Considering the second case scenario, where Method M2 is employed, the subsystem B70 makes a determination among the multiple emotion/style-indexed system parameter tables, and decides to use a combination of the multiple emotion/style descriptor-indexed system parameter tables.
[0645] In scenario Method 2, the subsystem B70 recognizes that, either in a specific instance or as an overall trend, that among the multiple emotion/style descriptor indexed system parameter tables generated by subsystem B51 in response to multiple emotion/style descriptor inputted into the subsystem BO, a combination of some or all of these descriptor-indexed system parameter tables might best be utilized. According to Method M2, this combination of system parameter tables might be created by employing functions including, but not limited to, (weighted) average(s) and dominance of a specific descriptor's table(s) in a specific table only.
[0646] As an example, if HAPPY, EXUBERANT, AND POSITIVE were all inputted as emotional descriptors, the system parameter table(s) for all three descriptors might likely work well together to provide the necessary musical framework to respond to all three inputs by averaging the data in each subsystem table (with equal weighting). Additionally, IF CHRISTMAS, HOLIDAY, and WINTER were all inputted as style descriptors, the table(s) for all three might likely provide the necessary musical framework to respond to all three inputs by using the CHRISTMAS tables for the General Rhythm Generation Subsystem A1, the HOLIDAY tables for the General Pitch Generation Subsystem A2, and the a combination of the HOLIDAY and WINTER system parameter tables for the Controller Code and all other subsystems. Further, if EXCITING and NERVOUSNESS were both inputted as emotion-type musical experience descriptors and if the system user specified Exciting: 9 out of 10, where 10 is maximum excitement and 0 is minimum excitement and NERVOUSNESS: 2 out of 10, where 10 is maximum nervousness and 0 is minimum nervousness (whereby the amount of each descriptor might be conveyed graphically by, but not limited to, moving a slider on a line or by entering in a percentage into a text field), the weight in table(s) employing a weighted average might be influenced by the level of the user's specification. In all three of these examples, the descriptors are not categorized as solely a set(s) and subset(s), but also by their relationship within the overall emotional and/or style spectrum to each other.
[0647] Considering the third case scenario, where Method M3 is employed, the subsystem B70 makes a determination among the multiple emotion/style-indexed system parameter tables, and decides to use neither of multiple emotion/style descriptor-indexed system parameter tables. In scenario Method 3, the subsystem B70 recognizes that, either in a specific instance or as an overall trend, that among the multiple emotion/style-descriptor indexed system parameter tables generated by subsystem B51 in response to multiple emotion/style descriptor inputted into the subsystem BO, none of the emotion/style-indexed system parameter tables might best be utilized.
[0648] As an example, if HAPPY and SAD were both inputted as emotional descriptors, the system might determine that table(s) for a separate descriptor(s), such as BIPOLAR, might likely work well together to provide the necessary musical framework to respond to both inputs. Additionally, if ACOUSTIC, INDIE, and FOLK were all inputted as style descriptors, the system might determine that table(s) for separate descriptor(s), such as PIANO, GUITAR, VIOLIN, and BANJO, might likely work well together to provide the necessary musical framework, possibly following the avenues(s) described in Method 2 above, to respond to the inputs. Further, if EXCITING and NERVOUSNESS were both inputted as emotional descriptors and if the system user specified Exciting: 9 out of 10, where 10 is maximum excitement and 0 is minimum excitement and Nervousness: 8 out of 10, where 10 is maximum nervousness and 0 is minimum nervousness (whereby the amount of each descriptor might be conveyed graphically by, but not limited to, moving a slider on a line or by entering in a percentage into a text field), the system might determine that an appropriate description of these inputs is Panicked and, lacking a pre-existing set of system parameter tables for the descriptor PANICKED, might utilize (possibility similar) existing descriptors' system parameter tables to autonomously create a set of tables for the new descriptor, then using these new system parameter tables in the subsystem(s) process(es).
[0649] In all of these examples, the subsystem B70 recognizes that there are, or could be created, additional or alternative descriptor(s) whose corresponding system parameter tables might be used (together) to provide a framework that ultimately creates a musical piece that satisfies the intent(s) of the system user.
Specification of the Parameter Table Archive Database Subsystem (B80)
[0650] FIG. 27B6 shows the Parameter Table Archive Database Subsystem (B80) used in the Automated Music Composition and Generation System of the present invention. The primary function of this subsystem B80 is persistent storing and archiving user account profiles, tastes and preferences, as well as all emotion/style-indexed system operating parameter (SOP) tables generated for individual system users, and populations of system users, who have made music composition requests on the system, and have provided feedback on pieces of music composed by the system in response to emotion/style/timing parameters provided to the system.
[0651] As shown in FIG. 27B6, the Parameter Table Archive Database Subsystem B80, realized as a relational database management system (RBMS), non-relational database system or other database technology, stores data in table structures in the illustrative embodiment, according to database schemas, as illustrated in FIG. 27B6.
[0652] As shown, the output data port of the GUI-based Input Output Subsystem B0 is connected to the output data port of the Parameter Table Archive Database Subsystem B80 for receiving database requests from system users who use the system GUI interface. As shown, the output data ports of Subsystems B42 through B48 involved in feedback and learning operations, are operably connected to the data input port of the Parameter Table Archive Database Subsystem B80 for sending requests for archived parameter tables, accessing the database to modify database and parameter tables, and performing operations involved system feedback and learning operations. As shown, the data output port of the Parameter Table Archive Database Subsystem B80 is operably connected to the data input ports of the Systems B42 through B48 involved in feedback and learning operations. Also, as shown in
[0653] In general, while all parameter data sets, tables and like structures will be stored globally in the Parameter Table Archive Database Subsystem B80, it is understood that the system will also support local persistent data storage within subsystems, as required to support the specialized information processing operations performed therein in a high-speed and reliable manner during automated music composition and generation processes on the system of the present invention.
Specification of the Timing Generation Subsystem (B41)
[0654] FIGS. 27E1 and 27E2 shows the Timing Generation Subsystem (B41) used in the Automated Music Composition and Generation Engine of the present invention. In general, the Timing Generation Subsystem B41 determines the timing parameters for the musical piece. This information is based on either user inputs (if given), compute-determined value(s), or a combination of both. Timing parameters, including, but not limited to, or designations for the musical piece to start, stop, modulate, accent, change volume, change form, change melody, change chords, change instrumentation, change orchestration, change meter, change tempo, and/or change descriptor parameters, are a fundamental building block of any musical piece.
[0655] The Timing Parameter Capture Subsystem B40 can be viewed as creating a timing map for the piece of music being created, including, but not limited to, the piece's descriptor(s), style(s), descriptor changes, style changes, instrument changes, general timing information (start, pause, hit point, stop), meter (changes), tempo (changes), key (changes), tonality (changes) controller code information, and audio mix. This map can be created entirely by a user, entirely by the Subsystem, or in collaboration between the user and the subsystem.
[0656] More particularly, the Timing Parameter Capture Subsystem (B40) provides timing parameters (e.g. piece length) to the Timing Generation Subsystem (B41) for generating timing information relating to (i) the length of the piece to be composed, (ii) start of the music piece, (iii) the stop of the music piece, (iv) increases in volume of the music piece, and (v) any accents in the music piece that are to be created during the automated music composition and generation process of the present invention.
[0657] For example, a system user might request that a musical piece begin at a certain point, modulate a few seconds later, change tempo even later, pause, resume, and then end with a large accent. This information is transmitted to the rest of the system's subsystems to allow for accurate and successful implementation of the user requests. There might also be a combination of user and system inputs that allow the piece to be created as successfully as possible, including the scenario when a user might elect a start point for the music, but fail to input to stop point. Without any user input, the system would create a logical and musical stop point. Thirdly, without any user input, the system might create an entire set of timing parameters in an attempt to accurately deliver what it believes the user desires.
Specification of the Length Generation Subsystem (B2)
[0658]
[0659] In the illustrative embodiment, the Length Generation Subsystem B2 obtains the timing map information from subsystem B41 and determines the length of the musical piece. By default, if the musical piece is being created to accompany any previously existing content, then the length of the musical piece will equal the length of the previously existing content. If a user wants to manually input the desired length, then the user can either insert the desired lengths in any time format, such as [hours: minutes: seconds] format, or can visually input the desired length by placing digital milestones, including, but not limited to, music start and music stop on a graphically displayed timeline. This process may be replicated or autonomously completed by the subsystem itself. For example, a user using the system interface of the system, may select a point along the graphically displayed timeline to request (i) the music start, and (ii) that the music last for thirty seconds, and then request (through the system interface) the subsystem to automatically create the music stop milestone at the appropriate time.
[0660] As shown in
Specification of the Tempo Generation Subsystem (B3)
[0661]
[0662] As shown in
[0663] The Parameter Transformation Engine Subsystem B51 generates probability-weighted tempo parameter tables for the various musical experience descriptors selected by the system user and provided to the Input Subsystem B0. In
[0664] As illustrated in
[0665] Taking into consideration the output of the Length Generation Subsystem B2, the Tempo Generation Subsystem creates the tempo(s) of the piece. For example, a piece with an input emotion-type descriptor Happy, and a length of thirty seconds, might have a one third probability of using a tempo of sixty beats per minute, a one third probability of using a tempo of eighty beats per minute, and a one third probability of using a tempo of one hundred beats per minute. If there are multiple sections and or starts and stops in the music, then music timing parameters, and/or multiple tempos might be selected, as well as the tempo curve that adjusts the tempo between sections. This curve can last a significant amount of time (for example, many measures) or can last no time at all (for example, an instant change of tempo).
[0666] As shown in
[0667] The Parameter Transformation Engine Subsystem B51 generates probability-weighted tempo parameter tables for the various musical experience descriptors selected by the system user using the input subsystem B0. In
Specification of the Meter Generation Subsystem (B4)
[0668]
[0669] As shown in
[0670] The Parameter Transformation Engine Subsystem B51 generates probability-weighted parameter tables for the various musical experience descriptors selected by the system user using the input subsystem B0. In
Specification of the Key Generation Subsystem (B5)
[0671]
[0672] As shown in
[0673] The Parameter Transformation Engine Subsystem B51 generates probability-weighted key parameter tables for the various musical experience descriptors selected, from the input subsystem B0. In
Specification of the Beat Calculator Subsystem (B6)
[0674]
[0675] As shown in
Specification of the Measure Calculator Subsystem (B8)
[0676]
[0677] As shown in
Specification of the Tonality Generation Subsystem (B7)
[0678]
[0679] As shown in
[0680] Each parameter table contains probabilities that sum to 1. Each specific probability contains a specific section of the 0-1 domain. If the random number is within the specific section of a probability, then it is selected. For example, if two parameters, A and B, each have a 50% chance of being selected, then if the random number falls between 0-0.5, it will select A, and if it falls between 0.5-1, it will select B.
[0681] The number of tonality of the piece is selected using the probability-based tonality parameter table setup within the subsystem B7. The Parameter Transformation Engine Subsystem B51 generates probability-weighted tonality parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In
[0682] Taking into consideration all system user inputs provided to subsystem B0, this system B7 creates the tonality(s) of the piece. For example, a piece with an input descriptor of Happy, a length of thirty seconds, a tempo of sixty beats per minute, a meter of 4/4, and a key of C might have a two thirds probability of using a major tonality or a one third probability of using a minor tonality. If there are multiple sections, music timing parameters, and/or starts and stops in the music, then multiple tonalities might be selected. The output of the Tonality Generation Subsystem B7 is the selected tonality of the piece of music being composed. In the example, a Major scale tonality is selected in
Specification of the Song Form Generation Subsystem (B9)
[0683] FIGS. 27M1 and 27M2 show the Song Form Generation Subsystem (B9) used in the Automated Music Composition and Generation Engine of the present invention. Form, or the structure of a musical piece, is a fundamental building block of any musical piece. The Song Form Generation Subsystem determines the song form of a musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both.
[0684] As shown in FIGS. 27M1 and 27M2, this subsystem is supported by the song form parameter tables and song form sub-phrase tables illustrated in
[0685] In general, the song form is selected using the probability-based song form sub-phrase parameter table set up within the subsystem B9. The Parameter Transformation Engine Subsystem B51 generates a probability-weighted song form parameters for the various musical experience descriptors selected by the system user and provided to the Input Subsystem B0. In FIGS. 27M1 and 27M2, probability-based parameter tables employed in the subsystem B9 are set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process so as to generate a part of the piece of music being composed, as illustrated in the musical score representation illustrated at the bottom of the figure drawing.
[0686] Taking into consideration all system user inputs provided to subsystem B0, the subsystem B9 creates the song form of the piece. For example, a piece with an input descriptor of Happy, a length of thirty seconds, a tempo of sixty beats per minute, and a meter of 4/4 might have a one third probability of a form of ABA (or alternatively described as Verse Chorus Verse), a one third probability of a form of AAB (or alternatively described as Verse Verse Chorus), or a one third probability of a form of AAA (or alternatively described as Verse Verse Verse). Further each section of the song form may have multiple sub-sections, so that the initial section, A, may be comprised of subsections aba (following the same possible probabilities and descriptions described previously). Even further, each sub-section may be have multiple motifs, so that the subsection a may be comprised of motifs i, ii, iii (following the same possible probabilities and descriptions described previously).
[0687] All music has a form, even if the form is empty, unorganized, or absent. Pop music traditionally has form elements including Intro, Verse, Chorus, Bridge, Solo, Outro, etc. Each form element can be represented with a letter to help communicate the overall piece's form in a concise manner, so that a song with form Verse Chorus Verse can also be represented as A B A. Song form phrases can also have sub-phrases that provide structure to a song within the phrase itself. If a verse, or A section, consists of two repeated stanzas, then the sub-phrases might be aa.
[0688] As shown in FIGS. 27M1 and 27M2, the Song Form Generation Subsystem B9 receives and loads as input, song form tables from subsystem B51. While the song form is selected from the song form table using the random number generator, although it is understood that other lyrical-input based mechanisms might be used in other system embodiments as shown in
Specification of the Sub-Phrase Length Generation Subsystem (B15)
[0689]
[0690] As shown in
[0691] The Parameter Transformation Engine Subsystem B51 generates a probability-weighted set of sub-phrase length parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In
[0692] The Sub-Phrase Length Generation Subsystem (B15) determines the length of the sub-phrases (i.e. rhythmic length) within each phrase of a piece of music being composed. These lengths are determined by (i) the overall length of the phrase (i.e. a phrase of 2 seconds will have many fewer sub-phrase options that a phrase of 200 seconds), (ii) the timing necessities of the piece, and (iii) the emotion-type and style-type musical experience descriptors.
[0693] Taking into consideration all system user inputs provided to the subsystem B0, this system B15 creates the sub-phrase lengths of the piece. For example, a 30 second piece of music might have four sub-subsections of 7.5 seconds each, three sub-sections of 10 seconds, or five subsections of 4, 5, 6, 7, and 8 seconds.
[0694] For example, as shown in the Sub-Phrase Length Generation Subsystem (B15), the sub-phrase length tables are loaded, and for each sub-phrase in the selected song form, the subsystem B15, in parallel manner, selects length measures for each sub-phrase and then creates a sub-phrase length (i.e. rhythmic length) table as output from the subsystem, as illustrated in the musical score representation set forth at the bottom of
Specification of the Chord Length Generation Subsystem (B11)
[0695] FIGS. 27O1, 27O2, 27O3 and 27O4 show the Chord Length Generation Subsystem (B11) used in the Automated Music Composition and Generation Engine and System of the present invention. Rhythm, or the subdivision of a space of time into a defined, repeatable pattern or the controlled movement of music in time, is a fundamental building block of any musical piece. The Chord Length Generation Subsystem B11 determines rhythm (i.e. default chord length(s)) of each chord in the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both.
[0696] As shown in FIGS. 27O1 through 27O4, the Chord Length Generation Subsystem B11 is supported by the chord length parameter tables illustrated in
[0697] In general, the chord length is selected using the probability-based chord length parameter table set up within the subsystem based on the musical experience descriptors provided to the system by the system user. The selected chord length is used during the automated music composition and generation process of the present invention so as to generate a part of the piece of music being composed, as illustrated in the musical score representation illustrated at the bottom of FIG. 27O4.
[0698] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of chord length parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In FIGS. 27O1 through 27O4, probability-based parameter tables employed in the subsystem B11 are set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process so as to generate a part of the piece of music being composed, as illustrated in the musical score representation illustrated at the bottom of the figure drawing.
[0699] The subsystem B11 uses system-user-supplied musical experience descriptors and timing parameters, and the parameter tables loaded to subsystem B11, to create the chord lengths throughout the piece (usually, though not necessarily, in terms of beats and measures). For example, a chord in a 4/4 measure might last for two beats, and based on this information the next chord might last for 1 beat, and based on this information the final chord in the measure might last for 1 beat. The first chord might also last for one beat, and based on this information the next chord might last for 3 beats.
[0700] As shown in FIGS. 27O1 through 27O4, the chord length tables shown in
Specification of the Unique Sub-Phrase Generation Subsystem (B14)
[0701]
[0702] As shown in
[0703] As shown in
Specification of the Number of Chords in Sub-Phrase Calculation Subsystem (B16)
[0704]
[0705] As shown in
Specification of the Phrase Length Generation Subsystem (B12)
[0706]
[0707] As shown in
[0708] Taking into consideration inputs received from subsystem B1, B31 and/or B40, the subsystem B12 creates the phrase lengths of the piece of music being automatically composed. For example, a one-minute second piece of music might have two phrases of thirty seconds or three phrases of twenty seconds. The lengths of the sub-sections previously created are used to inform the lengths of each phrase, as a combination of one or more sub-sections creates the length of the phrase. The output phrase lengths are graphically illustrated in the music score representation shown in
Specification of the Unique Phrase Generation Subsystem (B10)
[0709]
[0710] As shown in
[0711] Within the Unique Phrase Generation Subsystem (B10), the Phrase Analyzer analyzes the data supplied from subsystem B12 so as to generate a listing of the number of unique phrases or sections in the piece to be composed. If a one-minute piece of music has four 15 second phrases, then there might be four unique phrases that each occur once, three unique phrases (two of which occur once each and one of which occurs twice), two unique phrases that occur twice each, or one unique phrase that occurs four times, and this data will be produced as output from Subsystem B10.
Specification of the Number of Chords in Phrase Calculation Subsystem (B13)
[0712]
[0713] As shown in
Specification of the Initial General Rhythm Generation Subsystem (B17)
[0714]
[0715] As shown in
[0716] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted data set of root notes and chord function (i.e. parameter tables) for the various musical experience descriptors selected by the system user and supplied to the input subsystem B0. In
[0717] Subsystem B17 uses parameter tables generated and loaded by subsystem B51 so as to select the initial chord of the piece. For example, in a Happy piece of music in C major, there might be a one third probability that the initial chord is a C major triad, a one third probability that the initial chord is a G major triad, and a one third probability that the initial chord is an F major triad.
[0718] As shown in
Specification of the Sub-Phrase Chord Progression Generation Subsystem (B19)
[0719] FIGS. 27V1, 27V2 and 27V3 show the Sub-Phrase Chord Progression Generation Subsystem (B19) used in the Automated Music Composition and Generation Engine of the present invention. Chord, or the sounding of two or more notes (usually at least three) simultaneously, is a fundamental building block of any musical piece. The Sub-Phrase Chord Progression Generation Subsystem B19 determines what the chord progression will be for each sub-phrase of the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both.
[0720] As shown in 27V1, 27V2 and 27V3, the Sub-Phrase Chord Progression Generation Subsystem B19 is supported by the chord root tables, chord function root modifier tables, the chord root modifier tables, the current function tables, and the beat root modifier table tables shown in FIGS. 28J1 and 28J2, a Beat Analyzer, and a parameter selection mechanism (e.g. random number generator, or lyrical-input based parameter selector). The primary function of the Beat Analyzer is to determine the position in time of a current or future musical event(s). The beat analyze uses the tempo, meter, and form of a piece, section, phrase, or other structure to determine its output.
[0721] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of sub-phrase chord progression parameter tables for the various musical experience descriptors selected by the system user and supplied to the input subsystem B0. The probability-based parameter tables (i.e. chord root table, chord function root modifier table, and beat root modifier table) employed in the subsystem is set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process of the present invention.
[0722] As shown in FIGS. 27V1 and 27V2, the Subsystem B19 accessed the chord root tables generated and loaded by subsystem B51, and uses a random number generator or suitable parameter selection mechanism to select the initial chord of the piece. For example, in a Happy piece of music in C major, with an initial sub-phrase chord of C major, there might be a one third probability that the next chord is a C major triad, a one third probability that the next chord is a G major triad, and a one third probability that the next chord is an F major triad. This model takes into account every possible preceding outcome, and all possible future outcomes, to determine the probabilities of each chord being selected. This process repeats from the beginning of each sub-phrase to the end of each sub-phrase.
[0723] As indicated in FIGS. 27V2 and 27V3, the subsystem B19 accesses the chord function modifier table loaded into the subsystem, and adds or subtracts values to the original root note column values in the chord root table.
[0724] Then as indicated in FIGS. 27V2 and 27V3, the subsystem B19 accesses the beat root modifier table loaded into the subsystem B19, as shown, and uses the Beat Analyzer to determine the position in time of a current or future musical event(s), by considering the tempo, meter, and form of a piece, section, phrase, or other structure, and then selects a beat root modifier. In the case example, the upcoming beat in the measure equals 2.
[0725] The subsystem B19 then adds the beat root modifier table values to or subtracted from the original root note column values in the chord root table.
[0726] As shown in FIG. 27V3, using a random number generator, or other parameter selection mechanism, the subsystem B19 selects the next chord root.
[0727] Beginning with the chord function root modifier table, the process described above is repeated until all chords have been selected.
[0728] As shown in FIG. 27V3, the chords which have been automatically selected by the Sub-Phrase Chord Progression Generation Subsystem B19 are graphically shown on the musical score representation for the piece of music being composed.
Specification of the Phrase Chord Progression Generation Subsystem (B18)
[0729]
[0730] As shown in
[0731] During operation, Phrase Chord Progression Generation Subsystem B18 receives the output from Initial Chord Generation Subsystem B17 and modifies, changes, adds, and deletes chords from each sub-phrase to generate the chords of each phrase. For example, if a phrase consists of two sub-phrases that each contain an identical chord progression, there might be a one half probability that the first chord in the second sub-phrase is altered to create a more musical chord progression (following a data set or parameter table created and loaded by subsystem B51) for the phrase and a one half probability that the sub-phrase chord progressions remain unchanged.
Specification of the Chord Inversion Generation Subsystem (B20)
[0732] FIGS. 27X1, 27X2 and 27X3 show the Chord Inversion Generation Subsystem (B20) used in the Automated Music Composition and Generation Engine of the present invention. The Chord Inversion Generation Subsystem B20 determines the inversion of each chord in the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both. Inversion, or the position of notes a chord, is a fundamental building block of any musical piece. Chord inversion is determined using the initial chord inversion table and the chord inversion table.
[0733] As shown in FIGS. 27X1 and 27X2, this Subsystem B20 is supported by the initial chord inversion table and the chord inversion table shown in
[0734] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of chord inversion parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In FIGS. 27X1 through 27X3, the probability-based parameter tables (i.e. initial chord inversion table, and chord inversion table) employed in the subsystem are set up for the exemplary emotion-type musical experience descriptorHAPPY.
[0735] As shown in FIGS. 27X1 and 27X2, the Subsystem B20 receives, as input, the output from the Subsystem B19, and accesses the initial chord inversion tables and chord inversion tables shown in
[0736] For example, if a C Major triad is in root position (C, E, G) and the next chord is a G Major triad, there might be a one third probability that the G Major triad is in root position, a one third probability that the G Major triad is in the first inversion (E, G, C), or a one third probability that the G Major triad is in the second inversion (G, C, E).
[0737] As shown in FIG. 27X3, after the inversion of an initial chord has been determined, the chord inversion selection process is repeated until all chord inversions have been selected. All previous inversion determinations affect all future ones. An upcoming chord inversion in the piece of music, phrase, sub-phrase, and measure affects the default landscape of what chord inversions might be selected in the future.
[0738] As shown in FIG. 27X3, the final list of inverted chords are shown graphically displayed in the musical score representation located at the bottom of FIG. 27X3.
Specification of the Melody Sub-Phrase Length Generation Subsystem (B25)
[0739]
[0740] As shown in
[0741] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted data set of sub-phrase lengths (i.e. parameter tables) for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In
[0742] During operation, subsystem B25 uses, as inputs, all previous unique sub-phrase length outputs, in combination with the melody length parameter tables loaded by subsystem B51 to determine the length of each sub-phrase melody.
[0743] As indicated in
[0744] As shown in the case example, the output of subsystem B25 is a set of melody length assignments to the musical being composed, namely: the a sub-phrase is assigned a d length equal to 6/4; the b sub-phrase is assigned an e length equal to 7/4; and the c sub-phrase is assigned an f length equal to 6/4.
Specification of the Melody Sub-Phrase Generation Subsystem (B24)
[0745] FIGS. 27Z1 and 27Z2 show the Melody Sub-Phrase Generation Subsystem (B24) used in the Automated Music Composition and Generation Engine of the present invention. Melody, or a succession of tones comprised of mode, rhythm, and pitches so arranged as to achieve musical shape, is a fundamental building block of any musical piece. The Melody Sub-Phrase Generation Subsystem determines how many melodic sub-phrases are in the melody in the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both.
[0746] As shown in FIGS. 27Z1 and 27Z2, the Melody Sub-Phrase Generation Subsystem B24 is supported by the sub-phrase melody placement tables shown in FIG. 28L2, and parameter selection mechanisms (e.g. random number generator, or lyrical-input based parameter selector) described hereinabove.
[0747] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of melodic sub-phrase length parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In FIG. 27Z1, the probability-based parameter tables employed in the subsystem B24 are set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process of the present invention.
[0748] As shown in FIGS. 27Z1 and 27Z2, for each sub-phrase melody d, e and f, the Melody Sub-Phrase Generation Subsystem B24 accesses the sub-phrase melody placement table, and selects a sub-phrase melody placement using a random number generator, or other parameter selection mechanism, discussed hereinabove.
[0749] As shown in the case example, the subsystem B24 might select a table parameter having one half probability that, in a piece 30 seconds in length with 2 phrases consisting of three 5 second sub-phrases each, each of which could contain a melody of a certain length as determined in B25. This is instance, there is a one half probability that all three sub-phrases' melodic lengths might be included in the first phrase's melodic length and a one half probability that only one of the three sub-phrases' total melodic lengths might be included in the first phrase's total melodic length.
[0750] As shown in FIGS. 27Z1 and 27Z2, the subsystem B24 make selections from the parameter tables such that the sub-phrase melody length d shall start 3 quarter notes into the sub-phrase, that that the sub-phrase melody length e shall start 2 quarter notes into the sub-phrase, and that the sub-phrase melody length f shall start 3 quarter notes into the sub-phrase. These starting positions for the sub-phrases are the outputs of the Melody Sub-Phrase Generation Subsystem B24, and are illustrated in the first stave in the musical score representation set forth on the bottom of FIG. 27Z2 for the piece of music being composed by the automated music composition process of the present invention.
Specification of the Melody Phrase Length Generation Subsystem (B23)
[0751]
[0752] As illustrated in
[0753] As shown in
[0754] As shown in
[0755] The resulting melody phrase lengths are then used during the automated music composition and generation process to generate the piece of music being composed, as illustrated in the first stave of the musical score representation illustrated at the bottom of the process diagram in
Specification of the Melody Unique Phrase Generation Subsystem (B22)
[0756]
[0757] As shown in
[0758] The unique melody phrase analyzer compares all of the melodic and other musical events of a piece, section, phrase, or other structure of a music piece to determine unique melody phrases for its data output.
[0759] As shown in
[0760] As shown in
[0761] The resulting unique melody phrases are then used during the subsequent stages of the automated music composition and generation process of the present invention.
Specification of the Melody Length Generation Subsystem (B21)
[0762]
[0763] As shown in
[0764] As shown in
[0765] The resulting phrase melody is then used during the automated music composition and generation process to generate a larger part of the piece of music being composed, as illustrated in the first stave of the musical score representation illustrated at the bottom of the process diagram in
Specification of the Melody Note Rhythm Generation Subsystem (B26)
[0766] FIGS. 27DD1, 27DD2 and 27DD3 show the Melody Note Rhythm Generation Subsystem (B26) used in the Automated Music Composition and Generation Engine of the present invention. Rhythm, or the subdivision of a space of time into a defined, repeatable pattern or the controlled movement of music in time, is a fundamental building block of any musical piece. The Melody Note Rhythm Generation Subsystem determines what the default melody note rhythm(s) will be for the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both.
[0767] As shown in FIGS. 27DD1, 27DD2 and 27DD3. Melody Note Rhythm Generation Subsystem B26 is supported by the initial note length parameter tables, and the initial and second chord length parameter tables shown in
[0768] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. As shown in FIGS. 27DD1, 27DD2 and 27DD3, the probability-based parameter programming tables employed in the subsystem are set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process of the present invention.
[0769] As shown in FIGS. 27DD1 through 27DD3, Subsystem B26 uses parameter tables loaded by subsystem B51, B40 and B41 to select the initial rhythm for the melody and to create the entire rhythmic material for the melody (or melodies) in the piece. For example, in a melody that is one measure long in a 4/4 meter, there might be a one third probability that the initial rhythm might last for two beats, and based on this information the next chord might last for 1 beat, and based on this information the final chord in the measure might last for 1 beat. The first chord might also last for one beat, and based on this information the next chord might last for 3 beats. This process continues until the entire melodic material for the piece has been rhythmically created and is awaiting the pitch material to be assigned to each rhythm.
[0770] Notably, the rhythm of each melody note is dependent upon the rhythms of all previous melody notes; the rhythms of the other melody notes in the same measure, phrase, and sub-phrase; and the melody rhythms of the melody notes that might occur in the future. Each preceding melody notes rhythm determination factors into the decision for a certain melody note's rhythm, so that the second melody note's rhythm is influenced by the first melody note's rhythm, the third melody note's rhythm is influenced by the first and second melody notes' rhythms, and so on.
[0771] As shown in FIGS. 27DD1 through 27DD3, the subsystem B26 manages a multi-stage process that (i) selects the initial rhythm for the melody, and (ii) creates the entire rhythmic material for the melody (or melodies) in the piece being composed by the automated music composition machine.
[0772] As shown in FIGS. 27DD1 and 27DD2, this process involves selecting the initial note length (i.e. note rhythm) by employing a random number generator and mapping its result to the related probability table. During the first stage, the subsystem B26 uses the random number generator (as described hereinabove), or other parameter selection mechanism discussed hereinabove, to select an initial note length of melody phrase d from the initial note length table that has been loaded into the subsystem. Then, as shown in FIGS. 27DD2 and 27DD3, using the subsystem B26 selects a second note length and then the third chord note length for melody phrase d, using the same methods and the initial and second chord length parameter tables. The process continues until the melody phrase length d is filled with quarter notes. This process is described in greater detail below.
[0773] As shown in FIG. 27DD2, the second note length is selected by first selecting the column of the table that matches with the result of the initial note length process and then employing a random number generator and mapping its result to the related probability table. During the second stage, the subsystem B26 starts putting notes into the melody sub-phrase de until the melody starts, and the process continues until the melody phrase de is filled with notes.
[0774] As shown in FIG. 27DD3, the third note length is selected by first selecting the column of the table that matches with the results of the initial and second note length processes and then employing a random number generator and mapping its result to the related probability table. Once the melody phrase de is filled with notes, the subsystem B26 starts filling notes into the melody phrase e, during the final stage, and the process continues until the melody phrase e is filled with notes.
[0775] As shown in FIGS. 27DD1 through 27DD3, the subsystem B26 then selects piece melody rhythms from the filled phrase lengths, d, de and e. The resulting piece melody rhythms are then ready for use during the automated music composition and generation process of the present invention, and are illustrated in the first stave of the musical score representation illustrated at the bottom of FIG. 27DD3.
Specification of the Initial Pitch Generation Subsystem (B27)
[0776]
[0777] As shown in
[0778] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted data set of initial pitches (i.e. parameter tables) for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In
[0779] In general, the Initial Pitch Generation Subsystem B27 uses the data outputs from other subsystems B26 as well as parameter tables loaded by subsystem B51 to select the initial pitch for the melody (or melodies) in the piece. For example, in a Happy piece of music in C major, there might be a one third probability that the initial pitch is a C, a one third probability that the initial pitch is a G, and a one third probability that the initial pitch is an F.
[0780] As indicated in
[0781] As shown in
Specification of the Sub-Phrase Pitch Generation Subsystem (B29)
[0782] FIGS. 27FF1, 27FF2 and 27FF3 show a schematic representation of the Sub-Phrase Pitch Generation Subsystem (B29) used in the Automated Music Composition and Generation Engine of the present invention. The Sub-Phrase Pitch Generation Subsystem B29 determines the sub-phrase pitches of the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both. Pitch, or specific quality of a sound that makes it a recognizable tone, is a fundamental building block of any musical piece.
[0783] As shown in FIGS. 27FF1, 27FF2 and 27FF3, the Sub-Phrase Pitch Generation Subsystem (B29) is supported by the melody note table, chord modifier table, the leap reversal modifier table, and the leap incentive modifier tables shown in FIGS. 28O1, 28O2 and 28O3, and parameter selection mechanisms (e.g. random number generator, or lyrical-input based parameter selector) as discussed in detail hereinabove.
[0784] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted data set of parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. As shown in FIG. 27FF1, the probability-based parameter programming tables employed in the subsystem B29 are set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process of the present invention.
[0785] This subsystem B29 uses previous subsystems as well as parameter tables loaded by subsystem B51 to create the pitch material for the melody (or melodies) in the sub-phrases of the piece.
[0786] For example, in a melody that is one measure long in a 4/4 meter with an initial pitch of C (for 1 beat), there might be a one third probability that the next pitch might be a C (for 1 beat), and based on this information the next pitch be a D (for 1 beat), and based on this information the final pitch in the measure might be an E (for 1 beat). Each pitch of a sub-phrase is dependent upon the pitches of all previous notes; the pitches of the other notes in the same measure, phrase, and sub-phrase; and the pitches of the notes that might occur in the future. Each preceding pitch determination factors into the decision for a certain note's pitch, so that the second note's pitch is influenced by the first note's pitch, the third note's pitch is influenced by the first and second notes' pitches, and so on. Additionally, the chord underlying the pitch being selected affects the landscape of possible pitch options. For example, during the time that a C Major chord occurs, consisting of notes C E G, the note pitch would be more likely to select a note from this chord than during the time that a different chord occurs. Also, the notes' pitches are encourage to change direction, from either ascending or descending paths, and leap from one note to another, rather than continuing in a step-wise manner. Subsystem B29 operates to perform such advanced pitch material generation functions.
[0787] As shown in FIGS. 27FF1, 27FF2 and 27FF3, the subsystem 29 uses a random number generator or other suitable parameter selection mechanisms, as discussed hereinabove, to select a note (i.e. pitch event) from the melody note parameter table, in each sub-phrase to generate sub-phrase melodies for the musical piece being composed.
[0788] As shown in
[0789] As shown in FIGS. 27FF2 and 27FF3, the subsystem B29 uses the leap reversal modifier table to change the probabilities in the melody note table based on the distance (measured in half steps) between the previous note(s).
[0790] As shown in FIGS. 27FF2 and 27FF3, the subsystem B29 uses the leap incentive modifier table to change the probabilities in the melody note table based on the distance (measured in half steps) between the previous note(s) and the timeframe over which these distances occurred.
[0791] The resulting sub-phrase pitches (i.e. notes) for the musical piece are used during the automated music composition and generation process to generate a part of the piece of music being composed, as illustrated in the first stave of the musical score representation illustrated at the bottom of the process diagram set forth in FIG. 27FF3.
Specification of the Phrase Pitch Generation Subsystem (B28)
[0792]
[0793] As shown in
[0794] The primary function of the sub-phrase melody analyzer is to determine a modified sub-phrase structure(s) in order to change an important component of a musical piece. The sub-phrase melody analyzer considers the melodic, harmonic, and time-based structure(s) of a musical piece, section, phrase, or additional segment(s) to determine its output.
[0795] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of melodic note rhythm parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. As shown in
[0796] The Phrase Pitch Generation Subsystem B28 transforms the output of B29 to the larger phrase-level pitch material using the Sub-Phrase Melody Analyzer. The primary function of the sub-phrase melody analyzer is to determine the functionality and possible derivations of a melody(s) or other melodic material. The Melody Sub-Phrase Analyzer uses the tempo, meter, form, chord(s), harmony(s), melody(s), and structure of a piece, section, phrase, or other length of a music piece to determine its output.
[0797] Using the inputs all previous phrase and sub-phrase outputs, in combination with data sets and parameter tables loaded by subsystem B51, this subsystem B28 might create a one half probability that, in a melody comprised of two identical sub-phrases, notes in the second occurrence of the sub-phrase melody might be changed to create a more musical phrase-level melody. The sub-phase melodies are modified by examining the rhythmic, harmonic, and overall musical context in which they exist, and altering or adjusting them to better fit their context.
[0798] This process continues until the pitch information (i.e. notes) for the entire melodic material has been created. The determined phrase pitch is used during the automated music composition and generation process of the present invention, so as to generate a part of the piece of music being composed, as illustrated in musical score representation set forth in the process diagram of
[0799] The resulting phrase pitches for the musical piece are used during the automated music composition and generation process of the present invention so as to generate a part of the piece of music being composed, as illustrated in the first stave of the musical score representation illustrated at the bottom of the process diagram set forth in
Specification of the Pitch Octave Generation Subsystem (B30)
[0800] FIGS. 27HH1 and 27HH2 show a schematic representation of the Pitch Octave Generation Subsystem (B30) used in the Automated Music Composition and Generation Engine of the present invention. Frequency, or the number of vibrations per second of a musical pitch, usually measured in Hertz (Hz), is a fundamental building block of any musical piece. The Pitch Octave Generation Subsystem B30 determines the octave, and hence the specific frequency of the pitch, of each note and/or chord in the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both.
[0801] As shown in FIGS. 27HH1 and 27HH2, the Pitch Octave Generation Subsystem B30 is supported by the melody note octave table shown in
[0802] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of melody note octave parameter tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In FIGS. 27HH1 and 27HH2, the probability-based parameter tables employed in the subsystem is set up for the exemplary emotion-type musical experience descriptorHAPPYand used during the automated music composition and generation process of the present invention.
[0803] As shown in FIGS. 27HH1 and 27HH2, the melody note octave table is used in connection with the loaded set of notes to determines the frequency of each note based on its relationship to the other melodic notes and/or harmonic structures in a musical piece. In general, there can be anywhere from 0 to just-short-of infinite number of melody notes in a piece. The system automatically determines this number each music composition and generation cycle.
[0804] For example, for a note C, there might be a one third probability that the C is equivalent to the fourth C on a piano keyboard, a one third probability that the C is equivalent to the fifth C on a piano keyboard, or a one third probability that the C is equivalent to the fifth C on a piano keyboard.
[0805] The resulting frequencies of the pitches of notes and chords in the musical piece are used during the automated music composition and generation process of the present invention so as to generate a part of the piece of music being composed, as illustrated in the first stave of the musical score representation illustrated at the bottom of the process diagram set forth in FIG. 27HH2.
Specification of the Instrumentation Subsystem (B38)
[0806] FIGS. 27II1 and 27II2 show the Instrumentation Subsystem (B38) used in the Automated Music Composition and Generation Engine of the present invention. The Instrumentation Subsystem B38 determines the instruments and other musical sounds and/or devices that may be utilized in the musical piece. This information is based on either user inputs (if given), compute-determined value(s), or a combination of both, and is a fundamental building block of any musical piece.
[0807] As shown in FIGS. 27II1 and 27II2, this subsystem B38 is supported by the instrument tables shown in FIGS. 29Q1A and 29Q1B which are not probabilistic-based, but rather plain tables indicating all possibilities of instruments (i.e. an inventory of possible instruments) separate from the instrument selection tables shown in FIGS. 28Q2A and 28Q2B, supporting probabilities of any of these instrument options being selected.
[0808] The Parameter Transformation Engine Subsystem B51 generates the data set of instruments (i.e. parameter tables) for the various style-type musical experience descriptors selectable from the GUI supported by input subsystem B0. In FIGS. 27II1 and 27II2, the parameter programming tables employed in the subsystem are set up for the exemplary style-type musical experience descriptorPOPand used during the automated music composition and generation process of the present invention. For example, the style parameter Pop might load data sets including Piano, Acoustic Guitar, Electric Guitar, Drum Kit, Electric Bass, and/or Female Vocals.
[0809] The instruments and other musical sounds selected for the musical piece are used during the automated music composition and generation process of the present invention so as to generate a part of the piece of music being composed.
Specification of the Instrument Selector Subsystem (B39)
[0810] FIGS. 27JJ1 and 27JJ2 show a schematic representation of the Instrument Selector Subsystem (B39) used in the Automated Music Composition and Generation Engine of the present invention. The Instrument Selector Subsystem B39 determines the instruments and other musical sounds and/or devices that will be utilized in the musical piece. This information is based on either user inputs (if given), computationally-determined value(s), or a combination of both, and is a fundamental building block of any musical piece.
[0811] As shown in FIGS. 27JJ1 and 27JJ2, the Instrument Selector Subsystem B39 is supported by the instrument selection table shown in FIGS. 28Q2A and 28Q2B, and parameter selection mechanisms (e.g. random number generator, or lyrical-input based parameter selector). Using the Instrument Selector Subsystem B39, instruments are selected for each piece of music being composed, as follows. Each Instrument group in the instrument selection table has a specific probability of being selected to participate in the piece of music being composed, and these probabilities are independent from the other instrument groups. Within each instrument group, each style of instrument and each instrument has a specific probability of being selected to participate in the piece and these probabilities are independent from the other probabilities.
[0812] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted data set of instrument selection (i.e. parameter) tables for the various musical experience descriptors selectable from the input subsystem B0. In FIGS. 27JJ1 and 27JJ2, the probability-based system parameter tables employed in the subsystem is set up for the exemplary emotion-type musical experience descriptorHAPPYand style-type musical experience descriptorPOPand used during the automated music composition and generation process of the present invention.
[0813] For example, the style-type musical experience parameter Pop with a data set including Piano, Acoustic Guitar, Electric Guitar, Drum Kit, Electric Bass, and/or Female Vocals might have a two-thirds probability that each instrument is individually selected to be utilized in the musical piece.
[0814] There is a strong relationship between Emotion and style descriptors and the instruments that play the music. For example, a Rock piece of music might have guitars, drums, and keyboards, whereas a Classical piece of music might have strings, woodwinds, and brass. So when a system user selects ROCK music as a style, the instrument selection table will show such instruments as possible selections.
[0815] The instruments and other musical sounds selected by Instrument Selector Subsystem B39 for the musical piece are used during the automated music composition and generation process of the present invention so as to generate a part of the piece of music being composed.
Specification of the Orchestration Generation Subsystem (B31)
[0816] FIGS. 27KK1 through 27KK9, taken together, show the Orchestration Generation Subsystem (B31) used in the Automated Music Composition and Generation Engine B31 of the present invention. Orchestration, or the arrangement of a musical piece for performance by an instrumental ensemble, is a fundamental building block of any musical piece. From the composed piece of music, typically represented with a lead sheet (or similar) representation as shown by the musical score representation at the bottom of FIG. 27JJ1, and also at the top of FIG. 27KK6, the Orchestration Generation Subsystem B31 determines what music (i.e. set of notes or pitches) will be played by the selected instruments, derived from the piece of music that has been composed thus far automatically by the automated music composition process. This orchestrated or arranged music for each selected instrument shall determine the orchestration of the musical piece by the selected group of instruments.
[0817] As shown in FIGS. 27KK1 through 27KK9, the Orchestration Generation Subsystem (B31) is supported by the following components: (i) the instrument orchestration prioritization tables, the instrument function tables, the piano hand function table, piano voicing table, piano rhythm table, initial piano rhythm table, second note right hand table, second note left hand table, third note right hand length table, and piano dynamics table as shown in FIGS. 28R1, 28R2 and 28R3; (ii) the piano note analyzer illustrated in FIG. 27KK3, system analyzer illustrated in FIG. 27KK7, and master orchestration analyzer illustrated in FIG. 27KK9; and (iii) parameter selection mechanisms (e.g. random number generator, or lyrical-input based parameter selector) as described in detail above. It will be helpful to briefly describe the function of the music data analyzers employed in subsystem B31.
[0818] As will be explained in greater detail hereinafter, the primary function of the Piano Note Analyzer illustrated in FIG. 27KK3 is to analyze the pitch members of a chord and the function of each hand of the piano, and then determine what pitches on the piano are within the scope of possible playable notes by each hand, both in relation to any previous notes played by the piano and any possible future notes that might be played by the piano.
[0819] The primary function of the System Analyzer illustrated in FIG. 27KK7 is to analyze all rhythmic, harmonic, and timbre-related information of a piece, section, phrase, or other length of a composed music piece to determine and adjust the rhythms and pitches of an instrument's orchestration to avoid, improve, and/or resolve potential orchestrational conflicts.
[0820] Also, the primary function of the Master Orchestration Analyzer illustrated in FIG. 27KK9 is to analyze all rhythmic, harmonic, and timbre-related information of a piece, section, phrase, or other length of a music piece to determine and adjust the rhythms and pitches of a piece's orchestration to avoid, improve, and/or resolve potential orchestrational conflicts.
[0821] In general, there is a strong relationship between emotion and style descriptors and the instruments that play the music, and the music that selected instruments perform during the piece. For example, a piece of music orchestrated in a Rock style might have a sound completely different than the same piece of music orchestrated in a Classical style. However, the orchestration of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to effect timing requests. For example, if a piece of music needs to accent a certain moment, regardless of the orchestration thus far, a loud crashing percussion instrument such as a cymbal might successfully accomplish this timing request, lending itself to a more musical orchestration in line with the user requests.
[0822] As with all the subsystems, Parameter Transformation Engine Subsystem B51 generates the probability-weighted set of possible instrumentation parameter tables identified above for the various musical experience descriptors selected by the system user and provided to the Input Subsystem B0. In FIGS. 27KK1 through 27KK9, the probability-based parameter programming tables (i.e. instrument orchestration prioritization table, instrument energy tabled, piano energy table, instrument function table, piano hand function table, piano voicing table, piano rhythm table, second note right hand table, second note left hand table, piano dynamics table) employed in the Orchestration Generation Subsystem B51 is set up for the exemplary emotion-type descriptorHAPPYand style-type descriptorPOPand used during the automated music composition and generation process of the present invention. This musical experience descriptor information is based on either user inputs (if given), computationally-determined value(s), or a combination of both.
[0823] As illustrated in FIGS. 27KK1 and 27KK2, based on the inputs from subsystems B37, B38, and B39, the Orchestration Generation Subsystem B51 might determine using a random number generation, or other parameter selection mechanism, that a certain number of instruments in a certain stylistic musical category are to be utilized in this piece, and specific order in which they should be orchestrated. For example, a piece of composed music in a Pop style might have a one half probability of 4 total instruments and a one half probability of 5 total instruments. If 4 instruments are selected, the piece might then have a instrument orchestration prioritization table containing a one half probability that the instruments are a piano, acoustic guitar, drum kit, and bass, and a one half probability that the instruments are a piano, acoustic guitar, electric guitar, and bass. In FIG. 27KK1, a different set of priorities are shown for six (6) exemplary instrument orchestrations. As shown, in the case example, the selected instrument orchestration order is made using a random number generator to provide: piano, electric bass 1 and violin.
[0824] The flow chart illustrated in FIGS. 27KK1 through 27KK7 describes the orchestration process for the pianothe first instrument to be orchestrated. As shown, the steps in the piano orchestration process include: piano/instrument function selection, piano voicing selection, piano rhythm length selection, and piano dynamics selection, for each note in the piece of music assigned to the piano. Details of these steps will be described below.
[0825] As illustrated in FIGS. 27KK1 and 27KK2, the Orchestration Generation Subsystem B51 accesses the preloaded instrument function table, and uses a random function generator (or other parameter selection mechanism) to select an instrument function for each part of the piece of music being composed (e.g. phrase melody, piece melody etc.). The results from this step of the orchestration process include the assignment of a function (e.g. primary melody, secondary melody, primary harmony, secondary harmony or accompaniment) to each part of the musical piece. These function codes or indices will be used in the subsequent stages of the orchestration process as described in detail below.
[0826] It is important in orchestration to create a clear hierarchy of each instrument and instrument groups' function in a piece or section of music, as the orchestration of an instrument functioning as the primary melodic instrument might be very different than if it is functioning as an accompaniment. Examples of instrument function are illustrated in the instrument function table shown in FIG. 27KK1, and include, for example: primary melody; secondary melody; primary harmony; secondary harmony; and accompaniment. It is understood, however, that there are many more instrument functions that might be supported by the instruments used to orchestrate a particular piece of composed music. For example, in a measure of a Happy C major piece of music with a piano, acoustic guitar, drum kit, and bass, the subsystem B31 might assign the melody to the piano, a supportive strumming pattern of the chord to the acoustic guitar, an upbeat rhythm to the drum kit, and the notes of the lowest inversion pattern of the chord progression to the bass. In general, the probabilities of each instrument's specific orchestration are directly affected by the preceding orchestration of the instrument as well as all other instruments in the piece.
[0827] Therefore, the Orchestration Generation Subsystem B31 orchestrates the musical material created previously including, but not limited to, the chord progressions and melodic material (i.e. illustrated in the first two staves of the lead sheet musical score representation shown in FIGS. 27KK5 and 27KK6) for the specific instruments selected for the piece. The orchestrated music for the instruments in the case example, i.e. violin (Vln.), piano (Pno.) and electric bass (E.B.) shall be represented on the third, fourth/fifth and six staves of the music score representation in FIGS. 27KK6, 27KK7 and 27KK8, respectively, generated and maintained for the musical orchestration during the automated music composition and generation process of the present invention. Notably, in the case example, illustrated in FIGS. 27KK1 through 27KK9, the subsystem B31 has automatically made the following instrument function assignments: (i) the primary melody function is assigned to the violin (Vln.), wherein the orchestrated music for this instrument function will be derived from the lead sheet music composition set forth on the first and second staves and then represented along the third stave of the music representation shown FIG. 27KK6; the secondary melody function is assigned to the right hand (RH) of the piano (Pno.) while the primary harmony function is assigned to the left hand (LH) of the piano, wherein its orchestrated music for these instrument functions will be derived from the lead sheet music composition set forth on the first and second staves and then represented along the fourth and fifth staves of the music representation shown in FIG. 27KK6; and the secondary harmony function is assigned to the electric bass (E.B.), wherein the orchestrated music for this instrument function will be derived from the lead sheet music composition set forth on the first and second staves and then represented along the sixth stave of the music representation shown in FIG. 27KK6.
[0828] For the case example at hand, the order of instrument orchestration has been selected to be: (1) the piano performing the secondary melody and primary harmony functions with the RH and LH instruments of the piano, respectively; (2) the violin performing the primary melody function; and (3) the electric base (E.B.) performing the primary harmony function. Therefore, the subsystem B31 will generate orchestrated music for the selected group of instruments in this named order, despite the fact that violin has been selected to perform the primary melody function of the orchestrated music. Also, it is pointed out that multiple instruments can perform the same instrument functions (i.e. both the piano and violin can perform the primary melody function) if and when the subsystem B31 should make this determination during the instrument function step of the orchestration sub-process, within the overall automated music composition process of the present invention. While subsystem B31 will make instrument function assignments un-front during the orchestration process, it is noted that the subsystem B31 will use its System and Master Analyzers discussed above to automatically analyze the entire orchestration of music when completed and determine whether or not if it makes sense to make new instrument function assignments and re-generate orchestrated music for certain instruments, based on the lead sheet music representation of the piece of music composed by the system of the present invention. Depending on how particular probabilistic or stochastic decisions are made by the subsystem B31, it may require several complete cycles through the process represented in FIGS. 27KK1 through 27KK9, before an acceptable music orchestration is produced for the piece of music composed by the automated music composition system of the present invention. This and other aspects of the present invention will become more readily apparent hereinafter.
[0829] As shown in the process diagram of FIGS. 27KK1 through 27KK9, once the function of each instrument is determined, then the Subsystem B31 proceeds to load instrument-function-specific function tables (e.g. piano hand function tables) to support (i) determining the manner in which the instrument plays or performs its function, based on the nature of each instrument and how it can be conventionally played, and (ii) generating music (e.g. single notes, diads, melodies and chords) derived from each note represented in the lead sheet musical score for the composed piece of music, so as to create an orchestrated piece of music for the instrument performing its selected instrument function. In the example shown in FIG. 27KK2, the probability-based piano hand function table is loaded for the selected instrument function in the case example, namely: secondary melody. While only the probability-based piano hand function (parameter) table is shown in FIG. 27KK2, for clarity of exposition, it is understood that the Instrument Orchestration Subsystem B31 will have access to probability-based piano hand function table for each of the other instrument functions, namely: primary melody; primary harmony; secondary harmony; and accompaniment. Also, it is understood that the Instrument Orchestration Subsystem B31 will have access to a set of probability-based instrument function tables programmed for each possible instrument function selectable by the Subsystem B31 for each instrument involved in the orchestration process.
[0830] Consider, for example, a piano instrument typically played with a left hand and a right hand. In this case, a piano accompaniment in a Waltz (in a time signature) might have the Left Hand play every downbeat and the Right Hand play every second and third beat of a piece of music orchestrated for the piano. Such instrument-specific function assignment for the piano is carried out by the Instrument Orchestration Subsystem B31 (i) processing each note in the lead sheet of the piece of composed music (represented on the first and staves of the music score representation in FIG. 27KK6), and (ii) generating orchestrated music for both the right hand (RH) and left hand (LH) instruments of the piano, and representing this orchestrated music in the piano hand function table shown in FIGS. 27KK1 and 27KK3. Using the piano hand function table, and a random number generator as described hereinabove, the Subsystem B31 processes each note in the lead sheet musical score and generates music for the right hand and left hand instruments of the piano.
[0831] For the piano instrument, the orchestrated music generation process that occurs is carried out by subsystem B31 as follows. For the first note in the lead sheet musical score, the subsystem B31 (i) refers to the probabilities indicated in the RH part of the piano hand function table and, using a random number generator (or other parameter selection mechanism) selects either a melody, single note or chord from the RH function table, to be generated and added to the stave of the RH instrument of the piano, as indicated as the fourth stave shown in FIG. 27KK6; and immediately thereafter (ii) refers to the probabilities indicated in the LH part of the piano hand function table and, using a random number generator (or other parameter selection mechanism) selects from the selected column in the RH function table, either a melody, single note (non-melodic), a diad, or chord, to be generated and added to the stave of the LH instrument of the piano, as indicated as the fifth stave shown in FIG. 27KK6. Notably, a dyad (or diad) is a set of two notes or pitches, whereas a chord has three or more notes, but in certain contexts a musician might consider a dyad a chordor as acting in place of a chord. A very common two-note chord is the interval of a perfect fifth. Since an interval is the distance between two pitches, a dyad can be classified by the interval it represents. When the pitches of a dyad occur in succession, they form a melodic interval. When they occur simultaneously, they form a harmonic interval.
[0832] As shown in FIGS. 27KK1 and 27KK2, the Instrument Orchestration Subsystem 31 determines which of the previously generated notes are possible notes for the right hand and left hand parts of the piano, based on the piece of music composed thus far. This function is achieved the subsystem B31 using the Piano Note Analyzer to analyze the pitch members (notes) of a chord, and the selected function of each hand of the piano, and then determines what pitches on the piano (i.e. notes associated with the piano keys) are within the scope of possible playable notes by each hand (i.e. left hand has access to lower frequency notes on the piano, whereas the right hand has access to higher frequency notes on the piano) both in relation to any previous notes played by the piano and any possible future notes that might be played by the piano. Those notes that are not typically playable by a particular human hand (RH or LH) on the piano, are filtered out or removed from the piece music orchestrated for the piano, while notes that are playable should remain in the data structures associated with the piano music orchestration.
[0833] Once the notes are generated for each piano hand, as shown in FIGS. 27KK3 and 27KK4, the subsystem B31 then performs piano voicing which is a process that influences the vertical spacing and ordering of the notes (i.e. pitches) in the orchestrated piece of music for the piano. For example, the instrument voicing influences which notes are on the top or in the middle of a chord, which notes are doubled, and which octave each note is in. Piano voicing is achieved by the Subsystem B31 accessing a piano voicing table, schematically illustrated in FIGS. 27KK1 and 27KK2 as a simplistic two column table, when in reality, it will be a complex table involving many columns and rows holding parameters representing the various ways in which a piano can play each musical event (e.g. single note (non-melodic), chord, diad or melody) present in the orchestrated music for the piano at this stage of the instrument orchestration process. As shown in the piano, voicing table, following conventional, each of the twelve notes or pitches on the musical scale is represented as a number from 0 through 11, where musical note C is assigned number 0, C sharp is assigned 1, and so forth. While the exemplary piano voicing table of FIG. 27KK3 only shows the possible LH and RH combination for single-note (non-melodic) events that might occur within a piece of orchestrated music, it is understood that this piano voicing table in practice will contain voicing parameters for many other possible musical events (e.g. chords, diads, and melodies) that are likely to occur within the orchestrated music for the piano, as is well known in the art.
[0834] Once the manner in which an instrument is going to play generated notes in the piano orchestrated music has been determined as described above, the subsystem B31 determines the specifics, including the note lengths or duration (i.e. note rhythms) using the piano rhythm tables shown in FIGS. 27KK4 and 27KK5, and continues to specify the note durations for the orchestrated piece of music until piano orchestration is filled. As shown in FIG. 27KK5, the piano note rhythm (i.e. note length) specification process is carried out using as many stages as memory and data processing will allow within the system of the present invention. In the illustrative embodiment, three stages are supported within subsystem B31 for sequentially processing an initial (first) note, a second (sequential) note and a third (sequential) note using (i) the probabilistic-based initial piano rhythm (note length) table having left hand and right hand components, (ii) the second piano rhythm (note length) table having left hand and right hand components, and (iii) the third piano rhythm (note length) table having left hand and right hand components, as shown in FIGS. 27KK4 and 27KK5. Notably, for this 3.sup.rd-order stochastic model, the probability values contained in the right-hand second piano rhythm (note length) table are dependent upon the initial notes that might be played by the right hand instrument of the piano and observed by the subsystem B31, and the probability values the probability values contained in the right-hand third piano rhythm (note length) table are dependent in the initial notes that might be played by the right hand instrument of the piano and observed by the subsystem B31. Likewise, the probability values contained in the left-hand second piano rhythm (note length) table are dependent upon the initial notes that might be played by the left hand instrument of the piano and observed by the subsystem B31, and the probability values the probability values contained in the left-hand third piano rhythm (note length) table are dependent in the initial notes that might be played by the left hand instrument of the piano and observed by the subsystem B31.
[0835] If a higher order stochastic model where used for piano note rhythm (i.e. note length) control, then a fourth order and perhaps higher order piano (note) rhythm (note length) tables will be used to carry out the orchestration process supported within the subsystem B31. The result from this stage of note processing are notes of specified note length or duration in the orchestrated piece of music for the piano, as illustrated in musical score representation shown in FIG. 27KK6.
[0836] Regardless of the order of the stochastic model used, the Instrument Orchestration Subsystem B31 will need to determine the proper note lengths (i.e. note rhythms) in each piece of orchestrated music for a given instrument. So, for example, continuing the previous example, if the left hand instrument of the piano plays a few notes on the downbeat, it might play some notes for an eighth note or a half note duration. Each note length is dependent upon the note lengths of all previous notes; the note lengths of the other notes in the same measure, phrase, and sub-phrase; and the note lengths of the notes that might occur in the future. Each preceding note length determination factors into the decision for a certain note's length, so that the second note's length is influenced by the first note's length, the third note's length is influenced by the first and second notes' lengths, and so on.
[0837] Having determined the note lengths for the piano orchestration, the next step performed by the subsystem B31 is to determine the dynamics for the piano instrument as represented by the piano dynamics table indicated in the process diagram shown in FIG. 27KK6. In general, the dynamics refers to the loudness or softness of a musical composition, and piano or instrument dynamics relates to how the piano or instrument is played to impart particular dynamic characteristics to the intensity of sound generated by the instrument while playing a piece of orchestrated music. Such dynamic characteristic will include loudness and softness, and the rate at which sound volume from the instrument increases or decreases over time as the composition is being performed. As reflected in the piano dynamics table set forth in the process diagram of FIG. 27KK7, several traditional classes of dynamics have been developed for the piano over the past several hundred years or so, namely: (i) piano (soft); mezzo piano; mezzo forte. In each case, instrument dynamics relates to how the instrument is played or performed by the automated music composition and generation system of the present invention, or any resultant system, in which the system may be integrated and requested to compose, generate and perform music in accordance with the principles of the present invention.
[0838] As shown in FIG. 27KK6, dynamics for the piano instrument are determined using the piano dynamics table shown in FIGS. 28R1, 28R2 and 28R3 and the random number generator (or other parameter selection mechanism) to select a piano dynamic for the first note played by the right hand instrument of the piano, and then the left hand instrument of the piano. While the piano dynamics table shown in FIG. 27KK6 is shown as a first-order stochastic model for purposes of simplicity and clarity of exposition, it is understood that in practice the piano dynamics table (as well as most instrument dynamics tables) will be modeled and implemented as an n-th order stochastic process, where each note dynamics is dependent upon the note dynamic of all previous notes; the note dynamics of the other notes in the same measure, phrase, and sub-phrase; and the note dynamics of the notes that might occur in the future. Each preceding note dynamics determination factors into the decision for a certain note's dynamics, so that the second note's dynamics is influenced by the first note's dynamics, the third note's dynamics is influenced by the first and second notes' dynamics, and so on. In some cases, the piano dynamics table will be programmed so that there is a gradual increase or decrease in volume over a specific measure or measures, or melodic phrase or phrases, or sub-phrase or sub-phrase, or over an entire melodic piece, in some instances. In other instances, the piano dynamics table will be programmed so that the piano note dynamics will vary from one specific measure to another measure, or from melodic phrase to another melodic phrase, or from one sub-phrase or another sub-phrases, or over from one melodic piece to another melodic phrase, in other instances. In general, the dynamics of the instrument's performance will be ever changing, but are often determined by guiding indications that follow the classical music theory cannon. How such piano dynamics tables might be designed for any particular application at hand will occur to those skilled in the art having had the benefit of the teachings of the present invention disclosure.
[0839] This piano dynamics process repeats, operating on the next note in the orchestrated piano music represented in the fourth stave of the music score representation in FIG. 27KK7 for the right hand instrument of the piano, and on the next note in the orchestrated piano music represented in the fifth stave of the music score representation in FIG. 27KK7 for the left hand instrument of the piano. The dynamics process is repeated and operates on all notes in the piano orchestration until all piano dynamics have been selected and imparted for all piano notes in each part of the piece assigned to the piano. As shown, the resulting musical score representation, with dynamics markings (e.g. p, mf, f) for the piano is illustrated in the top of
[0840] As indicated in FIG. 27KK7, the entire Subsystem B31 repeats the above instrument orchestration process for the next instrument (e.g. electric bass 1) so that orchestrated music for the electric bass is generated and stored within the memory of the system, as represented in the sixth stave of the musical score representation shown in FIG. 27KK8.
[0841] As shown in FIGS. 27KK7 and 27KK8, while orchestrating the electric bass instrument, the subsystem B31 uses the System Analyzer to automatically check for conflicts between previously orchestrated instruments. As shown, the System Analyzer adjusts probabilities in the various tables used in subsystem B31 so as to remove possible conflicts between orchestrated instruments. Examples of possible conflicts between orchestrated instrument might include, for example: when an instrument is orchestrated into a pitch range that conflicts with a previous instrument (i.e. an instrument plays the exact same pitch/frequency as another instrument that makes the orchestration of poor quality); where an instrument is orchestrated into a dynamic that conflicts with a previous instrument (i.e. all instruments are playing quietly and one instrument is now playing very loudly); and where an instrument is orchestrated to do something that is not physically possible by a real musician in light of previous orchestrations (i.e. a single percussionist cannot play 8 drum kits at once). FIG. 27KK8 shows the musical score representation for the corrected musical instrumentation played by the electric bass (E.B) instrument.
[0842] As shown at the bottom of FIG. 27KK8, the Subsystem B31 repeats the above orchestration process for next instrument (i.e. violin) in the instrument group of the music composition. The musical score representation for the orchestrated music played by the violin is set forth in the third stave shown in the topmost music score representation set froth in the process diagram of FIG. 27KK9.
[0843] As shown in FIG. 27KK9, once the orchestration is complete, the Orchestration Generation Subsystem B13 uses the Master Orchestration Analyzer to modify and improve the resulting orchestration and corrects any musical or non-musical errors and/or inefficiencies. In this example, the octave notes in the second and third base clef staves of the piano orchestration in FIG. 27KK9 have been removed, as shown in the final musical score representation set forth in the lower part of the process diagram set forth in FIG. 27KK9, produced at the end of this stage of the orchestration process.
[0844] The instruments and other musical sounds selected for the instrumentation of the musical piece are used during the automated music composition and generation process of the present invention so as to generate a part of the piece of music being composed, as illustrated in the musical score representation illustrated at the bottom of FIG. 27KK9.
Specification of the Controller Code Generation Subsystem (B32)
[0845]
[0846] The Controller Code Generation Subsystem B32 determines the controller code and/or similar information of each note that will be used in the piece of music being composed and generated. This Subsystem B32 determines and generates the controller code information for the notes and chords of the musical being composed. This information is based on either system user inputs (if given), computationally-determined value(s), or a combination of both.
[0847] As shown in
[0848] Each instrument, instrument group, and piece has specific independent probabilities of different processing effects, controller code data, and/or other audio/midi manipulating tools being selected for use. With each of the selected manipulating tools, the subsystem B32 then determines in what manner the selected tools will affect and/or change the musical piece, section, phrase, or other structure(s); how the musical structures will affect each other; and how to create a manipulation landscape that improves the musical material that the controller code tools are manipulating.
[0849] The Parameter Transformation Engine Subsystem B51 generates the probability-weighted data set of possible controller code (i.e. parameter) tables for the various musical experience descriptors selected by the system user and provided to the input subsystem B0. In
[0850] The Controller Code Generation Subsystem B32 uses the instrument, instrument group and piece-wide controller code parameter tables and data sets loaded from subsystems B1, B37, B38, B39, B40, and/or B41. As shown in
[0851] In general, there is a strong relationship between emotion and style descriptors and the controller code information that informs how the music is played. For example, a piece of music orchestrated in a Rock style might have a heavy dose of delay and reverb, whereas a Vocalist might incorporate tremolo into the performance. However, the controller code information used to generate a musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to effect timing requests. For example, if a piece of music needs to accent a certain moment, regardless of the controller code information thus far, a change in the controller code information, such as moving from a consistent delay to no delay at all, might successfully accomplish this timing request, lending itself to a more musical orchestration in line with the user requests.
[0852] The controller code selected for the instrumentation of the musical piece will be used during the automated music composition and generation process of the present invention as described hereinbelow.
Specification of the Digital Audio Sample Producing Subsystem and its Use in Subsystems B33 and B34
[0853] The Automatic Music Composition And Generation (i.e. Production) System of the present invention described herein utilizes libraries of digitally-synthesized (i.e. virtual) musical instruments, or virtual-instruments, to produce digital audio samples of individual notes specified in the musical score representation for each piece of composed music. These digitally-synthesized (i.e. virtual) instruments shall be referred to as the Digital Audio Sample Producing Subsystem, regardless of the actual techniques that might be used to produce each digital audio sample that represents an individual note in a composed piece of music.
[0854] In general, to generate music from any piece of music composed by the system, Subsystems B33 and B34 need musical instrument libraries for acoustically realizing the musical events (e.g. pitch events such as notes, and rhythm events) played by virtual instruments specified in the musical score representation of the piece of composed music. There are many different techniques available for creating, designing and maintaining music instrument libraries, and musical sound libraries, for use with the automated music composition and generation system of the present invention, namely: Digital Audio Sampling Synthesis Methods; Partial Timbre Synthesis Methods, Frequency Modulation (FM) Synthesis Methods; and other forms of Virtual Instrument Synthesis Technology.
[0855] The Digital Audio Sampling Synthesis Method involves recording a sound source (such as a real instrument or other audio event) and organizing these samples in an intelligent manner for use in the system of the present invention. In particular, each audio sample contains a single note, or a chord, or a predefined set of notes. Each note, chord and/or predefined set of notes is recorded at a wide range of different volumes, different velocities, different articulations, and different effects, etc. so that a natural recording of every possible use case is captured and available in the sampled instrument library. Each recording is manipulated into a specific audio file format and named and tagged with meta-data with identifying information. Each recording is then saved and stored, preferably, in a database system maintained within or accessible by the automatic music composition and generation system. For example, on an acoustical piano with 88 keys (i.e. notes), it is not unexpected to have over 10,000 separate digital audio samples which, taken together, constitute the fully digitally-sampled piano instrument. During music production, these digitally sampled notes are accessed in real-time to generate the music composed by the system. Within the system of the present invention, these digital audio samples function as the digital audio files that are retrieved and organized by subsystems B33 and B34, as described in detail below.
[0856] Using the Partial Timbre Synthesis Method, popularized by New England Digital's SYNCLAVIER Partial-Timbre Music Synthesizer System in the 1980's, each note along the musical scale that might be played by any given instrument being model (for partial timbre synthesis library) is sampled, and its partial timbre components are stored in digital memory. Then during music production/generation, when the note is played along in a given octave, each partial timbre component is automatically read out from its partial timbre channel and added together, in an analog circuit, with all other channels to synthesize the musical note. The rate at which the partial timbre channels are read out and combined determines the pitch of the produced note. Partial timbre-synthesis techniques are taught in U.S. Pat. Nos. 4,554,855; 4,345,500; and 4,726,067, incorporated by reference.
[0857] Using state-of-the-art Virtual Instrument Synthesis Methods, such as supported by MOTU's MachFive 3 Universal Sampler and Virtual Music Instrument Design Tools, musicians can create custom sound libraries for almost any virtual instrument, real or imaginable, to support music production (i.e. generation) in the system of the present invention.
[0858] There are other techniques that have been developed for musical note and instrument synthesis, such as FM synthesis, and these technologies can be found employed in various commercial products for virtual instrument design and music production.
Specification of the Digital Audio Retriever Subsystem (B33)
[0859]
Specification of the Digital Audio Sample Organizer Subsystem (B34)
[0860]
Specification of the Piece Consolidator Subsystem (B35)
[0861]
Specification of the Piece Format Translator Subsystem (B50)
[0862] FIG. 27OO1 shows the Piece Format Translator Subsystem (B50) used in the Automated Music Composition and Generation Engine (E1) of the present invention. The Piece Format Translator subsystem B50 analyzes the audio and text representation of the digital piece and creates new formats of the piece as requested by the system user or system including. Such new formats may include, but are not limited to, MIDI, Video, Alternate Audio, Image, and/or Alternate Text format. Subsystem B50 translates the completed music piece into desired alterative formats requested during the automated music composition and generation process of the present invention.
Specification of the Piece Deliver Subsystem (B36)
[0863]
Specification of the Feedback Subsystem (B42)
[0864] FIGS. 27QQ1, 27QQ2 and 27QQ3 show the Feedback Subsystem (B42) used in the Automated Music Composition and Generation Engine of the present invention. As shown the input and output data ports of the Feedback Subsystem B42 is are configured with the data input and output ports shown in
[0865] In general, during system operation, the Feedback Subsystem B42 allows for inputs ranging from very specific to very vague and acts on this feedback accordingly. For example, a user might provide information, or the system might determine on its on accord, that the piece that was generated should, for example, be (i) faster (i.e. have increased tempo), (ii) greater emphasize on a certain musical experience descriptor, change timing parameters, and (iii) include a specific instrument. This feedback can be given through a previously populated list of feedback requests, or an open-ended feedback form, and can be accepted as any word, image, or other representation of the feedback.
[0866] As shown in FIGS. 27QQ1, 27QQ2 and 27QQ3, the Piece Feedback Subsystem B42 receives various kinds of data from its data input ports, and this data is autonomously analyzed by a Piece Feedback Analyzer supported within Subsystem B42. In general, the Piece Feedback Analyzer considers all available input, including, but not limited to, autonomous or artificially intelligent measures of quality and accuracy and human or human-assisted measures of quality and accuracy, and determines a suitable response to a analyzed piece of composed music. Data outputs from the Piece Feedback Analyzer can be limited to simple binary responses and can be complex, such as dynamic multi-variable and multi-state responses. The analyzer then determines how best to modify a musical piece's rhythmic, harmonic, and other values based on these inputs and analyses. Using the system-feedback architecture of the present invention, the data in any composed musical piece can be transformed after the creation of the entire piece of music, section, phrase, or other structure, or the piece of music can be transformed at the same time as the music is being created.
[0867] As shown in FIG. 27QQ1, the Feedback Subsystem B41 performs Autonomous Confirmation Analysis. Autonomous Confirmation Analysis is a quality assurance/self-checking process, whereby the system examines the piece of music that was created, compares it against the original system inputs, and confirms that all attributes of the piece that was requested have been successfully created and delivered and that the resultant piece is unique. For example, if a Happy piece of music ended up in a minor key, the analysis would output an unsuccessful confirmation and the piece would be recreated. This process is important to ensure that all musical pieces that are sent to a user are of sufficient quality and will match or surpass a user's expectations.
[0868] As shown in FIG. 27QQ1, the Feedback Subsystem B42 analyzes the digital audio file and additional piece formats to determine and confirm (i) that all attributes of the requested piece are accurately delivered, (ii) that digital audio file and additional piece formats are analyzed to determine and confirm uniqueness of the musical piece, and (iii) the system user analyzes the audio file and/or additional piece formats, during the automated music composition and generation process of the present invention. A unique piece is one that is different from all other pieces. Uniqueness can be measured by comparing all attributes of a musical piece to all attributes of all other musical pieces in search of an existing musical piece that nullifies the new piece's uniqueness.
[0869] As indicated in FIGS. 27QQ1, 27QQ2 and 27QQ3, if musical piece uniqueness is not successfully confirmed, then the feedback subsystem B42 modifies the inputted musical experience descriptors and/or subsystem music-theoretic parameters, and then restarts the automated music composition and generation process to recreate the piece of music. If musical piece uniqueness is successfully confirmed, then the feedback subsystem B42 performs User Confirmation Analysis. User confirmation analysis is a feedback and editing process, whereby a user receives the musical piece created by the system and determines what to do next: accept the current piece, request a new piece based on the same inputs, or request a new or modified piece based on modified inputs. This is the point in the system that allows for editability of a created piece, equal to providing feedback to a human composer and setting him off to enact the change requests.
[0870] Thereafter, as indicated in FIG. 27QQ2, the system user analyzes the audio file and/or additional piece formats and determines whether or not feedback is necessary. To perform this analysis, the system user can (i) listen to the piece(s) or music in part or in whole, (ii) view a score file (represented with standard MIDI conventions), or otherwise (iii) interact with the piece of music, where the music might be conveyed with color, taste, physical sensation, etc., all of which would allow the user to experience the piece of music.
[0871] In the event that feedback is not determined to be necessary, then the system user either (i) continues with the current music piece, or (ii) uses the exact same user-supplied input musical experience descriptors and timing/spatial parameters to create a new piece of music using the system. In the event that feedback is determined to be necessary, then the system user provides/supplied desired feedback to the system. Such system user feedback may take on the form of text, linguistics/language, images, speech, menus, audio, video, audio/video (AV), etc.
[0872] In the event the system users desires to provide feedback to the system via the GUI of the input output subsystem B0, then a number of feedback options will be made available to the system user through a system menu supporting, for example, five pull-down menus.
[0873] As shown in FIGS. 22QQ2 and 27QQ3, the first pull down menus provides the system user with the following menu options: (i) faster speed; (ii) change accent location; (iii) modify descriptor, etc. The system user can make any one of these selections and then request the system to regenerate a new piece of composed music with these new parameters.
[0874] As shown in FIGS. 27QQ2 and 27QQ3, the second pull down menu provides the system user with the following menu options: (i) replace a section of the piece with a new section; (ii) when the new section follows existing parameters, modify the input descriptors and/or subsystem parameter tables, then restart the system and recreate a piece or music; and (iii) when the new section follows modified and/or new parameters, modify the input descriptors and/or subsystem parameter tables, then restart the system and recreate a piece or music. The system user can make any one of these selections and then request the system to regenerate a new piece of composed music.
[0875] As shown in FIGS. 27QQ2 and 27QQ3, the third pull down menu provides the system user with the following options: (i) combine multiple pieces into fewer pieces; (ii) designate which pieces of music and which parts of each piece should be combined; (iii) system combines the designated sections; and (iv) use the transition point analyzer and recreate transitions between sections and/or pieces to create smoother transitions. The system user can make any one of these selections and then request the system to regenerate a new piece of composed music.
[0876] As shown in FIGS. 27QQ2 and 27QQ3, the fourth pull down menu provides the system user with the following options: (i) split piece into multiple pieces; (ii) within existing pieces designate the desired start and stop sections for each piece; (iii) each new piece automatically generated; and (iv) use split piece analyzer and recreate the beginning and end of each new piece so as to create smoother beginning and end. The system user can make any one of these selections and then request the system to regenerate a new piece of composed music.
[0877] As shown in FIGS. 27QQ2 and 27QQ3, the fourth pull down menu provides the system user with the following options: (i) compare multiple pieces at once; (ii) select pieces to be compared; (iii) select pieces to be compared; (iv) pieces are lined up in sync with each other; (v) each piece is compared, and (vi) preferred piece is selected. The system user can make any one of these selections and then request the system to regenerate a new piece of composed music.
Specification of the Music Editability Subsystem (B43)
[0878]
Specification of the Preference Saver Subsystem (B44)
[0879]
[0880] As shown in
[0881] The primary functionality of the Feedback analyzer is to determine an avenue for analysis and improvement of a musical piece, section, phrase, or other structure(s). The Feedback Analyzer considers the melodic, harmonic, and time-based structure(s) as well as user or computer-based input (both musical and non-musical) to determine its output.
[0882] As shown in the example reflected in
[0883] As shown in
Specification of the Musical Kernel (DNA) Generation Subsystem (B45)
[0884]
[0885] In general, the subsystem B45 determines the musical kernel of a music piece in terms of (i) melody (sub-phrase melody note selection order), (ii) harmony (i.e. phrase chord progression), (iii) tempo, (iv) volume, and (v) orchestration, so that this music kernel can be used during future automated music composition and generation process of the present invention. This information may be used to replicate, either with complete or incomplete accuracy, the piece of music at a later time.
[0886] For example, the Subsystem B45 may save the melody and all related melodic and rhythmic material, of a musical piece so that a user may create a new piece with the saved melody at a later time. It may also analyze and save the information from B32 in order to replicate the production environment and data of the piece.
Specification of the User Taste Generation Subsystem (B46)
[0887] FIG. 27SUU shows the user taste generation subsystem (B46) used in the Automated Music Composition and Generation Engine of the present invention. The subsystem determines the system user's musical taste based on system user feedback and autonomous piece analysis, and this musical taste information is used to change or modify the musical experience descriptors, parameters and table values, logic order, and/or other elements of the system for a music composition in order or to better reflect the preferences of a user.
[0888] In general, the subsystem B46 analyzes the user's personal musical and non-musical taste and modifies the data sets, data tables, and other information used to create a musical piece in order to more accurately and quickly meet a user's request in the future. For example, this subsystem may recognize that a user's request for Happy music is most satisfied when sad music is generated, even though this is not what the system believes should be the case. In this case, the system would modify all relevant subsystems and data so that sad music is generated for this user when the Happy request is made. These changes and preferences are then saved to a user's individual profile and will be recalled and reused and potentially re-modified as the user continues to use the system.
[0889] As shown in
[0890] As shown in
[0891] As shown in
[0892] In response, the subsystem B46 performs its functions and the piece is recreated. The second piece created replaces the strings with an electric guitar. In response, the system user provides feedback to subsystem B46: more romantic. In response, the subsystem B46 performs its functions and the piece is recreated. The third piece created adds a piano to the electric guitar and the system user provides feedback to the subsystem B46: perfect. In response, the subsystem B46 modifies the instrumentation parameter table for this system user with the romantic descriptor so as to increase the probability of electric guitar and piano being used, and decreasing the probability of using strings during the instrumentation process.
Specification of the Population Taste Aggregator Subsystem (B47)
[0893]
[0894] For example, this subsystem may recognize that the entire user base's requests for Happy music are most satisfied when sad music is generated, even though this is not what the system believes should be the case. In this case, the system would modify all relevant subsystems and data so that sad music is generated for the entire user base when the Happy request is made by an individual user. These changes and preferences are then saved on a population level and will be recalled and reused and potentially re-modified as the system's users continue to use the system.
[0895] As shown in
[0896] In the process diagram of
[0897] As shown in
[0898] As shown, using subsystem B47, both system user and computer feedback are used confirm and/or modify the probability tables, logic order, and/or other elements of the system in order or to better reflect the preferences of a population of users.
Specification of the User Preference Subsystem (B48)
[0899]
[0900] As shown in
[0901] As indicated in
Specification of the Population Preference Subsystem (B49)
[0902]
[0903] As shown in
[0904] As indicated in
Overview of the Parameter Transformation Principles Employed in the Parameter Transformation Engine Subsystem (B51) of the Present Invention
[0905] When practicing the systems and methods of the present invention, system designers and engineers will make use of various principles described below when designing, constructing and operating the Parameter Transformation Engine Subsystem B51 in accordance with the principles of the present invention. The essence of the present invention is to enable or empower system users (e.g. human beings as well as advanced computing machines) to specify the emotional, stylistic and timing aspects of music to be composed without requiring any formal knowledge of music or music theory. However, to realize this goal, the systems of the present invention need to employ powerful and rich music theoretic concepts and principles which are practiced strongly within the parameter transformation engine B51, where system user inputs are transformed into probabilistic-weight music-theoretic parameters that are loaded into the system operating parameter (SOP) tables and distributed across and loaded within the various subsystems for which they are specifically intended and required for proper system operation.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B2
[0906] If the user provides the piece length, then no length parameter tables are used. If the user does not provide the piece length, then the system parameter table determines the piece length. If the music is being created to accompany existing content, then the length is defaulted to be the length of the existing content. If the music is not being created to accompany existing content, the length is decided based on a probability table with lengths and probabilities based on the musical emotion and style descriptor inputs. For example, a Pop song may have a 50% chance of having a three minute length, 25% chance of a two minute length, and 25% chance of having a four minute length, whereas a Classical song may have a 50% chance of having a six minute length, 25% chance of a five minute length, and 25% chance of having a seven minute length.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B3
[0907] In general, there is a strong relationship between Emotion and style descriptors and tempo. For example, music classified as Happy is often played at a moderate to fast tempo, whereas music classified as Sad is often played a slower tempo. The system's tempo tables are reflections of the cultural connection between a musical experience and/or style and the speed at which the material is delivered. Tempo is also agnostic to the medium of the content being delivered, as speech said in a fast manner is often perceived as rushed or frantic and speech said in a slow manner is often perceived as deliberate or calm.
[0908] Further, tempo(s) of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to line up the measures and/or beats of the music with certain timing requests. For example, if a piece of music a certain tempo needs to accent a moment in the piece that would otherwise occur somewhere between the fourth beat of a measure and the first beat of the next measure, an increase in the tempo of a measure preceding the desired accent might cause the accent to occur squarely on the first beat of the measure instead, which would then lend itself to a more musical accent in line with the downbeat of the measure.
Transforming Musical Experience Parameters into System Operating Parameter Tables Maintained in the Parameter Tables of Subsystem B4
[0909] There is a strong relationship between Emotion and style descriptors and meter. For example, a waltz is often played with a meter of , whereas a march is often played with a meter of 2/4. The system's meter tables are reflections of the cultural connection between a musical experience and/or style and the meter in which the material is delivered.
[0910] Further, meter(s) of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to line up the measures and/or beats of the music with certain timing requests. For example, if a piece of music a certain tempo needs to accent a moment in the piece that would otherwise occur on halfway between the fourth beat of a 4/4 measure and the first beat of the next 4/4 measure, an change in the meter of a single measure preceding the desired accent to would cause the accent to occur squarely on the first beat of the measure instead, which would then lend itself to a more musical accent in line with the downbeat of the measure.
[0911] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings (i.e. statistical or theoretical relationships) between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters (i.e. values) stored in system operating parameter (SOP) tables that are loaded into subsystem B4 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B5
[0912] There is a strong relationship between Emotion and style descriptors and key. For example, Pop music is often played in keys with none or a few sharps (e.g. C, G, D, A, E), whereas Epic music is often played in keys with a few or more flats (e.g. F, Bb, Eb, Ab). The system's key tables are reflections of the cultural connection between a musical experience and/or style and the key in which the material is delivered.
[0913] Further, keys(s) of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to reflect timing requests. For example, if a moment needs to elevate the tension of a piece, modulating the key up a minor third might achieve this result. Additionally, certain instruments perform better in certain keys, and the determination of a key might take into consideration what instruments are likely to play in a certain style. For example, in a classical style where violins are likely to play, it would be much more preferable to create a piece of music in a key with none or few sharps than with any flats.
[0914] Taking into consideration all of the system user selected inputs through subsystem B0, the key generation subsystem B5 creates the key(s) of the piece. For example, a piece with an input descriptor of Happy, a length of thirty seconds, a tempo of sixty beats per minute, and a meter of 4/4 might have a one third probability of using the key of C (or 1, on a 1-12 scale, or 0 on a 1-11 scale), a one third probability of using the key of G (or 8, on a 1-12 scale, or 7 on a 1-11 scale), or a one third probability of using the key of A (or 10, on a 1-12 scale, or 9 on a 1-11 scale). If there are multiple sections, music timing parameters, and/or starts and stops in the music, multiple keys might be selected.
[0915] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings (i.e. statistical or theoretical relationships) between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters (i.e. values) stored in system operating parameter (SOP) tables that are loaded into subsystem B5 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B7
[0916] There is a strong relationship between Emotion and style descriptors and tonality. For example, Happy music is often played with a Major tonality, whereas Sad music is often played with a Minor tonality. The system's key tables are reflections of the cultural connection between a musical experience and/or style and the tonality in which the material is delivered.
[0917] Further, tonality(s) of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to reflect timing requests. For example, if a moment needs to transition from a tense period to a celebratory one, changing the tonality from minor to major might achieve this result.
[0918] A user is not required to know or select the tonality of the piece of music to be created. Tonality has a direct connection with the cultural canon, and the parameters and probabilities that populate this table are based on a deep knowledge and understanding of this history. For example, Happy music is often created in a Major tonality, Sad music is often created in a Minor tonality, and Playful music is often created in a Lydian tonality. The user musical emotion and style descriptor inputs are responsible for determining which tonalities are possible options for the piece of music and how likely each possibility will be.
[0919] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings (i.e. statistical or theoretical relationships) between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters (i.e. values) stored in system operating parameter (SOP) tables that are loaded into subsystem B7 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B9
[0920] All music has a form, even if the form is empty, unorganized, or absent. Pop music traditionally has form elements including Intro, Verse, Chorus, Bridge, Solo, Outro, etc. Also, song form phrases can have sub-phrases that provide structure to a song within the phrase itself.
[0921] Each style of music has established form structures that are readily associated with the style. Outside of Pop music, a Classical sonata might have a form of Exposition Development Recapitulation (this is simplified, of course), where the Recapitulation is modified presentation of Exposition. This might be represented as ABA, where the signifies the modified presentation of the original A materials.
[0922] The song form is also determined by the length of the musical piece. The longer a piece of music, the greater flexibility and options that exist for the form of the piece. In contrast, a 5 second piece of music can only realistically have a few limited form options (often a single A form). Further, timing events might influence a song form. If it is necessary to signify a huge shift in a piece of music, including a chorus or B section might effectively create this shift.
[0923] Emotion can also influence song form as well. For example, songs described as a love song, might have a typical forms associated with them, following cultural cannons, whereas songs that are described as Celtic might have very different song forms.
[0924] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B9 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B15
[0925] In general, the sub-phrase lengths are determined by (i) the overall length of the phrase (i.e. a phrase of 2 seconds will have many fewer sub-phrase options that a phrase of 200 seconds), (ii) the timing necessities (i.e. parameters) of the piece, and (iii) the style and emotion-type musical experience descriptors.
[0926] The amount, length, and probability of Sub-phrase lengths are dependent on the piece length and on the knowledge of which combinations of the previously mentioned characteristics best fit together when creating a piece of music. Sub-phrase lengths are influenced by the Emotion and Style descriptors provided by the system user. For example, Happy types of music might call for shorter sub-phrase lengths whereas Sad types of music might call for longer sub-phrase lengths.
[0927] The greater amount of sub-phrases, the less likely each is to have a very large length. And the fewer amount of sub-phrases, the more likely each is to have a very large length.
[0928] Sub-phrases also have to fit within the length of a piece of music and a specific phrase, so as certain sub-phrases are decided, future sub-phrase decisions and related parameters might be modified to reflect the remaining length that is available.
[0929] Sub-phrases might also be structured around user-requested timing information, so that the music naturally fits the user's request. For example, if a user requests a change in the music that happens to be 2 measures into the piece, the first sub-phrase length might be two measures long, caused by a complete 100% probability of the sub-phrase length being two measures long.
[0930] This parameter transformation engine subsystem B51 analyzes all of the system user input parameters and then generates and loads a probability-weighted data set of rhythms and lengths in the SOP tables, based on the input all previous processes in the system. Taking into consideration these inputs, this system creates the sub-phrase lengths of the piece. For example, a 30 second piece of music might have four sub-subsections of 7.5 seconds each, three sub-sections of 10 seconds, or five subsections of 4, 5, 6, 7, and 8 seconds.
[0931] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B15 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B11
[0932] There is a strong relationship between emotion and style descriptors and chord length. For example, Frantic music is might likely have very short chord lengths that change frequently, whereas Reflective music might have very long chord lengths that change much less frequently. The system's length tables are reflections of the cultural connection between a musical experience and/or style and the tonality in which the material is delivered.
[0933] Further, the length of each chord is dependent upon the lengths of all previous chords; the lengths of the other chords in the same measure, phrase, and sub-phrase; and the lengths of the chords that might occur in the future. Each preceding chord length determination factors into the decision for a certain chord's length, so that the second chord's length is influenced by the first chord's length, the third chord's length is influenced by the first and second chords' lengths, and so on.
[0934] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B11 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B17
[0935] There is a strong relationship between Emotion and style descriptors and the initial chord. For example, a traditional piece of music might start with a Root Note equal to the key of the piece of music, whereas a piece of music that is more outside the box might start with a Root Note specifically not equal to the key of the piece.
[0936] Once a root note is selected, the function of the chord must be determined. Most often, the function of a chord is that which would occur if a triad was created in a diatonic scale of the key and tonality chosen. For example, a C chord in C Major would often function as a I chord and G chord in C Major would often function as a V chord. Once the function of a chord is determined, the specific chord notes are designated. For example, once a C chord is determined to function as a I chord, then the notes are determined to be C E G, and when a D chord is determined to function as a ii chord, then the notes are determined to be D F A.
[0937] The initial chord root note of a piece of music is based on the Emotion and style descriptor inputs to the system. Musical canon has created a cultural expectation for certain initial root notes to appear in different types of music. For example, Pop music often starts with a Root of 0, of in the key of C Major, a root of C. Once an initial root note is selected, the function of the chord that will contain the initial root note must be decided. In the key of C Major, a root note of C might reasonably have either a major or minor triad built upon the root. This would result in either a functionality of an I major chord or an i minor chord. Further, the I major chord might actually function as a V/V Major chord, in which, though it sounds identical to an I major chord, it functions differently and with different intent. Once this function is decided, the initial chord is now known, as the function of a chord informs the system of the notes that will make up the chord. For example, any I major triad will be comprised of the Root, Third, and Fifth notes of the scale, or in the key of C Major, a C major triad would be comprised of the notes C, E, and G.
[0938] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B17 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B19
[0939] There is a strong relationship between Emotion and style descriptors and the chord progressions. For example, a Pop piece of music might have a sub-phrase chord progression of C A F G, whereas a Gospel piece of music might have a sub-phrase chord progression of C F C F.
[0940] Further, the chord root of the progression is dependent upon the chord roots of all previous chords; the chord roots of the other chords in the same measure, phrase, and sub-phrase; and the chord roots of the chords that might occur in the future. Each preceding chord root determination factors into the decision for a certain chord's root, so that the second chord's root is influenced by the first chord's root, the third chord's root is influenced by the first and second chords' roots, and so on.
[0941] Once a chord's root is determined, the function of the chord is determined as described above. The function of a chord will then directly affect the chord root table to alter the default landscape of what chord roots might be selected in the future. For example, a C major chord in the key of C major functioning as a I chord will follow the default landscape, whereas a C major chord in the key of C major functioning as a V/IV chord will follow an altered landscape that guides the next chord to likely be a IV chord (or reasonably substitution or alteration).
[0942] Additionally, an upcoming chord's position in the piece of music, phrase, sub-phrase, and measure affects the default landscape of what chord roots might be selected in the future. For example a chord previous to a downbeat at the end of a phrase might ensure that the subsequent chord be a I chord or other chord that accurately resolves the chord progression.
[0943] Based on the cultural canon of music heretofore, Emotion and style descriptors may suggest or be well represented by certain connections or progressions of chords in a piece of music. To decide what chord should be selected next, the subsequent chord root is first decided, in a manner similar to that of B17. For each possible originating chord root, probabilities have been established to each possible subsequent chord root, and these probabilities are specifically based on the Emotion and style descriptors selected by the user.
[0944] Next, and also in a similar manner to that of B17, the function of a chord is selected. The function of the chord will affect what chords are likely to follow, and so the Chord Function Root Modifier Table provides for changes to the probabilities of the Chord Root Table based on which function is selected. In this manner, the Chord Function will directly affect which Chord Root is selected next.
[0945] Next, the position in time and space of a chord is considered, as this factor has a strong relationship with which chord root notes are selected. Based on the upcoming beat in the measure for which a chord will be selected, the chord root note table parameters are further modified. This cycle replays again and again until all chords have been selected for a piece of music.
[0946] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B19 and used during the automated music composition and generation system of the present invention.
[0947] There is a strong relationship between Emotion and style descriptors and the chord progressions. For example, a Pop piece of music might have a sub-phrase chord progression of C A F G, whereas a Gospel piece of music might have a sub-phrase chord progression of C F C F.
[0948] Further, the chord root of the progression is dependent upon the chord roots of all previous chords; the chord roots of the other chords in the same measure, phrase, and sub-phrase; and the chord roots of the chords that might occur in the future. Each preceding chord root determination factors into the decision for a certain chord's root, so that the second chord's root is influenced by the first chord's root, the third chord's root is influenced by the first and second chords' roots, and so on.
[0949] Once a chord's root is determined, the function of the chord is determined as described above. The function of a chord will then directly affect the chord root table to alter the default landscape of what chord roots might be selected in the future. For example, a C major chord in the key of C major functioning as a I chord will follow the default landscape, whereas a C major chord in the key of C major functioning as a V/IV chord will follow an altered landscape that guides the next chord to likely be a IV chord (or reasonably substitution or alteration).
[0950] Additionally, an upcoming chord's position in the piece of music, phrase, sub-phrase, and measure affects the default landscape of what chord roots might be selected in the future. For example a chord previous to a downbeat at the end of a phrase might ensure that the subsequent chord be a I chord or other chord that accurately resolves the chord progression.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B20
[0951] There is a strong relationship between Experience (i.e. Emotion) and Style descriptors and the chord inversions. For example, a Rock piece of music might have chord inversions of predominantly tonics, whereas a Classical piece of music might have chord inversions consisting of much more diverse mix of tonics, first inversions, and second inversions.
[0952] The inversion of an initial chord is determined. Moving forward, all previous inversion determinations affect all future ones. An upcoming chord's inversion in the piece of music, phrase, sub-phrase, and measure affects the default landscape of what chord inversions might be selected in the future.
[0953] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B_20 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B25
[0954] There is a strong relationship between Emotion and style descriptors and melody length. For example, a Classical piece of music might have a long melody length (that is appropriate for the longer forms of classical music), whereas a Pop piece of music might have a shorter melody length (that is appropriate for the shorter forms of pop music). One important consideration for the melody length is determining where in a sub-phrase the melody starts. The later in a sub-phrase that the melody starts, the shorter it has the potential to be.
[0955] Further, melody sub-phrase length may be unrelated to the emotion and style descriptor inputs and solely in existence to line up the measures and/or beats of the music with certain timing requests. For example, if a piece of music needs to accent a moment in the piece that would otherwise occur somewhere in the middle of a sub-phrase, beginning the melody at this place might then create more musical accent that otherwise would require additional piece manipulation to create.
[0956] Melody Sub-phrase lengths are determined based on the Music Emotion and style descriptors provided by the user. The amount, length, and probability of Melody Sub-phrase lengths are dependent on the Piece length, unique sub-phrases, phrase lengths, and on the knowledge of which combinations of the previously mentioned characteristics best fit together when creating a piece of music.
[0957] The greater amount of melody sub-phrases, the less likely each is to have a very large length. And the fewer amount of melody sub-phrases, the more likely each is to have a very large length.
[0958] Melody Sub-phrases also have to fit within the length of a piece of music and a specific phrase, so as certain melody sub-phrases are decided, future melody sub-phrase decisions and related parameters might be modified to reflect the remaining length that is available.
[0959] Melody Sub-phrases might also be structured around user-requested timing information, so that the music naturally fits the user's request. For example, if a user requests a change in the music that happens to be 3 measures into the piece, the first melody sub-phrase length might be three measures long, caused by a complete 100% probability of the melody sub-phrase length being two measures long.
[0960] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B25 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in Subsystem B26
[0961] There is a strong relationship between Emotion and style descriptors and melody note rhythm. For example, Frantic music is likely to have very short melody note rhythms that change frequently, whereas Reflective music might have very long chord lengths that change much less frequently. The system's rhythm tables are reflections of the cultural connection between a musical experience and/or style and the tonality in which the material is delivered.
[0962] Further, the rhythm of each melody note is dependent upon the rhythms of all previous melody notes; the rhythms of the other melody notes in the same measure, phrase, and sub-phrase; and the melody rhythms of the melody notes that might occur in the future. Each preceding melody notes rhythm determination factors into the decision for a certain melody note's rhythm, so that the second melody note's rhythm is influenced by the first melody note's rhythm, the third melody note's rhythm is influenced by the first and second melody notes' rhythms, and so on.
[0963] Further, the length of each melody note is dependent upon the lengths of all previous melody notes; the lengths of the other melody notes in the same measure, phrase, and sub-phrase; and the lengths of the melody notes that might occur in the future. Each preceding melody note length determination factors into the decision for a certain melody note's length, so that the second melody note's length is influenced by the first melody note's length, the third melody note's length is influenced by the first and second melody notes' lengths, and so on.
[0964] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B26 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B29
[0965] There is a strong relationship between Emotion and style descriptors and the pitch. For example, a Pop piece of music might have pitches that are largely diatonic, whereas an Avant-garde piece of music might have pitches that are agnostic to their relationship with the piece's key or even each other.
[0966] Each pitch of a sub-phrase is dependent upon the pitches of all previous notes; the pitches of the other notes in the same measure, phrase, and sub-phrase; and the pitches of the notes that might occur in the future. Each preceding pitch determination factors into the decision for a certain note's pitch, so that the second note's pitch is influenced by the first note's pitch, the third note's pitch is influenced by the first and second notes' pitches, and so on.
[0967] Additionally, the chord underlying the pitch being selected affects the landscape of possible pitch options. For example, during the time that a C Major chord occurs, consisting of notes C E G, the note pitch would be more likely to select a note from this chord than during the time that a different chord occurs.
[0968] Also, the notes' pitches are encourage to change direction, from either ascending or descending paths, and leap from one note to another, rather than continuing in a step-wise manner.
[0969] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B29 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B30
[0970] There is a strong relationship between Emotion and style descriptors and the pitch frequency. For example, a Moody piece of music might have pitches that are lower in the frequency range, whereas an Energetic piece of music might have pitches that are higher in the frequency range.
[0971] Each pitch frequency of a sub-phrase is dependent upon the pitch frequencies of all previous notes; the pitch frequencies of the other notes in the same measure, phrase, and sub-phrase; and the pitch frequencies of the notes that might occur in the future. Each preceding pitch frequency determination factors into the decision for a certain note's pitch frequency, so that the second note's pitch frequency is influenced by the first note's pitch frequency, the third note's pitch frequency is influenced by the first and second notes' pitch frequencies, and so on.
[0972] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B30 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B39
[0973] There is a strong relationship between Emotion and style descriptors and the instruments that play the music. For example, a Rock piece of music might have guitars, drums, and keyboards, whereas a Classical piece of music might have strings, woodwinds, and brass.
[0974] There is a strong relationship between Emotion and style descriptors and the instrumentation of a musical piece or a section of a musical piece. For example, Pop music might be likely have Guitars, Basses, Keyboards, and Percussion, whereas Classical music might have Strings, Brass, and Woodwinds. Further different types of Pop music or different Musical Emotion and style descriptors might have different types of instruments within each instrument category, so that Driving Pop music might have electric guitars, whereas Calm Pop music might have acoustic guitars.
[0975] Further, while the piece instrumentation will contain all instruments within the piece, all instruments might not always play together all of the time.
[0976] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B39 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters that Populate System Operating Parameter Tables in the Parameter Tables of Subsystem B31
[0977] There is a strong relationship between Emotion and style descriptors and the instruments that play the music. For example, a piece of music orchestrated in a Rock style might have a sound completely different than the same piece of music orchestrated in a Classical style.
[0978] Further, the orchestration of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to effect timing requests. For example, if a piece of music needs to accent a certain moment, regardless of the orchestration thus far, a loud crashing percussion instrument such as a cymbal might successfully accomplish this timing request, lending itself to a more musical orchestration in line with the user requests.
[0979] It is important in orchestration to create a clear hierarchy of each instrument and instrument groups' function in a piece or section of music, as the orchestration of an instrument functioning as the primary melodic instrument might be very different than if it is functioning as an accompaniment. Once the function of an instrument is determined, the manner in which the instrument plays can be determined. For example, a piano accompaniment in a Waltz (in a time signature) might have the Left Hand play every downbeat and the Right Hand play every second and third beat. Once the manner in which an instrument is going to play is determined, the specifics, including the note lengths, can be determined. For example, continuing the previous example, if the Left Hand of the piano plays on the downbeat, it might play for an eighth note or a half note.
[0980] Each note length is dependent upon the note lengths of all previous notes; the note lengths of the other notes in the same measure, phrase, and sub-phrase; and the note lengths of the notes that might occur in the future. Each preceding note length determination factors into the decision for a certain note's length, so that the second note's length is influenced by the first note's length, the third note's length is influenced by the first and second notes' lengths, and so on.
[0981] The dynamics of each instrument should also be determined to create an effective orchestration. The dynamics of an instrument's performance will be ever changing, but are often determined by guiding indications that follow the classical music theory cannon.
[0982] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B31 and used during the automated music composition and generation system of the present invention.
Transforming Musical Experience Parameters into Probabilistic-Based System Operating Parameters Maintained in the Parameter Tables of Subsystem B32
[0983] There is a strong relationship between Emotion and style descriptors and the controller code information that informs how the music is played. For example, a piece of music orchestrated in a Rock style might have a heavy dose of delay and reverb, whereas a Vocalist might incorporate tremolo into the performance.
[0984] Further, the controller code information of the musical piece may be unrelated to the emotion and style descriptor inputs and solely in existence to effect timing requests. For example, if a piece of music needs to accent a certain moment, regardless of the controller code information thus far, a change in the controller code information, such as moving from a consistent delay to no delay at all, might successfully accomplish this timing request, lending itself to a more musical orchestration in line with the user requests.
[0985] The above principles and considerations will be used by the system designer(s) when defining or creating transformational mappings between (i) certain allowable combinations of emotion, style and timing/spatial parameters supplied by the system user(s) to the input output subsystem B0 of the system, and (ii) certain music-theoretic parameters stored in system operating parameter tables that are loaded into subsystem B32 and used during the automated music composition and generation system of the present invention.
Controlling the Timing of Specific Parts of the Automated Music Composition and Generation System of the Present Invention
[0986]
The Nature and Various Possible Formats of the Input and Output Data Signals Supported by the Illustrative Embodiments of the Present Invention
[0987]
[0988]
Specification of the Musical Experience Descriptors Supported by Automated Music Composition and Generation System of the Present Invention
[0989]
[0990]
System Network Tools for Creating and Managing Parameters Configurations Within the Parameter Transformation Engine Subsystem B51 of the Automated Music Composition and Generation System of the Present Invention
[0991]
[0992] These parameter mapping configuration tools are used to configure the Parameter Transformation Engine Subsystem B52 during the system design stage, and thereby program define or set probability parameters in the sets of parameter tables of the system for various possible combinations of system user inputs described herein. More particularly, these system designer tools enable the system designer(s) to define probabilistic relationships between system user selected sets of emotion/style/timing parameters and the music-theoretic system operating parameters (SOP) in the parameter tables that are ultimately distributed to and loaded into the subsystems, prior to execution of the automated music composition and generation process. Such upfront parameter mapping configurations by the system designer imposes constraints on system operation, and the parameter selection mechanisms employed within each subsystem (e.g. random number generator, or user-supplied lyrical or melodic input data sets) used by each subsystem to make local decisions on how a particular parts of a piece of music will be ultimately composed and generated by the system during the automated music composition and generation process of the present invention.
[0993] As shown in
[0994] As shown in
[0995] As shown in
[0996] As shown in
[0997] In general, the number of possible combinations of probability-based SOP tables that will need to be generated for configuring the Parameter Transformation Engine Subsystem B51 with parameter-transformational capacity, will be rather large, and will be dependent on the size of possible emotion-type and style-type musical experience descriptors that may be selected by system users for any given system design deployed in accordance with the principles of the present invention. The scale of such possible combinations has been discussed and modeled hereinabove.
[0998] These tools illustrated in
Using Lyrical and/or Musical Input to Influence the Configuration of the Probability-Based System Operating Parameter Tables Generated in the Parameter Transformation Engine Subsystem B51, and Alternative Methods of Selecting Parameter Values from Probability-Based System Operating Parameter Tables Employed in the Various Subsystems Employed in the System of the Present Invention
[0999] Throughout the illustrative embodiments, a random number generator is shown being used to select parameter values from the various probability-based music-theoretic system operating parameter tables employed in the various subsystems of the automated music composition and generation system of the present invention. It is understood, however, that non-random parameter value selection mechanisms can be used during the automated music composition and generation process. Such mechanisms can be realized globally within the Parameter Transformation Engine Subsystem B51, or locally within each Subsystem employing probability-based parameter tables.
[1000] In the case of global methods, the Parameter Transformation Engine Subsystem B51 (or other dedicated subsystem) can automatically adjust the parameter value weights of certain parameter tables shown in FIGS. 27B3A through 27B3C in response to pitch information automatically extracted from system user supplied lyrical input or musical input (e.g. humming or whistling of a tune) by the pitch and rhythm extraction subsystem B2. In such global methods, a random number generator can be used to select parameter values from the lyrically/musically-skewed parameter tables, or alternative parameter mechanisms such as the lyrical/musical-responsive parameter value section mechanism described below in connection with local methods of implementation.
[1001] In the case of local methods, the Real-Time Pitch Event Analyzing Subsystem B52 employed in the system shown in
[1002] In either method, global or local, from a set of lyrics and/or other input medium(s) (e.g. humming, whistling, tapping etc.), the system of the present invention may use, for example, the Real-Time Pitch Event Analyzing Subsystem B52 in
[1003] It will be helpful to discuss a few types of pitch and rhythmic information which, when extracted from lyrical/musical input by the system user, would typically influence the selection of parameter values in certain parameter tables using a lyrically, or musically, responsive parameter selection mechanism being proposed in this alternative embodiments of the present invention. These case examples will apply to both the global and local methods of implementation discussed above.
[1004] For example, in the event that the input material consists of a high frequency of short and fast rhythmic material, then the rhythmic-related subsystems (i.e. B2, B3, B4, B9, B15, B11, B25, and B26 illustrated in FIGS. 27B3A through 27BC) might be more likely to select 16th and 8th note rhythmic values or other values in the parameter tables that the input material might influence. Consider the following rhythm-related examples: (i) a system user singing a melody with fast and short rhythmic material might cause the probabilities in Subsystem B26 to change and heavily emphasize the sixteenth note and eighth note options; (ii) a system user singing a waltz with a repetitive pattern of 3 equal rhythms might cause the probabilities in Subsystem B4 to change and heavily emphasize the or 6/8 meter options; (iii) a system user singing a song that follows a Verse Chorus Verse form might cause the probabilities in Subsystem B9 to change and heavily emphasize the ABA form option; (iv) a system user singing a melody with a very fast cadence might cause the probabilities in Subsystem B3 to change and heavily emphasize the faster tempo options; and (v) a system user singing a melody with a slowly changing underlying implied harmonic progression might cause the probabilities in Subsystem B11 to change and heavily emphasize the longer chord length options.
[1005] In the event that the input material consists of pitches that comprise a minor key, then the pitch-related subsystems (i.e. B5, B7, B17, B19, B20, B27, B29 and B30 illustrated in FIGS. 27B3A, 27B3B and 27B3C) might be more likely to select a minor key(s) and related minor chords and chord progressions or other values that the inputted material might influence. Consider the following pitch-related examples: (i) a system user singing a melody that follows a minor tonality might cause the probabilities in Subsystem B7 to change and heavily emphasize the Minor tonality options; (ii) a system user singing a melody that centers around the pitch D might cause the probabilities in Subsystem B27 to change and heavily emphasize the D pitch option; (iii) a system user singing a melody that follows an underlying implied harmonic progression centered around E might cause the probabilities in Subsystem B17 to change and heavily emphasize the E root note options; (iv) a system user singing a melody that follows a low pitch range might cause the probabilities in the parameter tables in Subsystem B30 to change and heavily emphasize the lower pitch octave options; and (v) a system user singing a melody that follows an underlying implied harmonic progression centered around the pitches D F# and A might cause the probabilities in Subsystem B5 to change and heavily emphasize the key of D option.
[1006] In the event that the system user input material follows a particular style or employs particular the controller code options, then the instrumentation subsystems B38 and B39 and controller code subsystem B32 illustrated in FIGS. 27B3A, 27B3B and 27B3C, might be more likely to select certain instruments and/or particular controller code options, respectively. Consider the following examples: (i) a system user singing a melody that follows a Pop style might cause the probabilities in Subsystem B39 to change and heavily emphasize the pop instrument options; and (ii) a system user singing a melody that imitates a delay effect might cause the probabilities in Subsystem B32 to change and heavily emphasis the delay and related controller code options.
[1007] Also, in the event that the system user input material follows or imitates particular instruments, and/or methods of playing the same, then the orchestration subsystem B31 illustrated in FIGS. 27B3A, 27B3B and 27B3C might be more likely to select certain orchestration options. Consider the following orchestration-related examples: (i) a system user singing a melody with imitated musical performance(s) of an instrument(s) might cause the probabilities in Subsystem B31 to change and heavily emphasize the orchestration of the piece to reflect the user input; (ii) if a system user is singing an arpeggiated melody, the subsystem B31 might heavily emphasize an arpeggiated or similar orchestration of the piece; (iii) a system user singing a melody with imitated instruments performing different musical functions might cause the probabilities in Subsystem B31 to change and heavily emphasize the musical function selections related to each instrument as imitated by the system user; and (iv) if a system user is alternating between singing a melody in the style of violin and an accompaniment in the style of a guitar, then the Subsystem B31 might heavily emphasize these musical functions for the related or similar instrument(s) of the piece.
Specification of a First Illustrative Embodiment of the GUI-Based System User Interface Subsystem Supported on the Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1008]
[1009] As shown in
[1010]
[1011] As shown in
[1012] As shown in
Specification of a Second Illustrative Embodiment of the GUI-Based System User Interface Subsystem Supported on the Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1013]
[1014] As shown in
[1015]
[1016] As shown in
[1017] As shown in
Specification of a Third Illustrative Embodiment of the GUI-Based System User Interface Subsystem Supported on the Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1018]
[1019] As shown in
[1020]
[1021] As shown in
[1022] As shown in
Specification of a Fourth Illustrative Embodiment of the GUI-Based System User Interface Subsystem Supported on the Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1023]
[1024]
[1025] As shown in
[1026]
[1027] As shown in
Specification of a Fifth Illustrative Embodiment of the GUI-Based System User Interface Subsystem Supported on the Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1028]
[1029] As shown in
Specification of a Sixth Illustrative Embodiment of the GUI-Based System User Interface Subsystem Supported on the Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1030]
[1031] As shown in
[1032]
[1033] As shown in
[1034] As shown in
Specification of a Seventh Illustrative Embodiment of the GUI-Based System User Interface Subsystem Supported on the Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1035]
[1036] As shown in
[1037]
[1038] As shown in
[1039] As shown in
Employing the Automated Music Composition and Generation Engine of the Present Invention in Other Applications
[1040] The Automated Music Composition and Generation Engine of the present invention will have use in many application beyond those described this invention disclosure.
[1041] For example, consider the use case where the system is used to provide indefinitely lasting music or hold music (i.e. streaming music). In this application, the system will be used to create unique music of definite or indefinite length. The system can be configured to convey a set of musical experiences and styles and can react to real-time audio, visual, or textual inputs to modify the music and, by changing the music, work to bring the audio, visual, or textual inputs in line with the desired programmed musical experiences and styles. For example, the system might be used in Hold Music to calm a customer, in a retail store to induce feelings of urgency and need (to further drive sales), or in contextual advertising to better align the music of the advertising with each individual consumer of the content.
[1042] Another use case would be where the system is used to provide live scored music in virtual reality or other social environments, real or imaginary. Here, the system can be configured to convey a set of musical experiences and styles and can react to real-time audio, visual, or textual inputs. In this manner, the system will be able to live score content experiences that do well with a certain level of flexibility in the experience constraints. For example, in a video game, where there are often many different manners in which to play the game and courses by which to advance, the system would be able to accurately create music for the game as it is played, instead of (the traditional method of) relying on pre-created music that loops until certain trigger points are met. The system would also serve well in virtual reality and mixed reality simulations and experiences.
Specification of a Musical Energy Control and Mixing Panel Associated with an Automated Music Composition and Generation System, Generated by the System User Interface Subsystem (B0) on a Touch-Screen Visual Display Screen of a Client Computing System Deployed on an Automated Music Composition and Generation Network of the Present Invention
[1043]
[1044] In some applications, the system user may only need or require a small subset of the possible musical energy quality control parameters {MEQC}.sub.T shown in
[1045] In other applications, the system user may need or require all of the possible musical energy quality control parameters {MEQC}.sub.T shown in
Alternative Methods of Implementing the Automated Music Composition and Generation System of the Present Invention
[1046] While the present invention has been described and specified in great technical detail using systems theory and system theoretic principles in Applicant's Patent Specification, it is understood that many different technologies may be used to practice the present inventions disclosed herein.
[1047] While in the illustrative embodiments, conditional probabilistic (weighted) musical-theoretic system operation parameters (SOPs) are shown in tables and used through to support many of the subsystems and their functions in the system, to provide the variety desired in music composed by automated music composition and generation machines. However, it is understood that in alternative embodiments of the present invention, non-weighted musical-theoretic system operation parameters (SOPs) and supporting methods can be used to carry out the automated music composition and generation process of the present invention.
[1048] In one example of an alternative embodiment of the present invention, during the music composition and generation process, the automated music composition and generation system can support decision trees with partitioned branches, that can be selected within the context of possibilities, based on combinatory logic, rather than using computational procedures based on explicit conditional probabilities maintained in Markov tables, in a manner well known in the art.
[1049] Also, different technologies are available to implement the automated music composition and generation engine (E1) of the present invention including, for example, computer programming languages, databases, music sampling techniques, programming techniques, computing systems, communication networks, visual display technology, and human-machine interface (HMI) technologies.
[1050] When using combinatory logic along the decision tree of the automated music composition and generation process discussed above, the Haskell purely-functional programming language would be preferred, as the Haskell functional programming language is based on combinatory logic, and uses a notation that eliminates the need for quantified variables in mathematical logic, and makes development, implementation and maintenance easier than when using other programming languages.
Modifications of the Illustrative Embodiments of the Present Invention
[1051] The present invention has been described in great detail with reference to the above illustrative embodiments. It is understood, however, that numerous modifications will readily occur to those with ordinary skill in the art having had the benefit of reading the present invention disclosure.
[1052] In alternative embodiments, the automatic music composition and generation system of the present invention can be modified to support the input of conventionally notated musical information such as, for example, notes, chords, pitch, melodies, rhythm, tempo and other qualifies of music, into the system input interface for processing and use in conjunction with other musical experience descriptors provided the system user, in accordance with the principles of the present invention.
[1053] For example, in alternative embodiments of the present invention described hereinabove, the system can be realized a stand-alone appliances, instruments, embedded systems, enterprise-level systems, distributed systems, and as an application embedded within a social communication network, email communication network, SMS messaging network, telecommunication system, and the like. Such alternative system configurations will depend on particular end-user applications and target markets for products and services using the principles and technologies of the present invention.
[1054] While the preferred embodiments disclosed herein have taught the use of virtual-instrument music synthesis to generate acoustically-realized notes, chords, rhythms and other events specified in automated music compositions, in stark contrast with stringing together music loops in a manner characteristic of prior art systems, it is understood that the automated music composition and generation system of the present invention can be modified to adapt the musical score representations generated by the system, and convert this level of system output into MIDI control signals to drive and control one or more groups of MIDI-based musical instruments to produce the automatically composed music for the enjoyment of others. Such automated music composition and generation systems could drive entire groups of MIDI-controlled instruments such as displayed during Pat Metheny's 2010 Orchestrion Project. Such automated music composition and generation systems could be made available in homes and commercial environments as an alternative to commercially available PIANODISC and YAMAHA MIDI-based music generation systems. Such alternative embodiments of the present inventions are embraced by the systems and models disclosed herein and fall within the scope and spirit of the present invention.
[1055] These and all other such modifications and variations are deemed to be within the scope and spirit of the present invention as defined by the accompanying Claims to Invention.