System and method for dynamic note assignment for musical synthesizers
Abstract
The invention is a method and system for assigning notes to be played by a musical synthesizer to a predetermined number of channels of said musical synthesizer, so that the musical synthesizer may emulate the note allocation of a live orchestra section. The method includes the steps of selecting a note/channel assignment table corresponding to the number of notes to be played and the number of channels allocated to the playing of such notes, and assigning notes to the channels pursuant to the assignment table. The number of channels would typically be the same as the number of instruments in the orchestra section being emulated As new note events occur, notes are dynamically reassigned to channels so that hard and soft attacks are taken into account and, to the extent practicable, each channel plays a single note at a time.
Claims
exact text as granted — not AI-modified1. A method for assigning notes to be played by a musical synthesizer to a predetermined number of channels of said musical synthesizer, said method including the following steps:
(a) receiving a signal indicating a new note event, wherein a new note event is one of the following two events relating to a particular note; (i) a note-on event comprising the addition of said particular note to the notes being played by the musical synthesizer and (ii) the deletion of said particular note from the notes being played by said musical synthesizer;
(b) determining whether said new note event is a note-on event;
(c) if said new note event is a note-on event, adding said particular note to a notes-on list;
(d) if said new note event is not a note-on event, deleting said particular note from said notes-on list;
(e) determining how many notes are on said notes-on list;
(f) selecting an assignment table corresponding to the predetermined number of channels and how many notes are on said notes-on list;
(g) assigning notes to said channels pursuant to said assignment table and said notes-an list; and
(h) sending to said musical synthesizer a set of commands corresponding to the assignment of notes to channels
wherein when said new note event is a deletion of said particular note, the method performs the step of assigning a different note from said note-on list to the channel that was previously playing said particular note.
2. The method of claim 1 , wherein step (e) is as follows;
(e) determining how many notes are on said notes-on list and if there is not at least one note on said notes-on list, issuing a note-off command to said musical synthesizer for any note currently being played on any channel.
3. The method of claim 1 , wherein when the number of notes on said notes-on list is larger than the predetermined number of channels, the method further performs the steps:
identifying certain notes as supplemental notes; and
performing additive polyphony to assign said supplemental notes to said channels.
4. The method of claim 1 , wherein said assignment table comprises an orchestral algorithm.
5. The method of claim 1 , wherein said assignment table comprises a lookup table.
6. The method of claim 1 , wherein said assignment table comprises an allocation map.
7. The method of claim 1 , wherein said step of assigning notes comprises performing one of a top weighting and a bottom weighting assignment of said notes.
8. The method of claim 1 , further comprising the step of sorting said notes-on list in order according to the pitch of each of said note.
9. The method of claim 1 , further comprising appending a soft-note instruction to said assigning of a different note.
10. The method of claim 1 , wherein step (h) comprises sending to a channel commands buffer a set of commands corresponding to the assignment of notes to channels.
11. A method for assigning notes to be played by a musical synthesizer to a predetermined number of channels of said musical synthesizer, said method including the following steps:
(a) receiving a signal indicating a new note event, wherein a new note event is one of the following two events relating to a particular note: (i) a note-on event comprising the addition of said particular note to the notes being played by the musical synthesizer and (ii) the deletion of said particular note from the notes being played by said musical synthesizer;
(b) determining whether said new note event is a note-on event;
(c) if said new note event is a note-on event, adding said particular note to a notes-on list;
(d) if said new note event is not a note-on event, deleting said particular note from said notes-on list;
(e) determining how many notes are on said notes-on list;
(f) selecting an assignment table corresponding to the predetermined number of channels and how many notes are on said notes-on list;
(g) assigning notes to said channels pursuant to said assignment table and said notes-on list; and
(h) sending to said musical synthesizer a set of commands corresponding to the assignment of notes to channels;
wherein when said note event is a note-on event, said set of commands further comprises a hard-note instruction.
12. The method of claim 11 , wherein when the number of notes on said notes-on list is larger than the predetermined number of channels, the method further performs the steps:
identifying certain notes as supplemental notes; and
performing additive polyphony to assign said supplemental notes to said channels.
13. The method of claim 11 , wherein said assignment table comprises an orchestral algorithm.
14. The method of claim 11 , wherein said assignment table comprises a lookup table.
15. The method of claim 11 , wherein said assignment table comprises an allocation map.
16. The method of claim 11 , wherein said step of assigning notes comprises performing one of a top weighting and a bottom weighting assignment of said notes.
17. The method of claim 11 , further comprising the step of sorting said notes-on list in order according to the pitch of each of said note.
18. A method for dynamically assigning motes to be played by a musical synthesizer, comprising:
providing at least one note assignment table comprising a preferential weighting note assignment;
setting a predetermined number of channels for playing assigned notes;
determining the number of notes to be played at a current instance;
using said note assignment table to assign each of said notes to a respective channel of said predetermined number of channels; and,
wherein said preferential weighting note assignment table is one of a bottom weighting note assignment table and a top weighting note assignment table.
19. The method for dynamically assigning notes according to claim 18 , wherein providing at least one note assignment table comprises providing a plurality of note assignment tables and wherein the method further comprises selecting one of said note assignment tables to assign each of said notes.
20. The method for dynamically assigning notes according to claim 18 , further comprising the step of sorting said notes in order according to the pitch of each of said notes.
21. The method for dynamically assigning notes according to claim 18 , wherein when the number of notes is larger than the predetermined number of channels, the method further comprises:
identifying certain notes as supplemental notes; and
performing additive polyphony to assign said supplemental notes to selected ones of said predetermined number of channels.
22. The method for dynamically assigning notes according to claim 21 , further comprising the step of sorting said notes-on list in order according to the pitch of each of said notes.
23. The method for dynamically assigning notes according to claim 18 , wherein said assignment table comprises an orchestral algorithm.
24. The method for dynamically assigning notes according to claim 18 , wherein said assignment table comprises a lookup table.
25. The method for dynamically assigning notes according to claim 18 , wherein said assignment table comprises an allocation map.
26. The method for dynamically assigning notes according to claim 18 , wherein each of said channels represent a single musical instrument.
27. The method for dynamically assigning notes according to claim 18 , wherein each of said channels represent a sub-section of an orchestral section.
28. A method for dynamically assigning notes to be played by a musical synthesizer, comprising:
providing at least one note assignment table;
setting a predetermined number of channels for playing assigned notes;
determining the number of notes to be played at a current instance;
using said note assignment table to assign each of said notes to a respective channel of said predetermined number of channels; and,
further comprising providing one of a hard-note and soft-note instruction to each one of said predetermined number of channels.
29. The method for dynamically assigning notes according to claim 28 , wherein said note assignment table is one of a bottom weighting note assignment table and a top weighting note assignment table.
30. A note allocation processor operable in conjunction with an input device and a note player, said note player having a predetermined number of channels, said note allocation processor comprising:
an input for receiving note signals firm said input device;
an output for providing note assignment to said note player;
a note counter;
at least one note assignment table comprising a preferential weighting note assignment;
a central processor preprogrammed to obtain the number of notes indicated in said note counter and assign each note to a respective one of said channels according to said note assignment table and provide one of a hard-note and soft-note instruction to each one of said channels.
31. The note allocation processor of claim 30 , further comprising a channel comparison counter indicating the number of channels having been assigned a note.
32. The note allocation processor of claim 30 , further comprising a sorted note list memory, and wherein said central processor sorts said notes according to the pitch of said notes and stores a sorted note list in said sorted note list memory.
33. The note allocation processor of claim 30 , further comprising a notes-on list memory storing all notes to be played at a given instance.
34. The note allocation processor of claim 30 , further comprising a notes-on list memory storing all notes to be played at a given instance, and wherein when the number of notes to be played exceeds said predetermined number of channels, said central processor designates selected ones of said notes on as being supplemental notes.
35. The note allocation processor of claim 30 , wherein each of said note signals represents one of: a single musical instrument, an orchestral section, and a non-musical instrument audio sound.Join the waitlist — get patent alerts
Track US7109406B2 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.