Claims
- 1. A general purpose computer-based system for generating musical information including at least one computer memory, said system comprising:
- a set of data items stored in said at least one computer memory, said data items representing a characteristic of said musical information;
- a pool indicating a plurality of said data items, each of said data items being independently selectable to appear within said pool;
- a random number generator for generating a random number;
- a weighting module for weighting said random number according to a mathematical function; and
- a processor for selecting a data item within said pool using said weighted random number, said data item being used in generating said musical information.
- 2. The system of claim 1 wherein said mathematical function is a logarithmic function.
- 3. The system of claim 1 wherein said mathematical function is an exponential function.
- 4. The system of claim 1 wherein said mathematical function weights some of said data items within said pool with a zero probability such that said processor selects said data item from a subset of said pool.
- 5. The system of claim 1 wherein said weighting module includes a lookup table stored in said at least one computer memory, said mathematical function being stored within said lookup table.
- 6. The system of claim 1 wherein said random number generator comprises a pseudo-random number generator, said pseudo-random number generator having a seed, said seed causing said pseudo random number generator to generate a specific sequence of random numbers.
- 7. The system of claim 6 wherein said seed is selected by a system user from a plurality of seeds stored in said at least one computer memory.
- 8. The system of claim 6 further comprising a reset module for reseeding said pseudo-random number generator with said seed so as to cause said pseudo-random number generator to repetitively generate said specific sequence of random numbers.
- 9. The system of claim 1 wherein said musical characteristic is rhythm and said data items comprise rhythm values.
- 10. The system of claim 1 wherein said musical characteristic is duration and said data items comprise duration values.
- 11. The system of claim 1 wherein said musical characteristic is pitch and said data items comprise pitch values.
- 12. The system of claim 1 wherein said musical characteristic is percussive sounds and said data items comprise percussion instrument identifiers.
- 13. The system of claim 1 wherein said musical characteristic is amplitude and said data items comprise velocity values.
- 14. The system of claim 1 wherein said musical characteristic is spatial location and said data items comprise spatial location values.
- 15. The system of claim 1 wherein said musical characteristic is musical instrument sounds and said data items comprise voice change values.
- 16. The system of claim 1 wherein said musical characteristic is a pitch offset of a note and said data items comprise pitch bend values.
- 17. The system of claim 1 wherein said musical characteristic is a MIDI controlled characteristic and said data items comprise MIDI control values.
- 18. The system of claim 1 wherein said musical characteristic is audio sound and said data items comprise digital audio samples.
- 19. The system of claim 1 further comprising notes to be output, wherein said musical characteristic is a number of notes to be output and said data items comprise cluster values.
- 20. The system of claim 1 further comprising notes to be output, wherein said musical characteristic is an output note order and said data items comprise strum values.
- 21. The system of claim 20 wherein said musical characteristic is further defined by a temporal separation between said notes to be output and said set of data items further comprises temporal separation values.
- 22. The system of claim 1 wherein said musical characteristic is pitch transposition and said set of data items comprises transposition values.
- 23. The system of claim 1 further comprising:
- a plurality of said pools, each of said pools capable of indicating a different plurality of said data items within said set of data items; and
- an index stored in said at least one computer memory, said index indicating one of said pools as a current pool from which said processor selects said data item.
- 24. The system of claim 23 further comprising a user control for advancing said index to a next pool.
- 25. The system of claim 23 wherein said processor advances said index to a next pool.
- 26. The system of claim 23 further comprising a poly mode flag for indicating that all of said data items within said current pool, including said data item selected using said weighted random number, are to be selected by said processor for use in generating said musical information.
- 27. The system of claim 1 further comprising:
- a plurality of said pools, each of said pools capable of indicating a different plurality of said data items within said set of data items, each of said pools being included within a step;
- a step not including one of said pools and including a single data item independently selected to appear within said step;
- a sequence of said steps indicating a progression in generating said musical information; and
- an index stored in said at least one computer memory, said index indicating one of said steps as a current step, said processor selecting said data item from said pool when said current step contains a pool, said processor selecting said single data item when said current step includes said single data item.
- 28. The system of claim 27, further comprising a user control for advancing said index to a next step.
- 29. The system of claim 27 wherein said processor advances said index to a next step.
- 30. The system of claim 27 further comprising a poly mode flag for indicating that all of said data items within said pool within said current step, including said data item selected using said weighted random number, are to be selected by said processor for use in generating said musical information when said current step contains a pool.
- 31. The system of claim 1 further comprising:
- a plurality of said sets of data items stored in said at least one computer memory, each of said sets containing data items representing a different characteristic of said musical information, each of said sets being associated with a pattern;
- a plurality of said pools, each of said patterns including one of said pools, each of said pools capable of indicating a different plurality of said data items associated with said pattern; and
- a plurality of indices stored in said at least one computer memory, each of said indices associated with one of said patterns and indicating a current pool within said pattern from which said processor selects said data item.
- 32. The system of claim 31 wherein one of said sets of data items comprises index movement values and said patterns include an index pattern associated with said set of index movement values, said data item selected by said processor being from said current pool of said index pattern, said processor advancing one of said indices to a next pool according to said selected data item.
- 33. The system of claim 31 wherein one of said sets of data items comprises cluster values indicating a quantity of pools within one of said patterns and said patterns include a cluster pattern associated with said set of cluster values, said data item selected by said processor being from said current pool of said cluster pattern, said processor selecting a plurality of data items from said quantity of pools according to said selected data item.
- 34. The system of claim 1 further comprising an always flag indicating an additional data item within said pool to be selected by said processor for use in generating said musical information with said data item selected using said weighted random number.
- 35. The system of claim 1 further comprising a null data item indicating an absence of musical information, said null data item also being independently selectable to appear within said pool, said generation of musical information being suppressed upon selection of said null data item by said processor using said weighted random number.
- 36. The system of claim 35 wherein said musical characteristic is pitch and said set of data items comprises pitch values.
- 37. The system of claim 1 wherein said system generates an additional weighted random number, said system further comprising:
- a null data item indicating an absence of musical information, said additional weighted random number being used by said processor to select between said null data item and said data item selected using said weighted random number, said generation of musical information being suppressed upon selection of said null data item by said processor using said additional weighted random number.
- 38. A method for generating musical information using a general purpose computer-based system having at least one computer memory, said method comprising:
- storing a set of data items in said at least one computer memory, said data items representing a characteristic of said musical information;
- selecting a plurality of said data items to comprise a pool, each of said data items being independently selectable to appear within said pool;
- generating a random number;
- weighting said random number according to a mathematical function;
- selecting one of said data items within said pool according to said weighted random number, and generating said musical information using said selected data item.
- 39. The method of claim 38 wherein said system further comprises a processor and said step of selecting one of said data items within said pool is performed by said processor.
- 40. The method of claim 38 wherein said weighting step includes assigning a zero probability of selection to one of said data items within said pool.
- 41. The method of claim 38 further comprising:
- storing a lookup table in said at least one computer memory, and
- storing said mathematical function within said lookup table.
- 42. The method of claim 38 wherein said random number generator comprises a pseudo random number generator, the method further comprising:
- seeding said pseudo random number generator with a seed, and
- generating a sequence of musical information based on said seed.
- 43. The method of claim 42 further comprising:
- storing a plurality of seeds in said at least one computer memory; and
- selecting said seed for seeding said pseudo random number generator from said plurality of seeds.
- 44. The method of claim 42 further comprising reseeding said pseudo random number generator with said seed so as to repetitively generate said sequence of musical information.
- 45. The method of claim 44 wherein said reseeding is repeatedly performed at specific musical time intervals.
- 46. The method of claim 38 wherein said step of generating musical information includes specifying a musical rhythm according to said selected data item.
- 47. The method of claim 38 wherein said step of generating musical information includes specifying a note pitch according to said selected data item.
- 48. The method of claim 38 wherein said step of generating musical information includes specifying a note duration according to said selected data item.
- 49. The method of claim 38 wherein said step of generating musical information includes specifying a percussive sound according to said selected data item.
- 50. The method of claim 38 wherein said step of generating musical information includes specifying a note velocity according to said selected data item.
- 51. The method of claim 38 wherein said step of generating musical information includes specifying a spatial location according to said selected data item.
- 52. The method of claim 38 wherein said step of generating musical information includes specifying an instrument voice according to said selected data item.
- 53. The method of claim 38 wherein said step of generating musical information includes bending a pitch of a note according to said selected data item.
- 54. The method of claim 38 wherein said step of generating musical information includes varying a MIDI controllable characteristic according to said selected data item.
- 55. The method of claim 38 wherein said data items comprise digital audio samples and said step of generating musical information includes producing an audio sound according to said selected data item.
- 56. The method of claim 38 wherein said system includes notes to be output and said method further includes outputting a number of said notes according to said selected data item.
- 57. The method of claim 38 wherein said system includes notes to be output and said method further includes outputting a number of said notes in a specific order according to said selected data item.
- 58. The method of claim 57 wherein said step of outputting further includes separating said output notes with a time interval according to said selected data item.
- 59. The method of claim 38 wherein said step of generating musical information includes transposing a pitch of a note according to said selected data item.
- 60. The method of claim 38 further including selecting all of said data items within said pool according to a poly mode flag.
- 61. The method of claim 38 wherein said step of selecting a plurality of said data items is performed repeatedly to create a plurality of said pools, each of said pools capable of indicating a different plurality of said data items within said set of data items, said method further comprising:
- storing an index within said at least one computer memory;
- indicating with said index one of said plurality of pools as a current pool from which said data item is selected according to said weighted random number, and
- advancing said index to indicate a next pool.
- 62. The method of claim 61 wherein said step of advancing said index to indicate a next step is performed with a user-operated control.
- 63. The method of claim 61 wherein said system further comprises a processor and said step of advancing said index to indicate a next step is performed by said processor.
- 64. The method of claim 38 wherein said step of selecting a plurality of said data items is performed repeatedly to create a plurality of said pools, each of said pools capable of indicating a different plurality of said data items within said set of data items, a plurality of steps indicating a progression in generating said musical information, said method further comprising:
- associating each of said pools with one of said steps;
- selecting one of said data items as an unpooled data item to appear within one of said steps not including a pool;
- storing an index in said at least one computer memory;
- indicating with said index one of said steps as a current step from which said data item is selected according to said weighted random number when said step contains a pool and said unpooled data item is selected when said current step does not contain a pool, and
- advancing said index to indicate a next step.
- 65. The method of claim 64 wherein said step of advancing said index to indicate a next step is performed with a user-operated control.
- 66. The method of claim 64 wherein said system further comprises a processor and said step of advancing said index to indicate a next step is performed by said processor.
- 67. The method of claim 38 wherein said computer-based system further comprises a plurality of said sets of data items, each set of data items representing a different characteristic of said musical information, and wherein said steps of storing said data items and selecting a plurality of said data items are repeatedly performed to create a plurality of said pools, each of said pools capable of indicating a different plurality of said data items within said plurality of sets of data items, said method further comprising:
- associating each of said sets of data items with a pattern;
- associating each of said pools with one pattern step of each pattern, said pattern steps indicating a progression in generating said musical information;
- storing an index within said at least one computer memory;
- indicating with said index one of said plurality of pools as a current pool from which said data item is selected, and
- advancing said index to indicate a next pool.
- 68. The method of claim 67 wherein one of said sets contains data items comprising index movement values, said step of advancing said index to indicate a next pool being performed according to an index movement value when said index movement value is said selected data item.
- 69. The method of claim 67 wherein said computer-based system comprises a plurality of said indices, said method further comprising:
- associating each of said indices with a different one of said patterns, each of said associated indices indicating a current pool within said associated pattern from which said data item is selected.
- 70. The method of claim 69 wherein said steps of generating and weighting said random number are performed repeatedly and said step of selecting one of said data items is performed repeatedly so as to select one data item from each of said current pools according to a different one of said weighted random numbers.
- 71. The method of claim 38 further comprising selecting an additional data item within said pool according to an always flag, said always flag indicating that said additional data item and said selected data item are both used in generating said musical information.
- 72. The method of claim 38 wherein one of said data items within said pool is a null data item, said null data item indicating that no musical information is generated when selected according to said weighted random number.
- 73. The method of claim 38 wherein and said steps of generating and weighting said random number are repeated to generate an additional weighted random number, said method further comprising:
- storing a null data item in said at least one computer memory, said null data item indicating that no musical information is generated when selected; and
- selecting one of said null data item or said selected data item according to said additional weighted random number.
- 74. A computer-readable media for storing instructions for generating musical output data comprising instructions for:
- storing a set of data items in at least one computer memory, said data items representing a characteristic of said musical information;
- selecting a plurality of said data items to comprise a pool, each of said data items being independently selectable to appear within said pool;
- generating a random number;
- weighting said random number according to a mathematical function;
- selecting one of said data items within said pool according to said weighted random number, and
- generating said musical information using said selected data item.
CROSS-REFERENCES TO RELATED APPLICATIONS
This application claims benefit of U.S. Provisional Patent Application Ser. No. 60/072,919 which was filed on Jan. 28, 1998, the disclosure of which is incorporated by reference herein.
This application relates to Disclosure Document No. 402249, received by the United States Patent and Trademark Office on Jul. 9, 1996, and Disclosure Document No. 414040, received by the United States Patent and Trademark Office on Feb. 13, 1997.
US Referenced Citations (40)
Non-Patent Literature Citations (2)
Entry |
M and Jam Factory, David Zicarelli, Computer Music Journal, vol. 11, No. 4, Winter 1987. |
M--The Intelligent Composing and Performing System, Software Operator's Manual, David Zicarelli, et al., Version 2.5, Aug. 1997. |