Claims
- 1. A general purpose computer-based system for generating musical output data having at least one computer memory, said system comprising:
- an initial note series stored in said at least one computer memory;
- an altered note series derived from said initial note series, said altered note series stored in said at least one computer memory and having an altered note series index indicating a current altered note;
- an index pattern stored in said at least one computer memory having a plurality of index pattern steps, each of said index pattern steps having an index data item representing a movement of said altered note series index between two notes within said altered note series, said index pattern having an index pattern index indicating a current index pattern step, said current index pattern step having a current index data item, and
- a processor for outputting said current altered note according to a rhythm value representing an interval of time, said processor advancing said altered note series index to a next altered note according to said current index data item and advancing said index pattern index to a next index pattern step.
- 2. A general purpose computer-based system for generating musical output data having at least one computer memory, said system comprising:
- a note series stored in said at least one computer memory, said note series having a note series index indicating a current note;
- an index pattern stored in said at least one computer memory having a plurality of index pattern steps, each of said index pattern steps having an index data item representing a movement of said note series index between said current note and a next note within said note series, said index pattern having an index pattern index indicating a current index pattern step, said current index pattern step having a current index data item, and
- a processor for deriving a current altered note from said current note, said processor outputting said current altered note according to a rhythm value representing an interval of time, said processor advancing said note series index to said next note according to said current index data item and advancing said index pattern index to a next index pattern step.
- 3. A general purpose computer-based system for generating musical output data having at least one computer memory, said system comprising:
- a plurality of musical data items stored in said at least one computer memory, said plurality of musical data items having a musical data index indicating a current musical data item;
- an index pattern stored in said at least one computer memory having a plurality of index pattern steps, each of said index pattern steps having an index data item representing a movement of said musical data index between said current musical data item and a next musical data item within said plurality of musical data items, said index pattern having an index pattern index indicating a current index pattern step, said current index pattern step having a current index data item, and
- a processor for outputting said current musical data item according to a rhythm value representing an interval of time, said processor advancing said musical data index to said next musical data item according to said current index data item and advancing said index pattern index to a next index pattern step.
- 4. The system of claim 3 wherein said musical data items represent digital audio samples.
- 5. The system of claim 3 wherein said musical data items represent MIDI data values.
- 6. The system of claim 5 wherein said MIDI data values represent a spatial location value.
- 7. The system of claim 5 wherein said MIDI data values represent pitch values.
- 8. The system of claim 3 wherein said plurality of musical data items includes a null data item, said null data item indicating an absence of musical output data.
- 9. The system of claim 3 further comprising a cluster value representing at least one additional musical data item to be output by said processor with said current musical data item.
- 10. The system of claim 9 further comprising:
- a cluster pattern stored in said at least one computer memory having a plurality of cluster pattern steps, each of said cluster pattern steps having a cluster data item, said cluster pattern having a cluster pattern index indicating a current cluster pattern step, said cluster value being derived from said cluster data item in said current cluster pattern step, said processor also advancing said cluster pattern index to a next cluster pattern step.
- 11. The system of claim 1, 2 or 3 further comprising:
- a rhythm pattern stored in said at least one computer memory having a plurality of rhythm pattern steps, each of said rhythm pattern steps having a rhythm data item, said rhythm pattern having a rhythm pattern index indicating a current rhythm pattern step, said rhythm value being derived from said rhythm data item in said current rhythm pattern step, said processor also advancing said rhythm pattern index to a next rhythm pattern step.
- 12. The system of claim 1, 2 or 3 wherein said interval of time is a constant.
- 13. The system of claim 1, 2 or 3 wherein said interval of time represents a musical time interval related to a tempo.
- 14. The system of claim 1, 2 or 3 further comprising a clock generator for generating clock cycles, said interval of time representing a number of said clock cycles.
- 15. The system of claim 14 wherein said clock generator comprises a user-operated control.
- 16. The system of claim 1 further comprising a selector for selecting said initial note series from a plurality of input note sets.
- 17. The system of claim 2 further comprising a selector for selecting said note series from a plurality of input note sets.
- 18. The system of claim 16 or 17 wherein said selection is performed according to a chord determination from an input note source.
- 19. The system of claim 16 or 17 wherein said selection is performed according to a user-operated control.
- 20. The system of claim 1 further comprising a collector for collecting said initial note series from an input note source.
- 21. The system of claim 2 further comprising a collector for collecting said note series from an input note source.
- 22. The system of claim 20 or 21 wherein said collection is performed for an interval of time.
- 23. The system of claim 20 or 21 wherein said collection is performed at a specific instant in time.
- 24. The system of claim 20 or 21 wherein said input note source provides MIDI data.
- 25. The system of claim 20 or 21 wherein said input note source provides digital audio data.
- 26. The system of claim 20 or 21 wherein said input note source is an electronic musical instrument.
- 27. The system of claim 1 wherein said altered note series is derived from said initial note series in real-time.
- 28. The system of claim 1 further comprising a cluster value representing at least one additional note within said altered note series to be output by said processor with said current altered note.
- 29. The system of claim 2 further comprising a cluster value representing at least one additional note within said note series, said processor deriving an additional altered note from said additional note, said processor outputting said additional altered note with said current altered note.
- 30. The system of claim 28 or 29 further comprising:
- a cluster pattern stored in said at least one computer memory having a plurality of cluster pattern steps, each of said cluster pattern steps having a cluster data item, said cluster pattern having a cluster pattern index indicating a current cluster pattern step, said cluster value being derived from said cluster data item in said current cluster pattern step, said processor also advancing said cluster pattern index to a next cluster pattern step.
- 31. The system of claim 28 further comprising a strum value representing an order in which said at least one additional note and said current altered note are output.
- 32. The system of claim 31 further comprising:
- a strum pattern stored in said at least one computer memory having a plurality of strum pattern steps, each of said strum pattern steps having a strum data item, said strum pattern having a strum pattern index indicating a current strum pattern step, said strum value being derived from said strum data item in said current strum pattern step, said processor also advancing said strum pattern index to a next strum pattern step.
- 33. The system of claim 31 further comprising a strum separation value representing a time interval between each output of said at least one additional note and said current altered note.
- 34. The system of claim 1 or 2 further comprising a duration value representing a duration over which said processor outputs said current altered note.
- 35. The system of claim 34 further comprising:
- a duration pattern stored in said at least one computer memory having a plurality of duration pattern steps, each of said duration pattern steps having a duration data item, said duration pattern having a duration pattern index indicating a current duration pattern step, said duration value being derived from said duration data item in said current duration pattern step, said processor also advancing said duration pattern index to a next duration pattern step.
- 36. The system of claim 1 or 2 further comprising a MIDI data value, said processor outputting said MIDI data value with said current altered note.
- 37. The system of claim 36 wherein said MIDI data value represents a spatial location value.
- 38. The system of claim 36 wherein said MIDI data value represents a resonance value.
- 39. The system of claim 36 further comprising:
- a MIDI data pattern stored in said at least one computer memory having a plurality of MIDI data pattern steps, each of said MIDI data pattern steps having a MIDI data item, said MIDI data pattern having a MIDI data pattern index indicating a current MIDI data pattern step, said MIDI data value being derived from said MIDI data item in said current MIDI data pattern step, said processor also advancing said MIDI data pattern index to a next MIDI data pattern step.
- 40. The system of claim 1 or 2 further comprising a velocity value representing an amplitude with which said processor outputs said current altered note.
- 41. The system of claim 40 further comprising:
- a velocity pattern stored in said at least one computer memory having a plurality of velocity pattern steps, each of said velocity pattern steps having a velocity data item, said velocity pattern having a velocity pattern index indicating a current velocity pattern step, said velocity value being derived from said velocity data item in said current velocity pattern step, said processor also advancing said velocity pattern index to a next velocity pattern step.
- 42. The system of claim 1 wherein said notes of said altered note series include data representing an initial velocity, said system further comprising:
- a velocity modifier representing a change to said initial velocity, said initial velocity together with said velocity modifier representing an amplitude with which said processor outputs said current altered note.
- 43. The system of claim 2 wherein said notes of said note series include data representing an initial velocity, said system further comprising:
- a velocity modifier representing a change to said initial velocity, said initial velocity together with said velocity modifier representing an amplitude with which said processor outputs said current altered note.
- 44. The system of claim 42 or 43 further comprising:
- a velocity pattern stored in said at least one computer memory having a plurality of velocity pattern steps, each of said velocity pattern steps having a velocity data item, said velocity pattern having a velocity pattern index indicating a current velocity pattern step, said velocity modifier being derived from said velocity data item in said current velocity pattern step, said processor also advancing said velocity pattern index to a next velocity pattern step.
- 45. The system of claim 1 wherein said notes of said initial note series include data representing pitch, said system further comprising:
- a plurality of conversion tables stored in said at least one computer memory, said conversion tables mapping an input set of pitches to an output set of pitches, and
- a selector for selecting one of said plurality of conversion tables, said altered note series being derived from said initial note series based on said selected conversion table.
- 46. The system of claim 2 wherein said notes of said note series include data representing pitch, said system further comprising:
- a plurality of conversion tables stored in said at least one computer memory, said conversion tables mapping an input set of pitches to an output set of pitches, and
- a selector for selecting one of said plurality of conversion tables, said cur rent altered note being derived from said current note based on said selected conversion table.
- 47. The system of claim 45 or 46 wherein said conversion table is selected based on a chord determination from an input note source.
- 48. The system of claim 45 or 46 wherein said conversion table is selected according to a user-operated control.
- 49. The system of claim 1 wherein said processor replicates at least one of said notes within said initial note series to derive said altered note series.
- 50. The system of claim 49 wherein said notes of said initial note series include data representing pitch and said processor shifts at least one of said pitches of said initial note series in deriving said altered note series.
- 51. A method for generating musical output data using a general purpose computer-based system having at least one computer memory, said method comprising:
- storing an initial note series in said at least one computer memory;
- deriving an altered note series from said initial note series;
- storing said altered note series in said at least one computer memory;
- indicating a current altered note within said altered note series with an altered note series index;
- storing an index pattern in said at least one computer memory, said index pattern having a plurality of index pattern steps, each of said index pattern steps having an index data item;
- indicating a current index pattern step within said index pattern with an index pattern index, said current index pattern step having a current index data item;
- outputting said current altered note according to a rhythm value representing an interval of time;
- determining a movement of said altered note series index between two notes within said altered note series based on said current index data item;
- advancing said altered note series index to a next altered note according to said determined movement, and
- advancing said index pattern index to a next index pattern step.
- 52. A method for generating musical output data using a general purpose computer-based system having at least one computer memory, said method comprising:
- storing a note series in said at least one computer memory;
- indicating a current note within said note series with a note series index;
- storing an index pattern in said at least one computer memory, said index pattern having a plurality of index pattern steps, each of said index pattern steps having an index data item;
- indicating a current index pattern step within said index pattern with an index pattern index, said current index pattern step having a current index data item;
- deriving a current altered note from said current note;
- outputting said current altered note according to a rhythm value representing an interval of time;
- determining a movement of said note series index from said current note to a next note based on said current index data item;
- advancing said note series index to said next note according to said determined movement, and
- advancing said index pattern index to a next index pattern step.
- 53. A method for generating musical output data using a general purpose computer-based system having at least one computer memory, said method comprising:
- storing a plurality of musical data items in said at least one computer memory;
- indicating a current musical data item within said plurality of musical data items with a musical data index;
- storing an index pattern in said at least one computer memory, said index pattern having a plurality of index pattern steps, each of said index pattern steps having an index data item;
- indicating a current index pattern step within said index pattern with an index pattern index, said current index pattern step having a current index data item;
- outputting said current musical data item according to a rhythm value representing an interval of time;
- determining a movement of said musical data index from said current musical data item to a next musical data item based on said current index data item;
- advancing said musical data index to said next musical data item according to said determined movement, and
- advancing said index pattern index to a next index pattern step.
- 54. The method of claim 53 wherein said step of indicating a current musical data item includes the step of indicating at least one additional musical data item with a cluster value, and said step of outputting includes outputting said at least one additional musical data item.
- 55. The method of claim 51, 52 or 53 further comprising:
- storing a rhythm pattern in said at least one computer memory, said rhythm pattern having a plurality of rhythm pattern steps, each of said rhythm pattern steps having a rhythm data item;
- indicating a current rhythm pattern step with a rhythm pattern index;
- deriving said rhythm value from said rhythm data item within said current rhythm pattern step, and
- advancing said rhythm pattern index to a next rhythm pattern step.
- 56. The method of claim 51, 52 or 53 further comprising generating clock cycles to represent said interval of time.
- 57. The method of claim 56 wherein said step of generating clock cycles includes operating a manual control.
- 58. The method of claim 57 wherein said step of operating comprises striking a key on an electronic musical instrument.
- 59. The method of claim 51 further comprising selecting said initial note series from a plurality of input note sets.
- 60. The method of claim 52 further comprising selecting said note series from a plurality of input note sets.
- 61. The method of claim 59 or 60 further comprising determining a chord type from an input note source, said step of selecting being based on said determined chord type.
- 62. The method of claim 59 or 60 wherein said step of selecting includes operating a manual control.
- 63. The method of claim 51 further comprising collecting said initial note series from an input note source.
- 64. The method of claim 52 further comprising collecting said note series from an input note source.
- 65. The method of claim 63 or 64 wherein said step of collecting is performed at specific intervals of time.
- 66. The method of claim 65 wherein said step of collecting is performed repeatedly at musical time intervals.
- 67. The method of claim 63 or 64 wherein said step of collecting is performed at a specific instant in time.
- 68. The method of claim 67 wherein said step of collecting is performed repeatedly at musical time intervals.
- 69. The method of claim 51 wherein said step of deriving occurs in real-time.
- 70. The method of claim 51 wherein said step of indicating a current altered note includes indicating at least one additional note within said altered note series with a cluster value, said method further comprising outputting said at least one additional note with said current altered note.
- 71. The method of claim 52 wherein said step of indicating a current note includes indicating at least one additional note within said note series with a cluster value, said method further comprising:
- deriving an additional altered note from said additional note, and
- outputting said additional altered note with said current altered note.
- 72. The method of claim 70 or 71 further comprising:
- storing a cluster pattern in said at least one computer memory, said cluster pattern having a plurality of cluster pattern steps, each of said cluster pattern steps having a cluster data item;
- indicating a current cluster pattern step with a cluster pattern index;
- deriving said cluster value from said cluster data item within said current cluster pattern step, and
- advancing said cluster pattern index to a next cluster pattern step.
- 73. The method of claim 70 further comprising ordering said steps of outputting said current altered note and outputting said at least one additional note according to a strum value.
- 74. The method of claim 71 further comprising ordering said steps of outputting said current altered note and outputting said additional altered note according to a strum value.
- 75. The method of claim 73 or 74 further comprising:
- storing a strum pattern in said at least one computer memory, said strum pattern having a plurality of strum pattern steps, each of said strum pattern steps having a strum data item;
- indicating a current strum pattern step with a strum pattern index;
- deriving said strum value from said strum data item within said current strum pattern step, and
- advancing said strum pattern index to a next strum pattern step.
- 76. The method of claim 73 further comprising separating said steps of outputting said current altered note and outputting said at least one additional note according to a strum separation value representing a strum time interval.
- 77. The method of claim 74 further comprising separating said steps of outputting said current altered note and outputting said additional altered note according to a strum separation value representing a strum time interval.
- 78. The method of claim 51 or 52 wherein said step of outputting further includes sustaining said current altered note according to a duration value.
- 79. The method of claim 78 further comprising:
- storing a duration pattern in said at least one computer memory, said duration pattern having a plurality of duration pattern steps, each of said duration pattern steps having a duration data item;
- indicating a current duration pattern step with a duration pattern index;
- deriving said duration value from said duration data item within said current duration pattern step, and
- advancing said duration pattern index to a next duration pattern step.
- 80. The method of claim 51 or 52 wherein said step of outputting further includes outputting a MIDI value with said current altered note.
- 81. The method of claim 80 further comprising:
- storing a MIDI data pattern in said at least one computer memory, said MIDI data pattern having a plurality of MIDI data pattern steps, each of said MIDI data pattern steps having a MIDI data item;
- indicating a current MIDI data pattern step with a MIDI data pattern index;
- deriving said MIDI value from said MIDI data item within said current MIDI data pattern step, and
- advancing said MIDI data pattern index to a next MIDI data pattern step.
- 82. The method of claim 51 or 52 wherein said step of outputting further includes outputting said current altered note with an amplitude provided by a velocity value.
- 83. The method of claim 82 further comprising:
- storing a velocity pattern in said at least one computer memory, said velocity pattern having a plurality of velocity pattern steps, each of said velocity pattern steps having a velocity data item;
- indicating a current velocity pattern step with a velocity pattern index;
- deriving said velocity value from said velocity data item within said current velocity pattern step, and
- advancing said velocity pattern index to a next velocity pattern step.
- 84. The method of claim 51 wherein said notes of said altered note series include an initial velocity, and said step of outputting further includes outputting said current altered note with an amplitude provided by said initial velocity and a velocity modifier.
- 85. The method of claim 52 wherein said notes of said note series include an initial velocity, and said step of outputting further includes outputting said current altered note with an amplitude provided by said initial velocity and a velocity modifier.
- 86. The method of claim 84 or 85 further comprising:
- storing a velocity pattern in said at least one computer memory, said velocity pattern having a plurality of velocity pattern steps, each of said velocity pattern steps having a velocity data item;
- indicating a current velocity pattern step with a velocity pattern index;
- deriving said velocity modifier from said velocity data item within said current velocity pattern step, and
- advancing said velocity pattern index to a next velocity pattern step.
- 87. The method of claim 51 further comprising:
- storing a plurality of conversion tables in said at least one computer memory, said conversion tables mapping an input set of notes to an output set of notes;
- selecting one of said plurality of conversion tables, said altered note series being derived according to said selected conversion table.
- 88. The method of claim 52 further comprising:
- storing a plurality of conversion tables in said at least one computer memory, said conversion tables mapping an input set of notes to an output set of notes;
- selecting one of said plurality of conversion tables, said current altered note being derived according to said selected conversion table.
- 89. The method of claim 87 or 88 further comprising determining a chord from an input note source, said conversion table being selected according to said determined chord.
- 90. The method of claim 51 wherein said step of deriving said altered note series further includes replicating at least one note of said initial note series.
- 91. The method of claim 51 wherein said notes of said initial note series include data representing pitch, and said step of deriving said altered note series further includes shifting said pitch of at least one note of said initial note series.
- 92. The method of claim 52 wherein said notes of said note series include data representing pitch, and said step of deriving said current altered note further includes shifting said pitch of said current note.
- 93. The method of claim 51 wherein said notes of said initial note series include data representing pitch, and said step of deriving said altered note series further includes selectively constraining said pitches of said initial note series to a predetermined range.
- 94. The method of claim 52 wherein said notes of said note series include data representing pitch, and said step of deriving said current altered note further includes selectively constraining said pitch of said current note to a predetermined range.
- 95. The method of claim 51 wherein said step of deriving said altered note series further includes sorting said initial note series according to a predetermined criteria.
- 96. The method of claim 95 wherein said predetermined criteria is pitch data associated with said notes.
- 97. The method of claim 51 wherein said step of deriving said altered note series further includes filtering said altered note series to exclude altered notes according to a predetermined criteria.
- 98. The method of claim 97 wherein said notes of said altered note series include data representing a pitch, said predetermined criteria being duplicate pitches.
- 99. The method of claim 97 wherein said notes of said altered note series include data representing a pitch, said predetermined criteria being a specific pitch.
- 100. The method of claim 51 wherein said step of deriving said altered note series further comprises:
- indicating a current initial note within said initial note series with an initial note series index;
- determining a movement of said initial note series index from said current initial note to a next initial note within said initial note series based on an initial note series index value, and
- advancing said initial note series index to said next initial note according to said determined movement, wherein each sequential note of said altered note series is derived from said current initial note.
- 101. The method of claim 100 further comprising:
- storing an initial note series index pattern in said at least one computer memory having a plurality of initial note series index pattern steps, each of said initial note series index pattern steps having an initial note series index data item;
- indicating a current initial note series index pattern step with an initial note series index pattern index;
- deriving said initial note series index value from said initial note series index data item within said current initial note series index pattern step, and
- advancing said initial note series index pattern index to a next initial note series index pattern step.
- 102. A computer-readable media for storing instructions for generating musical output data comprising instructions for:
- storing an initial note series in at least one computer memory;
- deriving an altered note series from said initial note series;
- storing said altered note series in said at least one computer memory;
- indicating a current altered note within said altered note series with an altered note series index;
- storing an index pattern in said at least one computer memory, said index pattern having a plurality of index pattern steps, each of said index pattern steps having an index data item;
- indicating a current index pattern step within said index pattern with an index pattern index, said current index pattern step having a current index data item;
- outputting said current altered note according to a rhythm value representing an interval of time;
- determining a movement of said altered note series index between two notes within said altered note series based on said current index data item;
- advancing said altered note series index to a next altered note according to said determined movement, and
- advancing said index pattern index to a next index pattern step.
- 103. A computer-readable media for storing instructions for generating musical output data comprising instructions for:
- storing a note series in at least one computer memory;
- indicating a current note within said note series with a note series index;
- storing an index pattern in said at least one computer memory, said index pattern having a plurality of index pattern steps, each of said index pattern steps having an index data item;
- indicating a current index pattern step within said index pattern with an index pattern index, said current index pattern step having a current index data item;
- deriving a current altered note from said current note;
- outputting said current altered note according to a rhythm value representing an interval of time;
- determining a movement of said note series index from said current note to a next note based on said current index data item;
- advancing said note series index to said next note according to said determined movement, and
- advancing said index pattern index to a next index pattern step.
- 104. A computer-readable media for storing instructions for generating musical output data comprising instructions for:
- storing a plurality of musical data items in at least one computer memory;
- indicating a current musical data item within said plurality of musical data items with a musical data index;
- storing an index pattern in said at least one computer memory, said index pattern having a plurality of index pattern steps, each of said index pattern steps having an index data item;
- indicating a current index pattern step within said index pattern with an index pattern index, said current index pattern step having a current index data item;
- outputting said current musical data item according to a rhythm value representing an interval of time;
- determining a movement of said musical data index from said current musical data item to a next musical data item based on said current index data item;
- advancing said musical data index to said next musical data item according to said determined movement, and
- advancing said index pattern index to a next index pattern step.
CROSS-REFERENCES TO RELATED APPLICATIONS
This application claims benefit of United States Provisional Patent Application Ser. No. 60/072,922 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 (39)
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. |