For a better understanding of the present invention, and to show how the same may be practiced and will work, reference will now be made, by way of example, to the accompanying drawings, in which:
a and 6b are, in combination, a flow chart showing the procedure of a key-on processing with an embodiment of an arpeggio playing apparatus according to the present invention;
a is a timing chart showing an example of the time length adjustment of an arpeggio pattern with an embodiment of an arpeggio playing apparatus according to the present invention;
b is a timing chart showing another example of the time length adjustment of an arpeggio pattern with an embodiment of an arpeggio playing apparatus according to the present invention;
c is a timing chart showing a further example of the time length adjustment of an arpeggio pattern with an embodiment of an arpeggio playing apparatus according to the present invention;
The present invention will now be described in detail with reference to the drawings showing preferred embodiments thereof. It should, however, be understood that the illustrated embodiments are merely examples for the purpose of understanding the invention, and should not be taken as limiting the scope of the invention.
The CPU 1 functions as a data processing unit in association with the RAM 2 and the ROM 3, and conducts various musical data processing including arpeggio playing processing driven by a clock signal from a timer 13, and also functions as a sequencer (SQ) to conduct an automatic musical performance according to automatic performance data. The RAM 2 is used as work areas for temporarily store various data necessary for the processing. The ROM 3 stores beforehand various control programs including the arpeggio playing program and data prepared for automatic musical performances in order to execute the above-mentioned processing.
The external storage device 4 may include a built-in storage medium such as a hard disk (HD) and a flash memory (semiconductor memory) as well as various portable external storage media such as a compact disk read-only memory (CD-ROM), a flexible disk (FD), a magneto-optical (MO) disk, a digital versatile disk (DVD), a small-sized memory card like Smart Media™ and so forth. Thus, the arpeggio playing apparatus can process various data including automatic performance data stored in any type of external storage device 4.
The play detection circuit 5 detects the user's real-time operations of a manual playing device 14 such as a keyboard (as to which key is depressed with what intensity or velocity and which key is released) and sends the corresponding manual performance data of the real-time operations (representing the key-on event including the note number and the key-on velocity and the key-off event including the note number) to the data processing unit, while the controls detection circuit 6 detects the user's operations of the setting controls 15 (on a control panel) such as key switches and sends the corresponding setting data to the data processing unit. Among the setting controls 15 are further included, for example, arpeggio parameter setting controls relating to arpeggio playing such as an arpeggio tempo, and arpeggio on/off command, a quantization value and a hold command for each of arpeggio playing parts.
The display circuit 7 is connected to a display device 16 such as an LCD for displaying various screen images and pictures and to various indicators (not shown), and controls the displayed contents and lighting conditions of these devices according to instructions from the CPU 1, and also presents GUIs for assisting the user in operating the various setting controls 15 and the manual playing device 14.
The tone generator circuit 8 and the effect circuit 9 constitute a musical tone signal generating unit SG (or simply called a tone generating unit) including a plurality of tone processing parts. The tone generator circuit 8, therefore, comprises a plurality of tone generators (#1-#4), each including a plurality of tone generation channels, and an arpeggio pattern memory. Each of the tone processing parts is arranged so that a desired tone color can be set, and is provided with a function of an arpeggiator. Each of the tone processing part produces tone signal data representing a tone waveform having a tone color as set for each tone processing part in response to performance data of the real-time manual performance or of the automatic performance derived from the play detection circuit 5 or from the memory 3 or the storage 4 via the sequencer SQ in the data processing unit and given to each tone processing part, and, where the function of the arpeggiator is rendered active, produces tone signal data for an arpeggio (a broken chord performance) according to an arpeggio pattern selected and read out from the arpeggio pattern memory. The tone generator in each tone processing part may be a physical independent dedicated tone generator or one of the logically divided portions of a physically single tone processing circuit. The effect circuit 9 includes an effect imparting DSP (digital signal processor) and imparts intended tone effects to the tone signal data of each tone processing part to produce musical tone signals for the plurality of tone processing parts. To the effect circuit 9 is connected a sound system 17, which includes a D/A converter, an amplifier and a loudspeaker, and emits audible musical sounds based on the effect imparted musical tone signals from the tone generating unit SG.
To the MIDI interface 10 is connected another MIDI apparatus MD so that MIDI musical performance data are received from another apparatus MD and are used in this arpeggio playing apparatus EM. For example, the tone generating unit SC can produce tone signals based on the performance data supplied from another apparatus MD. The communication interface 11 is connected to a communication network CN such as the Internet and a local area network (LAN) so that a control program and various data can be downloaded from an external server computer SV or the like, and can be stored in the external storage 4 for later use in this system.
General Operation of Arpeggio Playing
In the arpeggio playing apparatus according to an embodiment of the present invention, the musical tone signal generating unit (tone generating unit) SG comprises a plurality of tone signal processing parts, which may be referred to as “tone processing parts,” so that the plurality of tone processing parts can execute plural arpeggio performances in parallel where each of the tone processing parts include an arpeggiator.
The tone processing parts #1-#4 include tone generators #1-#4, respectively, each of which can separately set the tone color as well as the key range to receive performance data (note-on data and note-off data) from the manual playing device 14 such as a keyboard KB. In the example shown in
The tone processing parts #1-#4 include arpeggiator #1-#4, respectively, each of which has a function of automatically playing an arpeggio (broken chord) by producing tone signals to be sounded in succession along a selected arpeggio pattern based the performance data derived from the keyboard KB (manual playing device). In this context, the “tone processing part” can be termed as an “arpeggio processing part.” The musical tone signal generating unit (tone generating unit) SG includes an arpeggio pattern memory which stores various arpeggio patterns so that a desired arpeggio pattern can be selected from among the plurality of arpeggio patterns according to the user's selecting operation for each of the tone processing parts, whereby arpeggio patterns can be independently set for the respective tone processing parts and a plurality of arpeggios will be performed concurrently (in parallel) using the plurality of tone processing parts.
Each of the arpeggiators #1-#4 has a function of accentuating (enhancing or highlighting) the arpeggio performance, for which there are provided a regular arpeggio track and an accentuated arpeggio track for each of the arpeggio patterns, wherein a running arpeggio pattern will be changed over from the regular arpeggio pattern in the regular arpeggio track to the accentuated arpeggio pattern in the accentuated arpeggio track when the key-on velocity is equal to or greater than the predetermined threshold value, thereby enhancing the arpeggio playing.
An arpeggio pattern represents a pattern of notes sounding in succession in terms of rhythm and pitch with respect to the time progression, and has a length which is an integer multiple of the periods SQ and AQ (to be defined hereinafter) which respectively correspond to the span of a quantized synchronization grids and the span of a quantized accentuation grids (both to be described hereinafter). Shown exemplarily in
Typically, the pattern length on the regular tracks is between one measure and several measures, while the pattern length on the accentuated tracks is between one beat and one measure. The contents of the accentuated arpeggio patterns may preferably be of musically enhanced or highlighted ones than those of the regular arpeggio patterns, for example, larger in volume, greater in number of notes, more complicated in rhythm, and so forth.
While there are various parameters with respect to the arpeggiator, some typical parameters concerning the arpeggio playing processing are as follows.
(1) Parameters Common to All the Processing Parts
Quantized ARP Sync Value: This indicates whether or not a new arpeggio pattern is to be started in synchronism with an already running arpeggio performance or automatic performance, and in case of “yes,” a quantized synchronization value. For example, in case of starting without synchronization, this value assumes zero (meaning “off”), and in case of synchronized starting, this value assumes a quantized synchronization value which can be equal to the note duration of a thirty-second, a twenty-fourth (corresponding to a sixteenth triplet), a sixteenth, a twelfth (corresponding to an eighth triplet), an eighth, a sixth (corresponding to a quarter triplet), or a quarter of the whole note duration.
(2) Parameters for Each of the Processing Parts
Quantized ARP Accent Value: This value determines the timing of the quantized accentuation grids which serves as the synchronization timing for changing over the accentuated arpeggio patterns. The values are set adequately for the individual arpeggio patterns.
An embodiment of the present invention is adapted to play a plurality of arpeggio performances in parallel using a plurality of arpeggio processing parts (i.e. tone processing parts), wherein when a new key-on event occurs in a key range associated with an arpeggio processing part to start an arpeggio playing in this arpeggio processing part, the arpeggio processing part will start, at a quantized synchronization grid (i.e. timing), the designated arpeggio playing in synchronism with another arpeggio playing, if any, which is already running in another arpeggio processing part. If the occurrence of a new key-on is within a predetermined delay margin (tolerable time range for delay) from the synchronization timing, the arpeggio playing will start immediately. In this context, a new key-on is defined as a first occurrence of a key depression under the condition that all the keys have been released in the key range assigned to the arpeggio processing part in question. Where the “hold” mode is set “on” for the arpeggio processing part in question, a first new key-on starts an arpeggio playing in this arpeggio processing part, and the arpeggio playing will be kept running until the hold mode for this processing part is canceled (or turned off) by the user manipulating the setting control 15 (
When another key-on occurs in another processing part, this processing part starts playing an arpeggio pattern. If the ARP Quantized Sync Value is not zero, this second processing part is to start the arpeggio pattern as quantized to the timing of the quantization grids which are marked along the time axis according to the quantized Sync Value. Suppose, for example, as shown in
More specifically, with reference to
On the other hand, if the key-on time tb in the processing part #3 occurs a bit later than the preceding quantized synchronization grid t5 and within the predetermined delay margin tau-a from the synchronization grid t5, the processing part #3 does not wait until the next coming synchronization grid t6 but immediately outputs all the note events existing in the head part (between t5 and tb) of the arpeggio pattern as if it had started at the synchronization grid t5 and keeps on playing the arpeggio pattern from the pattern position corresponding to the time tb and onward at the progression tempo. If the arpeggio performance should start at the next coming quantized synchronization grid t6 instead, the arpeggio performance would be different from the intention of the user (player), especially in the case of the quantization value of a long duration such as a quarter note duration.
The above-mentioned predetermined delay margin tau-a is not necessarily a 20 ms period but may be longer or shorter than 20 ms as long as it is shorter than the grid span SQ. The delay margin tau-a may be varied in accordance with the tempo.
In summary, the characteristic feature in starting arpeggio performances with the arpeggio playing apparatus of the above-described embodiment having a plurality of arpeggio processing parts #1-#4 resides in that while an arpeggio processing part (e.g. #1 in
Changeover between Regular and Accentuated Arpeggio Patterns
An arpeggio playing apparatus according to an embodiment of the present invention can play an accentuated arpeggio pattern when the key-on velocity (i.e. depression strength) is at or above (equal to or greater than) the predetermined threshold value, while it plays a regular pattern when the key-on velocity is below the threshold value. The changeover timing between the two kinds of patterns can be set to the quantized synchronization grids.
Where the Quantized ARP Accent Start is set “on” in an arpeggio processing part, when there comes a new key-on event A (with the key-on velocity below the threshold) from the associated key range at a time point t1, the processing part starts arpeggio playing in a regular arpeggio pattern (in a regular track) at the time point t1, which establishes quantized accentuation grids t1, t2, t3, and so forth having a period of the Quantized ARP Accent Value “AQ” which is set for the arpeggio pattern thereby defining a synchronization timing for the changeover to an accentuated arpeggio pattern and vice versa. If the ARP Hold Switch is set “on” in this arpeggio processing part, the arpeggio playing with the regular pattern is kept running even though there is an all-key-off event A at a time point tc.
Thereafter, for example, suppose further key-ons (these may be either a new key-on or an additional key-on) B and C occur at the time points td and tf with a key-on velocity (where there are plural key depressions at a time, the greatest velocity among them) at or above the predetermined threshold value “ARP Accent Vel Threshold.” The arpeggio pattern is changed over from the regular pattern to the accentuated pattern according to the Quantized Accentuation Grids t5 and t 11, respectively. The reading position of the regular pattern keeps on progressing behind the accentuated pattern reading, as illustrated with dashed lines in
The changeover timing to the accentuated pattern is controlled in a similar manner as described above about the starts of new processing parts with reference to
In summary, the characteristic feature in changing arpeggio patterns with the arpeggio playing apparatus of the above-described embodiment resides in that each arpeggio pattern to be nominated or designated has a regular pattern version and an accentuated pattern version stored in the memory or storage, and that the regular version is read out and used for an automatic arpeggio performance (in a broken chord) when the velocity of the manipulated key or keys is under the predetermined velocity threshold (AccThreshold), while the accentuated version is read out and used for an automatic arpeggio performance when the velocity of the manipulated key or keys is at or above the predetermined velocity threshold so that strong key manipulations will present arpeggio performances in an enhanced or highlighted fashion. Further, a quantized arpeggio accentuation value which defines the synchronization timing for changing over the arpeggio patterns from the regular version to the accentuated version is prepared or set for each arpeggio pattern so that the time points of changing over the pattern versions are controlled to synchronize with the quantized timing grids (e.g. t5, t7, t11, t13 in
Processing Flows
An arpeggio playing apparatus according to the present invention realizes a versatile arpeggio performances by playing a plurality of arpeggio pattern progressions in parallel and changing over pattern versions between the regular one and the accentuated one according to the arpeggio playing computer program.
Key-on Processing
As the key-on processing of
On the other hand, when the step S2 judges that the key-on event is within the key range #N, i.e. the judgment is affirmative (YES), the step S3 in turn judges whether or not the arpeggio playing command is “on” for the processing part #N. If the arpeggio playing command is “off” at the processing part #N, the judgment at the step S3 is negative (NO) and the process flow moves to the step S4 to generate tones in the regular way, i.e. not in an automatic arpeggio manner, instructing the musical tone signal generating unit SG to generate a tone signal simply corresponding to the key-on event (i.e. individual key depression). Then, the process flow skips to the step S13, terminating the key-on processing for the processing part #N.
When the step S3 judges that the arpeggio playing command is “on” at the processing part #N, i.e. the judgment is affirmative (YES), the process flow goes forward to the step S5 to judge whether or not the velocity of the key-on is at or above the predetermined velocity threshold value, i.e. Key-On Vel>=AccThreshold. If the velocity is below the velocity threshold value, i.e. Key-On Vel<AccThreshold, the process flow moves to the step S6 which selects the regular version of the arpeggio pattern according to the number of depressed keys and/or the detected chord for the processing part #N. If the velocity is at or above the velocity threshold value, i.e. Key-On Vel>=AccThreshold, the judgment at the step S6 is affirmative (YES) and the process flow goes forward to the step S7 which selects the accentuated version of the arpeggio pattern according to the number of depressed keys and/or the detected chord for the processing part #N. After the pattern selection processing at the step S6 or S7, the processing flow goes to the step S8 (
The step S8 judges whether or not the key-on event is a new key-on for the processing part #N. If the judgment is affirmative (YES), the step S9 then judges whether or not the hold command is set “on” for the processing part #N. If the judgment is affirmative (YES), the process flow goes forward to the step S10 to judge whether or not the arpeggio playing has yet to start (i.e. not started yet) in the processing part #N.
When the step S9 judges that the hold command for the processing part #N is set “off” (NO), or when the step S10 judges that an arpeggio playing has not started yet in the processing part #N (YES), the process flow goes to the step S11 to conduct an arpeggio start processing, of which the detail is described in the subroutine flow chart of
Arpeggio Start Processing
In the arpeggio start processing shown in
On the other hand, when the quantized arpeggio synchronization value is set “on” with a specific value, the judgment in the step A1 turns out negative (NO), and then a step A3 judges whether or not another processing part has already started arpeggio processing. If no other processing part has started an arpeggio playing yet, the judgment in the step A3 is negative (NO) and the process flow goes to the step A2. The step A2 immediately starts an arpeggio playing with the selected pattern at a prevailing or set progression tempo and activates the quantized synchronization grids according to the quantized synchronization value. Further, where the quantized accentuation grid command is set “on,” the quantized accentuation grids are also activated with the quantized accent value for the selected arpeggio pattern, before returning to the step S13 (
When the step A3 judges that another processing part has already started an arpeggio playing (YES), the process flow moves forward to a step A4 to judge whether or not the key-on event time point is within a predetermined delay margin tau-a (tolerable for starting) from a quantized synchronization grid. If the key-on event time point is within the predetermined delay margin tau-a from a quantized synchronization grid (YES), the process flow moves forward to a step A5, which instructs the musical tone signal generating unit SG to output all the events of the selected arpeggio pattern up to this time point and immediately start playing the arpeggio pattern remaining after this time point at the progression tempo. The process flow then returns to the step S13 (
On the other hand, when the step A4 judges that the key-on event time point is outside the predetermined delay margin tau-a (NO), the process flow goes to a step A6, which instructs the musical tone signal generating unit SG to prepare for starting the selected arpeggio pattern performance at the next coming quantized synchronization grid. The process flow then returns to the step S13 (
Arpeggio Pattern Changeover Processing
In the arpeggio pattern changeover processing shown in
Where the step S7 (
Where the quantized accentuation command is set “on,” the judgment by the step P3 is affirmative (YES) and the process flow moves forward to a step P5, which judges whether or not the key-on event time point is within a predetermined delay margin tau-b (tolerable for changing over the patterns) from a quantized accentuation grid. If the key-on event time point is within the predetermined delay margin tau-b from a quantized accentuation grid (YES), the process flow moves forward to a step P6, which instructs the musical tone signal generating unit SG to output all the events of the selected accentuated arpeggio pattern up to this time point and immediately start playing the accentuated arpeggio pattern remaining after this time point. The process flow then returns to the step S13 (
On the other hand, when the step P5 judges that the key-on event time point is outside the predetermined delay margin tau-b (NO), the process flow goes to a step P7, which instructs the musical tone signal generating unit SG to suspend starting and to prepare for starting the selected accentuated arpeggio pattern performance at the next coming quantized accentuation grid. The process flow then returns to the step S13 (
Now back to the key-on processing flow in
Key-Off Processing
When a key-off event occurs according to the key release in the keyboard KB, the key-off processing procedure as shown in
After the key-off processing for the processing part #N in the step R2, the process flow proceeds to a step R3, which judges whether or not the key-off processing for the processing part #N has been finished for all the processing parts up to the last part number. If the key-off processing has not been finished for up to the last part number, the step R3 judges negative (NO), and the process flow loops back to the step R2, after incrementing the part number by one, i.e. N=N+1, at a step R4, and repeats the processing of the step R2 until the last numbered processing part. When the key-off processing has been finished for all the processing parts, the step R3 judges affirmative (YES), and the process flow returns to the general main routine of the apparatus to stand by for a key-on event or a key-off event.
The notes (listed in the list of the depressed keys) to be used for playing a broken chord or for detecting a chord in each tone processing part will be determined in the following manner. Under the non-hold mode, every note listed in the list of the depressed keys is used individually. In other words, under the non-hold mode, whenever there is a key depression event, the note is added in the list of the depressed keys, and whenever there is a key release event, the note is deleted from the list of the depressed keys. Under the hold mode, on the other hand, when there is a key depression event, the list of the depressed keys will be renewed with the keys being depressed concurrently at this time, and even when there is a key release event, the note will not be deleted from the list of the depressed keys.
Other Processing
The arpeggio playing processing with an embodiment according to the present invention includes further processes as follows in addition to the above described processing, although not shown in the drawings.
(1) Time Administration
The time counter counts the clock pulse according to the tempo set for an automatic performance and defines timing for the rhythmic progression of an automatic musical performance. More specifically, the timing of the quantized grids are established, and a judgment is made as to whether or not the current time point is at a quantized grid or within the predetermined tolerance margin from a quantized grid.
(2) Playback of Arpeggio Pattern
A selected arpeggio pattern is read out successively in a designated tempo, and the assigned tone processing part generates tone signals of the notes determined by the key-on events for the tone processing part in a broken chord or determined by modifying the note numbers in the arpeggio pattern according to the detected chord based on the key-on events. As the velocity values for the tone generation, the velocity values included in the arpeggio pattern data file may be used, and also the velocity values detected at the key-on events may be used. As these data processing belong to the generally practiced arpeggio processing, detailed descriptions are omitted herein. In the case of the regular arpeggio pattern, when the processing comes to the end of an arpeggio pattern, the processing returns to the head of the pattern to repeat the playback. On the other hand, in the case of the accentuated arpeggio pattern, when the processing comes to the end of an arpeggio pattern, the processing changes over to the regular pattern.
(3) Stop of Arpeggio Pattern
A running arpeggio can be stopped by switching off the arpeggio on/off control (both under the hold mode whether any key is being depressed or not, and under the non-hold mode when any key is being depressed).
Time Length Adjustment of Arpeggio Pattern
In the above description about how the arpeggio patterns are started relative to each other, when a new key-on occurs within a predetermined delay margin (tolerable time range) tau-a from a quantized synchronization grid, an arpeggio pattern is immediately started with its head portion before the key-on time point cut off and with the remaining portion after the key-on time point running forward, and when a new key-on occurs outside the predetermined delay margin tau-a from a aquantized synchronization grid, the start of an arpeggio pattern is suspended until the next coming synchronization grid. Alternatively, the time length adjustment of the arpeggio pattern can be realized, by shortening or elongating the time length for playing the arpeggio pattern as will be described in (a) through (c) hereinbelow. While the following description will be made with respect to the synchronized starts of arpeggio patterns relative to each other, the similar ideas can be applied also to the quantized changeovers of arpeggio patterns between an accentuated version arpeggio pattern and a regular version arpeggio pattern.
(a) Whether or not a key-on event occurs within the predetermined time range tau-a from the synchronization grid, the pattern is to be shortened (compressed) anyway. To explain with reference to the flow chart of the arpeggio start processing shown in
The method shown in
(b) Whether or not a key-on event occurs within the predetermined time range tau-a from the synchronization grid, the pattern is to be elongated (expanded) anyway. To explain with reference to the flow chart of the arpeggio start processing shown in
The elongation (expansion) of an arpeggio pattern can be realized by immediately starting the arpeggio pattern upon receipt of a new key-on event, for example, at the time point ti as shown in
More specifically, the method shown in
(c) The pattern is to be shortened, when the key-on event occurs within a predetermined delay margin from a synchronization grid, and the pattern is to be elongated, when the key-on event occurs outside a predetermined delay margin from a synchronization grid. Although not shown in a figure, the operation can be explained using the flow chart of
Arrangement and Operation of Tone Processing Parts (Ex. 2)
An arpeggio playing apparatus according to the present invention may also include an automatic musical performance device, in which while an automatic musical performance is running, arpeggios can be started in synchronism with the rhythmic timing of the running automatic performance by shortening or elongating the first span of an arpeggio pattern.
The tone signal generating unit SG comprises sixteen tone processing parts #1-#16 and four arpeggiators, where each of the arpeggiators can be arbitrarily set for any of the tone processing parts. For example, as shown in
In this connection, where the performance data providing channels include automatic performance data providing channels (sequencer tracks), the arpeggio performances are conducted in synchronization with the progression timing of the sequencer SQ. Namely, where the quantized synchronization or the quantized accentuation is set for the arpeggio playing, the quantized grids for the arpeggio playing are established in synchronism with the quantized grids of the progression timing of the running sequencer SQ. Typically, where an automatic performance is first started by the sequencer SQ and an arpeggio playing is thereafter started by the tone processing part having an arpeggiator, the arpeggio performance is conducted in synchronism with the progression timing of the automatic performance by the sequencer SQ. Where an arpeggio playing is first started and an automatic performance by the sequencer SQ is thereafter started while the arpeggio playing is running, the synchronization timing is defined by the earlier started arpeggio playing until the sequencer SQ is started, and after the sequencer SQ is started and is running, the synchronization timing is defined by the progression of the sequencer SQ.
More specifically, the operation will be as follows, if explained with reference to
For example, when the processing part #1 of the second embodiment is to start arpeggio playing in response to the manual performance on the keyboard KB, the step A3 of
Now referring to
Alternatively, as explained in paragraph (a) above, the step A7 can be provided in place of the steps A4-A6 of
While several preferred embodiments have been described and illustrated in detail herein above with reference to the drawings, it should be understood that the illustrated embodiments are just for preferable examples and that the present invention can be practiced with various modifications without departing from the spirit of the present invention. For example, the number of tone processing parts is not limited to the numbers in the embodiments. It should also be understood that the basic arrangement for playing automatic arpeggios, i.e. the procedure to perform broken chords based on the inputted manual performance data from the keyboard can be readily can be practiced by employing the arrangement of various conventionally known arpeggio playing apparatuses.
Number | Date | Country | Kind |
---|---|---|---|
2006-256535 | Sep 2006 | JP | national |