Music composition

A music composition system, comprising receiving a first harmony including a first melody, analyzing the first harmony to derive in real-time a rule relating the first melody to the first harmony, receiving a second melody, and applying the rule in real-time to the second melody to produce a second harmony relating to the second melody.

Skip to:  ·  Claims  ·  References Cited  · Patent History  ·  Patent History

Claims

1. A method of composing music, comprising:

receiving a first series of musical notes defining a first melody having a first harmony;
analyzing the first harmony within the first melody, by forming examples from the first series of musical notes, and deriving, in real-time, at least first and second rules relating to the first melody, the second rule conflicting with the first rule, and each of said first and second rules including a weight associated therewith;
receiving additional notes of said melody and forming additional examples from said additional notes;
determining ones of said additional examples that agree with said first rule and increasing a weight of said first rule when an example agrees with said first rule, and determining ones of said additional examples that agree with said second rule and increasing a weight of said second rule when an example agrees with said second rule;
receiving another melody to which a harmony is to be formed;
evaluating said another melody using both of said first and second rules; and
when both said first and second rules each apply to said another melody, applying the one of said rules which has the higher weight to said melody, in real-time.

2. A method of analyzing musical information, comprising:

converting the musical information from MIDI format to figured bass format;
generating an example table from the figured bass musical information;
determining a plurality of rules, each rule determined from two distinct examples within said example table, which are different than one another, one property of each rule relating to statistics of musical information in the examples; and
applying filtering, segmentation, and subsumption pruning to the rule; and
generating dependency data using the rule.

3. A method of analyzing musical information, comprising:

converting the musical information from MIDI format to figured bass format;
generating an example table from the figured bass musical information;
determining a plurality of rules, each rule determined from two distinct examples within said example table, which are different than one another, one property of each rule relating to statistics of musical information in the examples;
wherein said determining a rule using the example table comprises
calculating a hash value for an example;
forming a preliminary rule linking the hash value to an attribute to be inferenced; and
subjecting the preliminary rule to a quality test.

4. The method of claim 3, further comprising:

calculating hash values for a plurality of examples; and
wherein the subjecting comprises rejecting the preliminary rule if an insufficient quantity of examples correspond to the preliminary rule's hash value.

5. The method of claim 3, further comprising:

calculating hash values for a plurality of examples; and
the quality test comprises rejecting the preliminary rule if the preliminary rule's hash value corresponds to an insufficient quantity of examples having a particular value of the attribute to be inferenced.

6. The method of claim 3 further comprising

calculating a J-measure for the preliminary rule, wherein
the quality test comprises rejecting the preliminary rule if the preliminary rule's J-measure is insufficient.

7. The method of claim 2 wherein the rule is filtered out if the rule disregards a current melody note in determining a chord function.

8. The method of claim 2 further comprising

deriving a plurality of rules;
organizing the rules in a rulebase; and
segmenting the rulebase into a plurality of new rulebases; wherein
a first new rulebase includes rules having a desired attribute; and
a second new rulebase includes rules lacking the desired attribute.

9. A method of producing a database of rules for producing musical sounds, comprising:

using first musical sounds as examples to derive a plurality of rules;
organizing the rules in a rulebase; and
removing a first rule from the rulebase if:
the first rule and a second rule predict a same value of a same attribute,
the first rule has more attributes than the second rule,
all of the attributes of the first rule are present with substantially the same values in the second rule, and
the second rule is correct at least as often as the first rule.

10. The method of claim 9 further comprising

determining that two rules are dependent if both rules are activated in at least half of the instances in which at least one of the two rules is activated.

11. A music composition system comprising

an analyzer receiving a first harmony including a first melody and deriving in real-time a first rule relating the first melody to the first harmony and a weight for the first rule based on statistical information in the first melody and first harmony, wherein the analyzer derives a second rule in real-time relating the first melody to first harmony and a weight for the first rule based on statistical information, the second rule conflicting with the first rule; and
a harmonizer receiving a second melody and applying the first rule in real-time to the second melody to produce a second harmony relating to the second melody,
said harmonizer comparing the first rule to the second rule and determining which of said rules to use based on said weights.

12. A method of converting musical information of a musical piece from MIDI format to figured bass format, comprising

transposing the musical piece to a standard key;
segmenting the transposed musical piece into chords by beginning a new chord whenever a voice changes pitch;
attempting to match each chord with a known chord to produce identified chords each having a root and a type;
determining a position for each voice of each identified chord by comparing each voice's pitch with pitches allowed in the voice's matching known chord; and
attempting to match each identified chord with a known function by comparing each identified chord's root and type with a table of common functions.

13. A musical information analyzer, comprising

a converter receiving musical information in MIDI format and producing musical information in figured bass format;
a table generator deriving an example table from the figured bass musical information; and
a rule generator, determining a plurality of rules, each rule determined from the two distinct examples which are different than one another, one property of each rule relating to statistics of musical information in the examples;
a filter applying filtering to the rule;
a rule segmenter applying segmentation to the rule;
a pruner applying subsumption pruning to the rule; and
a dependence analyzer generating dependence data using the rule.

14. A musical information analyzer, comprising

a converter receiving musical information in MIDI format and producing musical information in figured bass format;
a table generator deriving an example table from the figured bass musical information; and
a rule generator, determining a plurality of rules, each rule determined from the two distinct examples which are different than one another, one property of each rule relating to statistics of musical information in the examples;
wherein the rule generator comprises
a hash calculator calculating a hash value for an example;
a preliminary rule generator forming a preliminary rule linking the hash value to an attribute to be inferenced; and
a tester subjecting the preliminary rule to a quality test.

15. The analyzer of claim 14, wherein

the hash calculator calculates hash values for a plurality of examples; and
the quality test comprises rejecting the preliminary rule if an insufficient quantity of examples correspond to the preliminary rule's hash value.

16. The analyzer of claim 14, wherein

the hash calculator calculates hash values for a plurality of examples; and
the quality test comprises rejecting the preliminary rule if the preliminary rule's hash value corresponds to an insufficient quantity of examples having a particular value of the attribute to be inferenced.

17. The analyzer of claim 14 further comprising

a J-measure calculator calculating a J-measure for the preliminary rule, wherein
the quality test comprises rejecting the preliminary rule if the preliminary rule's J-measure is insufficient.

18. The analyzer of claim 13 wherein the filter removes the rule if the rule disregards a current melody note in determining a chord function.

19. The analyzer of claim 13 wherein

the rule generator derives a plurality of rules;
a rule organizer organizes the rules in a rule base; and
the rule segmenter segments the rule base into a plurality of new rule bases; wherein
a first new rule base contains rules having a desired attribute; and
a second new rule base contains rules lacking the desired attribute.

20. The analyzer of claim 13 wherein:

the rule generator derives a plurality of rules;
a rule organizer organizes the rules in a rulebase; and
the pruner removes a first rule from the rulebase if:
the first rule and a second rule predict a same value of a same attribute,
the second rule has more attributes than the first rule,
all of the attributes of the first rule are present with the same values in the second rule, and
the second rule is correct at least as often as the first rule.

21. The analyzer of claim 13 wherein

the rule generator derives a plurality of rules; and
the dependence analyzer determines that two rules are dependent if said two rules are activated in at least half of the instances in which at least one of the two rules is activated.

22. A system which converts musical information of a musical piece from MIDI format to figured bass format, comprising

a key transposer transposing the musical piece to a standard key;
a segmenter segmenting the transposed musical piece into chords by beginning a new chord whenever a voice changes pitch;
a chord matcher attempting to match each chord with a known chord to produce identified chords each having a root and a type;
a position determiner determining a position for each voice of each identified chord by comparing each voice's pitch with pitches allowed in the voice's matching known chord; and
a function matcher attempting to match each identified chord with a known function by comparing each identified chord's root and type with a table of common functions.

23. A method of composing music, comprising:

obtaining a sample of music whose style is to be analyzed;
producing a plurality of examples from said sample of music;
generating a plurality of rules from the plurality of examples, said rules predicting certain examples which follow other examples, and each said rule including weights associated therewith, said weights defining a statistical likelihood that said rule will be followed,
increasing a weight of a rule when a particular example agrees with the rule; and
decreasing a weight of the rule when a particular example does not agree with the rule.

24. A method as in claim 23 further comprising:

storing all of said rules into a rulebase;
obtaining a melody which is to be analyzed using said rules in said rulebase; and
analyzing said melody using all of said rules in said rulebase, by using said melody to fire all rules in said rulebase which are applicable to said melody, evaluating a result of firing of said rules, and resolving conflicts between conflicting rules based on said weights associated with the conflicting rules.

25. A method as in claim 24 wherein said rules relate to harmonies that are derived from melodies, and further comprising:

presenting a harmony produced by a particular rule to an operator who can determine if said harmony is desirable;
accepting an input from said operator indicating if said harmony is desirable;
increasing the weight for the particular rule if the harmony is desirable and decreasing the weight for the particular rule if the policy is not desirable.

26. A method of generating rules from a musical piece, comprising:

obtaining musical information;
converting said musical information to examples;
determining a minimum number parameter, indicating a minimum number of agreements before a rule can be formed;
comparing said examples to generate a prediction of attributes that will follow one another;
determining if each said prediction has occurred before within said set of examples by a number of times having a predetermined relationship with said minimum number parameter;
establishing a rule of the form "If (a) Then (b)" if said prediction has occurred said number of times having said predetermined relationship with said minimum number parameter; and
establishing a weight associated with said rule, said weight indicative of a number of times that (a) correctly predicts (b).

27. A method as in claim 30 wherein said rule is of the form "if attribute (A1) and attribute (A2) Then attribute (B3)" correct X percent of the time, where x is the percentage of times that attributes (A1) and (A2) predict attribute (B3).

28. A method as in claim 27, further comprising ordering said database in a way that improves use of said rules.

29. A method as in claim 28, wherein said ordering comprises

determining a certain attribute which is important for a current application; and
filtering the plurality of rules to prevent rules from being used which do not use that attribute.

30. A method as in claim 29 wherein said attribute is a rule which disregards a current melody note in determining a current chord function.

31. A method as in claim 28, wherein said ordering comprises

determining a desired attribute for a desired application;
grouping the plurality of rules based on whether they include that desired attribute;
placing rules which include the desired attribute in a first segmented rulebase, and placing rules which do not include the desired attribute into a second unsegmented rulebase.

32. A method as in claim 31 further comprising:

obtaining a musical melody to be applied to said database;
first checking said segmented rulebase to determine if rules in said segmented rulebase meet a predetermined criteria and if so, using only the rules in said segmented rulebase; and
if no rules meet the predetermined criteria, using the rules in said unsegmented rulebase.

33. A method as in claim 32 wherein the predetermined criteria is whether a rule has fired.

34. A method as in claim 23, further comprising analyzing the rules to determine rules which are depending with other rules; and

removing at least some of the dependent rules.

35. A method as in claim 34 wherein said analyzing comprises:

finding at least two rules which produce a same result;
determining a set of examples for which each rule fires;
determining an overlap for which both rules fire; and
determining a percentage of dependence between the rules.

36. A method of composing music, comprising:

obtaining a sample of music whose style is to be analyzed;
producing a plurality of examples from said sample of music;
generating a plurality of rules from the plurality of examples, said rules predicting certain examples which follow other examples, and each said rule including weights associated therewith, said weights defining a statistical likelihood that said rule will be followed;
storing all of said rules into a rulebase;
analyzing a melody which using said rules in said rulebase to form a harmony accompanying said melody to provide an accompaniment to said melody according to said rulebase;
listening to said accompaniment; and
either taking no action based on said accompaniment in which case a weight which produced the harmony is unchanged, taking an action to indicate dislike of the result in which case said weight which produced the harmony is decreased, or taking an action to indicate like of the result in which case said weight is increased.

37. A method as in claim 36 wherein said increase in weight is by 0.01.

38. A method as in claim 1, wherein said first and second rules are increased in weight each time an example agrees.

39. A method as in claim 1, wherein there are more than two rules formed by said analyzing, said more than two rules form a rulebase, and wherein all of said rules in said rulebase are evaluated during said evaluating.

40. A system as in claim 11, wherein there are more than two rules formed by said analyzer, said more than two rules form a rulebase, and wherein all of said rules in said rulebase are evaluated by said analyzer.

41. A method of composing music, comprising:

obtaining a sample of music whose style is to be analyzed;
producing a plurality of examples from said sample of music;
generating a plurality of rules from the plurality of examples, said rules predicting certain examples which follow other examples, and each said rule including weights associated therewith, said weights defining a statistical likelihood that said rule will be followed;
storing all of said rules into a rulebase;
using said rulebase to analyze another melody, by evaluating taking all of the plurality of rules in the rulebase in parallel and then resolves any conflicts between rules based on the rule weights.
Referenced Cited
U.S. Patent Documents
4951544 August 28, 1990 Minamitaka
4982643 January 8, 1991 Minamitaka
5218153 June 8, 1993 Minamitaka
5302777 April 12, 1994 Okuda et al.
5308915 May 3, 1994 Ohya et al.
5396828 March 14, 1995 Farrand
5418323 May 23, 1995 Kohonen
5496962 March 5, 1996 Meier et al.
Patent History
Patent number: 5736666
Type: Grant
Filed: Mar 20, 1996
Date of Patent: Apr 7, 1998
Assignee: California Institute of Technology (Pasadena, CA)
Inventors: Rodney M. Goodman (Altadena, CA), Randall R. Spangler (Pasadena, CA)
Primary Examiner: John W. Cabeca
Assistant Examiner: Marlon T. Fletcher
Law Firm: Fish & Richardson P.C.
Application Number: 8/618,906
Classifications
Current U.S. Class: Chords (84/669); Note Sequence (84/649); Accompaniment (e.g., Chords, Etc.) (84/650); Accompaniment (84/634); Chords (84/637); Filtering (84/DIG9)
International Classification: G10H 100; G10H 138; G10H 112;