Musical sound signal generation apparatus that generates sound emulating sound emitting from a rotary speaker
09899016 ยท 2018-02-20
Assignee
Inventors
Cpc classification
G10H1/047
PHYSICS
International classification
G10H1/06
PHYSICS
G10H7/04
PHYSICS
Abstract
An electronic musical instrument includes a storage unit storing waveform data WD constituted by a plurality of sample values, the waveform data expressing an acoustic waveform of a musical sound emitted from a speaker while a rotor rotates about a rotation axis by a predetermined angle, and a reproduction unit configured to sequentially read out the sample values from the storage unit and generate a musical sound signal based on the read-out sample values, the reproduction unit being configured to change a reproduction speed of the musical sound expressed by the plurality of sample values, without changing a pitch and formant of the musical sound.
Claims
1. A musical sound signal generation apparatus for generating musical sound signals expressing musical sounds emitted from a rotary speaker having a rotor that rotates about a predetermined rotational axis so that a sound emission direction rotates as the rotor rotates, the musical sound signal generation apparatus comprising: a storage unit storing at least one waveform data each constituted by a plurality of sample values, and expressing an acoustic waveform of a musical sound emitted from the rotary speaker while the rotor rotates about the predetermined rotational axis by a predetermined angle; and a reproduction unit configured to read out the sample values, constituting the waveform data from the storage unit, corresponding to count values of a master sample counter, the count values corresponding to a rotation angle of the rotor and being updated at a given speed, to generate musical sound signals based on the read-out sample values, wherein the reproduction unit is configured to generate each musical sound signal by: reading out from the storage unit sample values of different segments of the waveform data, a position of each segment corresponding to the count values of the master sample counter; and overlapping and adding the read out sample values.
2. The musical sound signal generation apparatus according to claim 1, further comprising: an operator for setting a rotating speed of the rotor, wherein the reproduction unit is configured to generate the musical sound signals corresponding to the count values of the master sample counter that corresponds to the rotation angle of the rotor and updated by the rotation speed of the rotor according to an operation state of the operator.
3. The musical sound signal generation apparatus according to claim 1, wherein the reproduction unit changes a reproduction speed of the musical sound using a pitch synchronous overlap and add technique.
4. The musical signal generation apparatus according to claim 1, wherein the reproduction unit is configured to repeatedly reproduce the waveform data between loop points that are set at a beginning and an end of each waveform data.
5. The musical signal generation apparatus according to claim 1, wherein each waveform data corresponds to a musical sound signal expressing a musical sound of a single tone wheel emitted from the rotary speaker.
6. The musical signal generation apparatus according to claim 5, wherein the reproduction unit is configured to generate a plurality of musical sound signals each corresponding to a single tone wheel, based on a pressed one key of a keyboard device.
7. The musical signal generation apparatus according to claim 1, wherein each waveform data corresponds to a musical sound signal expressing a musical sound including sounds of a plurality of tone wheels emitted from the rotary speaker.
8. The musical signal generation apparatus according to claim 1, wherein the reproduction unit reads out the sample values of each segment of one waveform data, and overlaps and adds the sample values corresponding to pressed one key of a keyboard device.
9. The musical sound signal generation apparatus according to claim 1, wherein the reproduction unit: provides slave sample counters each corresponding to each of the sound signals; updates count values of the slave sample counters to be approximately synchronous with the count values of the master sample counter; and reads out sample values from the storage unit of each segment, a position of each segment corresponding to the count values of the slave sample counters.
10. The musical sound signal generation apparatus according to claim 1, wherein the reproduction unit provides a plurality of tone generation channels each of which reads out the sample values from the storage unit of each segment.
11. The musical sound signal generation apparatus according to claim 2, wherein the count values of the master sample counter is updated by adding the count values of the master sample counter and a master reproduction speed factor according to the operation state of the operator.
12. The musical sound signal generation apparatus according to claim 11, wherein the master reproduction speed factor corresponds to a factor of speed at which a reference waveform data is reproduced, the reference waveform data corresponding to a reference time for the rotor to complete a single rotation when the operation state of the operator is set at a reference state.
13. The musical sound signal generation apparatus according to claim 12, wherein the reproduction unit: provides slave sample counters each corresponding to each of the sound signals; updates count values of the slave sample counters to be approximately synchronous with the count values of the master sample counter; reads out sample values from the storage unit of each segment, a position of each segment corresponding to the count values of the slave sample counters; and updates each of the count values of the slave sample counters by adding each of the count values of the slave sample counters and a value obtained by multiplying the master reproduction speed factor and a slave reproduction speed factor to each of the count values of the slave sample counters.
14. The musical sound signal generation apparatus according to claim 13, wherein the slave reproduction speed factor corresponds to a ratio of a length of the waveform data with respect to a length of the reference waveform data.
15. The musical sound signal generation apparatus according to claim 10, wherein: each of the tone generation channels generates grain as a signal of a portion of a musical sound signal, and one of the tone generation channels overlaps and adds each grain to generate one musical sound signal.
16. The musical sound signal generation apparatus according to claim 3, wherein the musical sound is extended and shortened in a time axis direction by the pitch synchronous overlap and add technique.
17. A musical sound signal generation method of generating musical sound signals expressing musical sounds emitted from a rotary speaker having a rotor that rotates about a predetermined rotational axis so that a sound emission direction rotates as the rotor rotates, the musical sound signal generation method comprising the steps of: storing in a storage unit at least one waveform data each constituted by a plurality of sample values and expressing an acoustic waveform of a musical sound emitted from the rotary speaker while the rotor rotates about the predetermined rotational axis by a predetermined angle; and generating musical sound signals by reading out the sample values, constituting the waveform data from the storage unit, corresponding to count values of a master sample counter, the count values corresponding to a rotation angle of the rotor and being updated by a given speed, wherein the generating step generates each musical sound by: reading out from the storage unit sample values of different segments of the waveform data, a position of each segment corresponding to the count values of the master sample counter; and overlapping and adding read out sample values.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
DESCRIPTION OF EMBODIMENTS
(15) Hereinafter, an embodiment of an aspect of the present invention (hereinafter referred to as the present embodiment as well) will be described with reference to the drawings. However, the embodiments described hereinafter are merely examples of the present invention in all respects. Various improvements and modifications can be performed without departing from the scope of the present invention. That is, in the implementation of the present invention, specific configurations corresponding to the embodiment may be used as appropriate.
(16) First Embodiment
(17) First, an overview of an electronic musical instrument 10, which is a musical sound signal generation apparatus according to an embodiment of the present invention and is illustrated in
(18) The waveform data WD is generated based on sampling data, which is obtained by sampling a sound that is emitted when a signal output from an electric organ is input to a rotary speaker in a state in which a single tone wheel of the electric organ is selected (e.g., a state in which only the 8 drawbar among the drawbars is pulled out and one key is pressed). The waveform data WD expresses the waveform of a musical sound emitted while the rotor of the rotary speaker performs one rotation about its rotational axis. Hereinafter, the waveform data WD corresponding to the note number NN will be denoted as waveform data WD.sup.(NN). The electronic musical instrument 10 repeatedly reads out the waveform data WD.sup.(NN) to continuously reproduce the musical sound signal corresponding to the note number NN. When multiple musical sound signals of different pitches are reproduced, the phases of the multiple reproduced musical sound signals are approximately synchronous. The phase of a musical sound signal corresponds to the orientation of the opening portion of the rotor (rotational angle about the rotational axis of the rotor).
(19) Also, the electronic musical instrument 10 has a time stretching function. The time stretching function is a function of changing the length of a sound while maintaining the pitch and formant of the sound. In other words, with the time stretching function, it is possible to extend and shorten a sound in a time axis direction, or in other words, it is possible to change only the reproduction speed (speed with which time advances) of the musical sound signal. The electronic musical instrument 10 uses the time stretching function to extend and shorten each piece of waveform data in the time axis direction by the same extension and shortening rates. That is, the electronic musical instrument 10 changes the reproduction speed of the musical sound signal. Accordingly, the electronic musical instrument 10 imitates a reproduced sound (the above-described sound emitted from the rotary speaker) at a time when the rotation speed of the rotor of the rotary speaker is set to SLOW in the electric organ, a reproduced sound at a time when the rotation speed of the rotor is set to FAST, and a reproduced sound at a time when the rotation speed of the rotor gradually changes. Note that in the present embodiment, a known pitch synchronous overlap and add method is used to achieve the time stretching function.
(20) Configuration Example
(21) Next, a configuration example of the electronic musical instrument 10 will be described. As illustrated in
(22) The input operators 11 include musical performance operators and setting operators. As shown in
(23) For example, as illustrated in
(24) Also, for example, as illustrated in
(25) Also, for example, a rotor speed selection switch RV is included in the setting operators. The rotor speed selection switch RV is an operator for selecting whether to imitate a sound reproduced when the rotation speed of the rotor of the rotary speaker is set to SLOW, a sound reproduced when the rotation speed is set to FAST, or a sound reproduced when the rotation speed is set to STOP. The rotor speed selection switch RV is constituted by two tact switches respectively corresponding to SLOW and FAST. When the tact switch corresponding to SLOW is pressed, the instruction value of the rotor speed selection switch RV is set to SLOW. Also, when the tact switch corresponding to FAST is pressed, the instruction value of the rotor speed selection switch RV is set to FAST. Also, when the two tact switches are pressed simultaneously, the instruction value of the rotor speed selection switch RV is set to STOP. The rotor speed selection switch RV corresponds to an operator for setting the reproduction speed of the musical sound of the present invention.
(26) The control unit 12 includes a CPU 12a, a ROM 12b, and a RAM 12c, which are each connected to the bus BS. The CPU 12a reads out various types of programs to perform operations of the electronic musical instrument 10 from the ROM 12b and executes them. For example, in accordance with the various types of programs, the CPU 12a detects the operation states of the keyboard device KY, the drawbar DB.sub.j, the rotor speed selection switch RV, and the like, and controls the tone generator circuit 16 based on the detection result.
(27) In addition to the programs, the ROM 12b stores various types of data, such as initial setting parameters, waveform data information expressing information (head addresses, end addresses, etc.) relating to each piece of waveform data WD.sup.(NN), and graphical data and character data for generating display data expressing images to be displayed on the display device 13. Data needed during the execution of the various types of programs is temporarily stored in the RAM 12c.
(28) The display device 13 is constituted by a liquid crystal display (LCD). The display data generated using the graphical data, character data, and the like is supplied from the control unit 12 to the display device 13. The display device 13 displays images based on the display data.
(29) Also, the storage device 14 includes a large-capacity non-volatile recording medium such as an HDD, FDD, CD, or DVD, and a drive unit corresponding to the recording medium. The external interface circuit 15 includes a connection terminal (e.g., a MIDI input/output terminal) that allows the electronic musical instrument 10 to be connected to an external device such as another electronic musical instrument or a personal computer. The electronic musical instrument 10 can also be connected to a communication network such as a LAN (Local Area Network) or the Internet via the external interface circuit 15.
(30) As illustrated in
(31) The control unit CT controls the sound generation unit SP in accordance with instructions from the CPU 12a. As will be described in detail later, the control unit CT has multiple counter circuits (master sample counter C.sub.ms.sup.(CT), slave sample counters C.sub.ss.sup.(NN=1 to 91), sampling period counters C.sub.P.sup.(NN=1 to 91)), which are used to synchronize the reproduction speeds and phases of the musical sound signals.
(32) The sound generation unit SP includes multiple (e.g., 273) sound generation channels CH.sup.(n=1, 2, . . . , 273). The configurations of the tone generation channels CH.sup.(n) are the same. The tone generation channel CH.sup.(n) has a reading circuit DRD.sup.(n), an overlap and add circuit OLA.sup.(n), and a volume control circuit VOL.sup.(n).
(33) The readout circuit DRD.sup.(n) is connected to the waveform memory WM. The waveform memory WM stores multiple pieces of waveform data WD expressing waveforms of musical sounds of an electric organ. The waveform data WD can be generated as follows using a rotary speaker 20 illustrated in
(34) Next, a portion generated while the rotor performs one rotation about the rotational axis from a state of facing a predetermined direction (e.g., the front) is cut out from each piece of sampling data obtained in the manner described above, and thus source data corresponding to one tone wheel is generated. By repeating this task for the sampling data corresponding to each tone wheel, source data for all of the tone wheels is generated. That is, one piece of source data is generated per tone wheel. In the present embodiment, the waveform memory WM stores data, which is obtained by using an apparatus other than the electronic musical instrument 10 to modify the source data as follows, as the waveform data WD. That is, the other apparatus is used to apply a pitch synchronous overlap and add method, for example, to the generated source data, whereby data indicating a state in which only the reproduction speed is doubled is generated in advance without changing the pitch and formant of the source data. The waveform memory WM stores this data as the waveform data WD. Note that loop points are set at the head and end of each piece of waveform data WD. Each piece of waveform data WD is repeatedly reproduced between the loop points. Accordingly, when the source data is cut out from the sampling data, the cutting-out position is adjusted in each piece of source data such that no noise is generated within the boundaries of the end and head of the source data when the source data is looped. For example, a position of node of a fundamental tone is set as a cutting-out position. The nodes are the positions at each of that the phase of the fundamental tone has the predetermined same value. Accordingly, there are cases where several pieces of source data are somewhat longer or shorter than the source data of a length of time exactly equal to the length of time for one rotation of the rotor. Thus, there are cases where the length is somewhat different for each piece of waveform data WD.
(35) Also, using an apparatus other than the electronic musical instrument 10, the pitches of segments of the waveform data WD are analyzed in advance, and pitch mark values that correspond to the positions of the nodes of the fundamental tone of each segment are calculated. The pitch mark values correspond to the number of samples from the head of the waveform data WD to the position of the node. That is, the pitch mark values are addresses associated with storage regions in which the sample values constituting the waveform data WD are stored, and indicate addresses corresponding to the nodes of the fundamental tone. The pitch mark values correspond to offset addresses with respect to the head addresses of the waveform data WD. For example, as illustrated in
(36) The readout circuit DRD.sup.(n) reads out a sample value from the waveform memory WM each sampling period. The readout circuit DRD.sup.(n) supplies the read-out sample values to the overlap and add circuit OLA.sup.(n).
(37) As illustrated in
(38) The addition circuits ADD.sup.(n=1), ADD.sup.(n=2), . . . , and ADD.sup.(n=273) are connected to each other. An addition circuit ADD.sup.(n=a) is configured to add a sample value supplied from a multiplication circuit MUL.sup.(n=a) and a sample value supplied from another addition circuit ADD.sup.(n=b) and to be able to supply the obtained result to yet another addition circuit ADD.sup.(n=c). Also, the addition circuit ADD.sup.(n) supplies the sample value obtained by addition to the volume control circuit VOL.sup.(n).
(39) The volume control circuit VOL.sup.(n) amplifies the sample value supplied from the overlap and add circuit OLA.sup.(n) in accordance with instructions from the CPU 12a and outputs the result to the mixer unit MX.
(40) The signal processing unit DP applies effects such as reverb and delay to the sound expressed by the input waveform data and outputs the result.
(41) Each sampling period, the mixer unit MX adds the sample value supplied from the tone generation channels CH.sup.(n=1), CH.sup.(n=2), . . . ,CH.sup.(n=273), and the signal processing unit DP and supplies the result to the sound system 17.
(42) The sound system 17 includes a D/A converter that converts a digital sound signal supplied from the mixer unit MX into an analog sound signal and an output terminal that outputs the converted analog sound signal to an external device (a power amplifier, etc.).
(43) Operation Example
(44) Next, an operation example of the electronic musical instrument 10 will be described. The electronic musical instrument 10 according to the present embodiment reproduces a musical sound signal corresponding to one note number NN using a track TK constituted by three tone generation channels CH. The electronic musical instrument 10 includes 273 tone generation channels CH, and therefore can include 91 tracks TK. One note number NN is assigned per track TK. Hereinafter, a track TK corresponding to a note number NN (=1 to 91) will be denoted as track TK.sup.(NN). Also, the track TK.sup.(NN) is constituted by tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), and CH.sup.(n=NN+182) (see
(45) With an electric organ, all of the tone wheels are always rotating, and when a key is pressed, the output signals of the magnetic pickups of multiple tone wheels corresponding to the pressed key are added together and the added output signal is reproduced as a musical sound. In contrast to this, in the electronic musical instrument 10, all of the tracks TK.sup.(NN=1 to 91) always output musical sound signals. However, in the state in which no key of the keyboard device of the electronic musical instrument 10 is pressed, the volumes of all of the tracks TK are set to 0. When a key is operated, the note numbers NN of the other eight harmonics whose fundamental tone is the pitch of that key are calculated. Then, the volumes of the nine tracks TK.sup.(NN) corresponding to the note numbers NN of the fundamental tone and the harmonics are changed according to the operation states of the drawbars DB.sub.j=1, 2, . . . , 9. Accordingly, the electronic musical instrument 10 according to the present embodiment imitates the operation of the above-described electric organ. Note that the phases of the musical sound signals reproduced by the tracks TK are approximately synchronous. Also, the reproduction speeds of the musical sound signals of the tracks TK are approximately synchronous.
(46) The tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), CH.sup.(n=NN+182) of the track TK.sup.(NN) each generate a signal (hereinafter referred to as grains GR.sub.i=0, 1, 2, . . . ) of a portion of the musical sound signal. The grains GR.sub.i generated by the tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), and CH.sup.(n=NN+182) are subjected to overlap and add by the tone generation channels CH.sup.(n=NN) and are supplied to the mixer unit MX as one musical sound signal.
(47) The grains GR.sub.i are partial segments of the waveform data WD.sup.(NN) corresponding to the note number NN, and correspond to waveform data formed by applying the window function illustrated in
(48) The tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), and CH.sup.(n=NN+182) operate cyclically to reproduce the grains GR.sub.i. That is, as illustrated in
(49) CPU
(50) First, operations of the CPU 12a will be described. When the power source of the electronic musical instrument 10 is turned on, the CPU 12a sets note-on flags FN.sup.(NN=13 to 55), which indicate whether or not the keys to which the note numbers NN are assigned are being pressed, to 0. When the performer presses one of the keys of the keyboard device, the CPU 12a detects the note number NN assigned to the pressed key. Then, as illustrated in
(51) Also, the CPU 12a calculates volume values VL.sup.(NN) relating to the note numbers NN at a predetermined time interval (e.g., every 10 milliseconds) and supplies them to the tone generator circuit 16. The volume values VL.sup.(NN) are calculated based on the following equation (1) using the note-on flags FN.sup.(NN) and current instruction values DV.sub.j of the drawbars DB.sub.j.
(52)
(53) Note that the note-on flags FN.sup.(NN<13) and the note-on flags FN.sup.(NN>55) are set to 0.
(54) When the performer operates the rotor speed selection switch RV, the CPU 12a detects the instruction value (SLOW, FAST, or STOP) of the rotor speed selection switch RV. The CPU 12a sets a master reproduction speed factor according to the detection result. The master reproduction speed factor corresponds to the factor of the speed at which the waveform data (hereinafter referred to as reference waveform data) of a length of time equal to the length of time it takes for a rotor of a rotary speaker to perform one rotation when the rotation speed switch of the rotor of the rotary speaker to be imitated is set to SLOW. Note that the reference waveform data is virtual data for describing the present embodiment and approximately matches the source data. In the first embodiment, the waveform memory WM stores waveform data generated by doubling the reproduction speed of the source data and does not necessarily store the reference waveform data. When the reference waveform data is reproduced at its original length (speed), the master reproduction speed factor is 1.0. When the reference waveform data is reproduced at half of its original length (double speed), the master reproduction speed factor is 2.0. Here, in the first embodiment, the waveform data WD stored in the waveform memory WM is, as described above, generated by doubling only the reproduction speed of the source data. For this reason, when the instruction value of the rotor speed selection switch RV indicates SLOW, the CPU 12a sets the master reproduction speed factor to 0.5 and supplies it to the tone generator circuit 16. On the other hand, when the instruction value of the rotor speed selection switch RV indicates FAST, the CPU 12a sets the master reproduction speed factor to 4 and supplies it to the tone generator circuit 16. Also, when the instruction value of the rotor speed selection switch RV indicates STOP, the CPU 12a sets the master reproduction speed factor to 0 and supplies it to the tone generator circuit 16. Furthermore, after the instruction value of the rotor speed selection switch RV is changed, the CPU 12a gradually changes the value of the master reproduction speed factor from the value before the change to the value resulting from the change. At this time, the master reproduction speed factor may include a decimal portion.
(55) Control unit of tone generator circuit
(56) Next, the operation of the control unit CT of the tone generator circuit 16 will be described. When the power source of the electronic musical instrument 10 is turned on, the control unit CT of the tone generator circuit 16 sets a count value t.sub.ms.sup.(CT) of the master sample counter C.sub.ms.sup.(CT) to 0. Also, the control unit CT sets the count values t.sub.ss.sup.(NN=1 to 91) of the slave sample counters C.sub.ss.sup.(NN=1 to 91) to 0. Also, the control unit CT sets the count values t.sub.p.sup.(NN=1 to 91) of the sampling period counters C.sub.p.sup.(NN=1 to 91) for counting the number of sampling periods that have elapsed to 0.
(57) Also, the control unit CT updates the count values t.sub.p.sup.(NN) by incrementing the count values t.sub.p.sup.(NN) each sampling period (e.g., every 1/44100 of a second). Note that if the count value t.sub.p.sup.(NN) exceeds the total number of sample values constituting the waveform data WD.sup.(NN) corresponding to the note number NN, the control unit CT subtracts the total number of the sample values from the count value t.sub.p.sup.(NN).
(58) Also, the control unit CT updates the count value t.sub.ms.sup.(CT) by adding the master reproduction speed factor to the count value t.sub.ms.sup.(CT) each sampling period. Note that if the count value t.sub.ms.sup.(CT) exceeds an ideal number of samples, the control unit CT subtracts the ideal number of samples from the count value t.sub.ms.sup.(CT). The ideal number of samples can be specified based on the sampling rate, the rotation rate of the rotor to be recorded, and the rotation speed. For example, if a sound generated while a rotor that rotates 100 times a minute rotates once is sampled at 44.1 kHz, the ideal number of samples is 26460. The count value t.sub.ms.sup.(CT) of the master sample counter C.sub.ms.sup.(CT) indicates the reproduction position serving as a reference for reproducing the pieces of waveform data WD with the phases of the rotor aligned. Note that in the pieces of the waveform data WD, there is a possibility that time shifting will occur even in data corresponding to the same number of rotations (e.g., one rotation) due to circumstances such as the state of the motor during recording.
(59) In view of this, the control unit CT updates the count value t.sub.ss.sup.(NN) by adding a value obtained by multiplying the master reproduction speed factor and a slave reproduction speed factor .sup.(NN) to the count value t.sub.ss.sup.(NN) each sampling period. The count values t.sub.ss.sup.(NN) of the slave sample counters C.sub.ss.sup.(NN) indicates the reproduction positions of the pieces of waveform data WD. Here, the slave reproduction speed factor .sup.(NN) corresponds to the ratio of the length of the waveform data WD.sup.(NN) with respect to the length of reference waveform data. That is, by multiplying the slave reproduction speed factor .sup.(NN), the above-described time shifting is corrected. Note that if the count value t.sub.ss.sup.(NN) exceeds the total number of sample values constituting the waveform data WD.sup.(NN) corresponding to the note number NN, the control unit CT subtracts the total number of the sample values from the count value t.sub.ss.sup.(NN).
(60) Sometimes the ratio of one or more count values among the count values t.sub.ss.sup.(NN=1), t.sub.ss.sup.(NN=2), . . . with respect to the count value t.sub.ms.sup.(CT) shifts from an ideal value for some reason (e.g., the number of digits in the decimal portion being limited). In this case, the reproduction speed of the track TK in which the shifting has occurred is corrected as follows such that the shifting is included within a predetermined allowed range. Here, the ratio between the count value t.sub.ms.sup.(CT) and the count value t.sub.ss.sup.(NN) is shifted from an ideal value, and the shifting is outside of the allowed range. In this case, the control unit CT adds a value obtained by furthermore adding a predetermined correction factor to a value obtained by multiplying the master reproduction speed factor and the slave reproduction speed factor .sup.(NN), to the count value t.sub.ss.sup.(NN). The correction factor is supplied in advance from the CPU 12a to the control unit CT. For example, the correction factor is set to 1.19 and 1/1.19. When the reproduction position of the track TK.sup.(NN) is behind the reproduction position of another track TK, the control unit CT multiplies a value obtained by multiplying the master reproduction speed factor and the slave reproduction speed factor .sup.(NN) by 1.19, and adds the resulting value to the count value t.sub.ss.sup.(NN). In other words, the reproduction speed of the track TK.sup.(NN) is increased. On the other hand, if the reproduction position of the track TK.sup.(NN=k) has advanced excessively with respect to the reproduction position of another track TK.sup.(NNk), the control unit CT multiplies a value obtained by multiplying the master reproduction speed factor and the slave reproduction speed factor .sup.(NN) by 1/1.19 and adds the resulting value to the count value t.sub.ss.sup.(NN). In other words, the reproduction speed of the track TK.sup.(NN) is reduced. Thus, the count value t.sub.ss.sup.(NN) is approximately synchronous with the count value t.sub.ms.sup.(CT).
(61) Then, if the count value t.sub.p.sup.(NN) exceeds a pitch mark of the waveform data WD.sup.(NN), the control unit CT starts the generation of a new grain GR.sub.i that corresponds to the segment SG.sub.i that uses the pitch mark value immediately before the count value t.sub.ss.sup.(NN) as the origin on the corresponding track TK.sup.(NN). At this time, as illustrated in
(62) Here, the count value t.sub.ss.sup.(NN) is a value obtained by the master reproduction speed factor being reflected in the count value t.sub.p.sup.(NN). For this reason, as shown in
(63) Also, as described above, the control unit CT receives the volume values VL.sup.(NN=1 to 91) from the CPU 12a at the predetermined time interval. Also, the control unit CT sets the amplification degree of the volume value control circuit VOL.sup.(n=NN) of the tone generation channel CH.sup.(n=NN) of the track TK.sup.(NN) in accordance with the volume value VL.sup.(NN).
(64) Tone generation channel of tone generator circuit
(65) Next, operations of the three tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), and CH.sup.(n=NN+182) included in the tone generator circuit 16 will be described. Note that the operations of the tone generation channels CH.sup.(n=NN+91) and CH.sup.(n=NN+182) are similar to the operations of the tone generation channel CH.sup.(n=NN). For this reason, in the description below, for the sake of convenience in the description, the operations of the tone generation channel CH.sup.(n=NN) will be described representatively.
(66) When the tone generation channel CH.sup.(n=NN) is instructed to start the generation of the grain GR.sub.i by the control circuit CT, the reading circuit DRD.sup.(n=NN) reads out a sample value from the waveform memory WM each sampling period and supplies it to the overlap and add circuit OLA.sup.(n=NN). The readout address of the sample value is initialized to a value obtained by adding the value of the integer portion of the pitch mark value of the origin to the head address of the waveform data WD.sup.(n=NN). Thereafter, the tone generation channel CH.sup.(n=NN) increments the readout address each sampling period and reads out the sample value at that address of the waveform data WD.sup.(n=NN) until receiving an operation stop instruction from the control unit CT. The multiplication circuit MUL.sup.(n=NN) of the overlap and add circuit OLA.sup.(n=NN) multiplies the sample value supplied from the reading circuit DRD.sup.(n=NN) by a coefficient calculated based on the window function illustrated in
(67) At this time, the indexes i of the segments SG.sub.i of the grains GR.sub.i generated by the tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), and CH.sup.(n=NN+182) are selected according to the instruction value of the rotor speed selection switch RV, as described above. Specifically, if the instruction value of the rotor speed selection switch RV is set to FAST, the tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), and CH.sup.(n=NN+182) generate the grains GR.sub.i of the target segments SG.sub.i while skipping some of the segments SG.sub.i. On the other hand, if the instruction value of the rotor speed selection switch RV is set to SLOW, the tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91) and CH.sup.(n=NN+182) repeatedly generate grains GR.sub.i corresponding to the same segment SG.sub.i. Accordingly, the tone generator circuit 16 can change the reproduction speed of the musical sound signal corresponding to waveform data WD.sup.(NN) without changing the pitch and formant. Also, by reproducing such a musical sound signal whose reproduction speed was changed without changing the pitch and formant thereof at a predetermined volume, the electronic musical instrument 10 can imitate a musical sound emitted from a rotor that rotates at a predetermined rotation speed.
(68) Characteristics
(69) The electronic musical instrument 10 according to the first embodiment uses waveform data expressing a musical sound emitted from a rotary speaker while a rotor rotates by a predetermined angle, and therefore the effect of the rotary speaker can be imitated reliably. Also, the electronic musical instrument 10 according to the first embodiment reproduces the musical sound signal by repeatedly reading out waveform data WD.sup.(NN) indicating a musical sound emitted from a rotary speaker while a rotor performs approximately one rotation. At this time, as described above, according to the instruction value of the rotor speed selection switch RV, the electronic musical apparatus 10 skips a portion of segments SG.sub.i to be reproduced in the tracks TK.sup.(NN) or repeatedly reproduces the same segment SG.sub.i, thereby changing the reproduction speed of the waveform data WD.sup.(NN). Accordingly, with the first embodiment, no complicated calculation such as a convolution calculation is needed, and therefore it is possible to suppress the component cost. Accordingly, with the first embodiment, it is possible to provide a low-cost musical sound signal generation apparatus capable of reliably imitating the sound of an electric organ emitted from a rotary speaker.
(70) In addition, with the electronic musical instrument 10 according to the present embodiment, when the instruction value of the rotor speed selection switch RV is switched from FAST to SLOW, SLOW to FAST, or the like, the CPU 12a of the control unit 12 gradually changes the value of the master reproduction speed factor from the value before the change to the value resulting from the change. In other words, when the instruction value of the rotor speed selection switch RV is switched, the value added to the count value t.sub.ss.sup.(NN), which is the reference for determining the index i of the segment SG.sub.i reproduced in the tracks TK.sup.(NN), is changed gradually. For this reason, with the present embodiment, the extension/shortening rate of the reproduction speed of the musical sound signal that is extended or shortened using the time stretching function is changed gradually. Accordingly, the electronic musical instrument 10 according to the present embodiment can imitate a musical sound emitted from a rotor whose rotational speed is changing gradually.
(71) Also, the phase of each musical sound signal corresponds to the rotation angle of the rotor of the rotary speaker. In the first embodiment, the count value t.sub.ms.sup.(CT) of the master sample counter C.sub.ms.sup.(CT) corresponds to the rotation angle of the rotor. Also, the count value t.sub.ss.sup.(NN) of the slave sample counter C.sub.ss.sup.(NN) is approximately synchronous with the count value t.sub.ms.sup.(CT) of the master sample counter C.sub.ms.sup.(CT). In other words, in the tracks TK.sup.(NN), sample values stored at addresses that correspond to each other are read out. In other words, the phases of the reproduced musical sounds are approximately synchronous. That is, the musical sound signals generated by the tracks TK.sup.(NN) represent musical sounds in a state in which the rotor of a rotary speaker is facing approximately the same direction. Accordingly, with the first embodiment, it is possible to reliably imitate a state in which multiple musical sounds are emitted from one rotor.
(72) Second Embodiment
(73) Next, an electronic musical instrument 10A according to a second embodiment of the present invention will be described. In the first embodiment, the index n of a tone generation channel CH.sup.(n) assigned to a track TK.sup.(NN) is determined in advance. That is, tone generation channels CH.sup.(n=NN), CH.sup.(n=NN+91), and CH.sup.(n=NN+192) are assigned to the track TK.sup.(NN). Also, all of the tracks TK.sup.(NN=1 to 91) always reproduce musical sound signals. In contrast to this, in the second embodiment, the tone generation channels CH.sup.(n) are assigned to the tracks TK.sup.(NN) dynamically. In other words, the tracks TK.sup.(NN) are formed dynamically. Other configurations are similar to those in the first embodiment.
(74) Note that in the second embodiment, for the sake of convenience, a note number assigned to a pressed key is denoted as note number KN, and a note number corresponding to a harmonic of that key is denoted as note number NN. Also, as illustrated in
(75) The hardware configuration of the electronic musical instrument 10A is similar to that of the first embodiment (see
(76) That is, the harmonic flags FH.sup.(KN=13 to 55, NN=1 to 91) are set to 0 when the power source of the electronic musical instrument 10A is turned on. When a key with the note number KN is pressed, the CPU 12a sets the harmonic flags FH.sup.(KN,NN) corresponding to the note numbers NN of the fundamental tone and the eight harmonics set to the sound-generating state to 1. Conversely, when the key with the note number KN is released, the CPU 12a sets the harmonic flags FH.sup.(KN,NN) corresponding to the note number NN of the fundamental tone and the eight harmonics set to the sound-generating state to 0. Accordingly, when the key with the note number KN is pressed, the harmonic flags FH.sup.(KN,NN=KN12), FH.sup.(KN,NN=KN+7), FH.sup.(KN,NN=KN), FH.sup.(KN,NN=KN+12), FH.sup.(KN,NNKN+19), FH.sup.(KN,NN=KN+24), FH.sup.(KN,NN=KN+28), FH.sup.(KN,NN=KN+31), and FH.sup.(KN,NN=KN+36) are set to 1. Accordingly, when the key with the note number KN is released, the harmonic flags FH.sup.(KN,NN=KN12), FH.sup.(KN,NN=KN+7), FH.sup.(KN,NN=KN), FH.sup.(KN,NN=KN+12), FH.sup.(KN,NN=KN+19), FH.sup.(KN,NN=KN+24), FH.sup.(KN,NN=KN+28), FH.sup.(KN,NN=KN+31), and FH.sup.(KN,NN=KN+36) are set to 0. Note that it is sufficient that nine harmonic flags FH are provided per note number KN, as described above. For this reason, a harmonic flag FH relating to a note number NN that cannot be a harmonic of the note number KN (a harmonic flag FH.sup.(KN,NN) that corresponds to a portion denoted by a diagonal line in
(77) The track-on flags FT.sup.(NN=1 to 91) are flags indicating the operation states of the tracks TK.sup.(NN). The track-on flags FT.sup.(NN=1 to 91) are set to 0 when the power source is turned on. When at least one of the harmonic flag FH.sup.(KN=13,NN) to the harmonic flag FH.sup.(KN=55,NN) is 1, the CPU 12a sets the track-on flag FT.sup.(NN) to 1. On the other hand, when all of the flags among the harmonic flag FH.sup.(KN=13,NN) to the harmonic flag FH.sup.(KN=55,NN) are 0, the CPU 12a sets the track-on flag FT.sup.(NN) to 0.
(78) Specifically, the CPU 12a operates as follows. That is, when the performer presses one of the keys of the keyboard device, the CPU 12a detects the note number KN assigned to the pressed key. Similarly to the first embodiment, the CPU 12a sets the note-on flag FN.sup.(KN) to 1. Furthermore, the CPU 12a sets the nine harmonic flags FH relating to the detected note number KN to 1.
(79) Next, the CPU 12a updates the track-on flags FT.sup.(NN) relating to the note numbers NN as follows. That is, when at least one of the harmonic flag FH.sup.(KN=13,NN=i) to the harmonic flag FH.sup.(KN=55,NN=i) is 1, the CPU 12a sets the track-on flag FT.sup.(NN=i) to 1. When the track-on flag FT.sup.(NN) transitions from 0 to 1, the CPU 12a assigns three tone generation channels CH that are not operating to the track TK.sup.(NN). Accordingly, the CPU 12a dynamically assigns the tone generation channels CH.sup.(n) to the track TK.sup.(NN). Then, the CPU 12a supplies a command instructing reproduction of a musical sound signal using the waveform data WD.sup.(NN) in the three tone generation channels CH assigned to the track TK.sup.(NN) to the tone generator circuit 16.
(80) On the other hand, when the performer releases the key that was pressed, the CPU 12a detects the note number KN assigned to the released key. Then, the CPU 12a sets the note-on flag FN.sup.(KN) to 0. Furthermore, the CPU 12a sets the nine harmonic flags FH.sup.(KN,NN) relating to the detected note number KN to 0.
(81) Next, the CPU 12a updates the track-on flags FT.sup.(NN) relating to the note numbers NN as follows. That is, when all of the flags among the harmonic flag FH.sup.(KN=13,NN=i) to the harmonic flag FH.sup.(KN=55,NN=i) are 0, the CPU 12a sets the track-on flag FT.sup.(NN=i) to 0. When the track-on flag FT.sup.(NN) transitions from 1 to 0, the CPU 12a supplies a command instructing release (stopping operation and setting to a state of being assignable to a new track TK) of the three tone generation channels CH assigned to the track TK.sup.(NN) to the tone generator circuit 16.
(82) Also, at a predetermined time interval (e.g., 10 milliseconds), the CPU 12a calculates the volume value VL.sup.(NN) relating to the note number NN and supplies it to the tone generator circuit 16. Note that it is sufficient that from among the track-on flags FT.sup.(NN=1 to 91), the CPU 12a selects a track-on flag FT.sup.(NN) whose value is 1, calculates only the volume value VL.sup.(NN) relating to the note number that corresponds to the selected track-on flag FT.sup.(NN), and supplies it to the tone generator circuit 16. Similarly to the first embodiment, the volume value VL.sup.(NN) is calculated based on the following equation (2) using the note-on flag FN.sup.(KN) and the instruction values DV.sub.j of the drawbars DB.sub.j.
(83)
(84) Note that the note-on flags FN.sup.(KN<13) and the note-on flags FN.sup.(KN>55) are set to 0.
(85) Also, similarly to the first embodiment, the CPU 12a sets the master reproduction speed factor according to the instruction value of the rotor speed selection switch RV.
(86) Similarly to the first embodiment, the control unit CT of the tone generator circuit 16 updates the count value t.sub.p.sup.(NN) and the count value t.sub.ms.sup.(CT) each sampling period (e.g., every 1/44100 of a second). Also, the control unit CT starts the operation of the three tone generation channels CH.sup.(n) assigned to the track TK.sup.(NN) in accordance with the instruction from the CPU 12a. At this time, the count value t.sub.ss.sup.(NN) of the slave sample counter C.sub.ss.sup.(NN) is determined (initialized) according to the count value t.sub.ms.sup.(CT) of the master sample counter C.sub.ms.sup.(CT). For example, the control unit CT sets the pitch mark value immediately preceding the count value t.sub.ms.sup.(CT) among the pitch mark values of the waveform data WD.sup.(NN) as the initial value of the count value t.sub.ss.sup.(NN). Thereafter, the control unit CT updates the count value t.sub.ss.sup.(NN) similarly to the first embodiment. Also, the control unit CT controls the tracks TK.sup.(NN) that are operating (reproducing musical sound signals), similarly to the first embodiment. That is, each time the count value t.sub.p.sup.(NN) exceeds a pitch mark, the control unit CT causes the track TK.sup.(NN) to start generating a new grain GR.sub.i. The procedure by which the track TK.sup.(NN) reproduces the musical sound signal is also similar to that of the first embodiment. For this reason, in the second embodiment as well, the value added to the count value t.sub.ss.sup.(NN) is determined according to the setting value of the rotor speed selection switch RV, and thus the reproduction speed of the waveform data WD.sup.(NN) is set. Also, the control unit CT stops the operation of the track TK.sup.(NN) in accordance with an instruction from the CPU 12a. Furthermore, similarly to the first embodiment, the control unit CT controls the volume of the track TK.sup.(NN) based on the volume value VL.sup.(NN) received from the CPU 12a. According to the above description, the electronic musical instrument 10A can reproduce a musical sound signal specified based on the note number KN of the pressed key and the setting of the drawbars DB.sub.j, at a reproduction speed and predetermined volume based on the setting value of the rotor speed selection switch RV, and thus the electronic musical instrument 10A can imitate a musical sound emitted from a rotor rotating at a predetermined rotation speed. Note that even if the phase of a musical sound signal reproduced by a track TK.sup.(NN) and the phase of another track TK are slightly misaligned when sound generation is started, the control unit CT sequentially corrects the count value t.sub.ss.sup.(NN) using the count value t.sub.ms.sup.(CT) as an index, similarly to the first embodiment. Accordingly, the phase of the musical sound signal reproduced by the track TK.sup.(NN) is sequentially corrected, and after a while, becomes approximately synchronous with the phase of the other track TK.
(87) Others
(88) In the second embodiment, the tone generation channels CH.sup.(n) are assigned to the tracks TK.sup.(NN) dynamically. For this reason, if the number of tone generation channels included in the tone generator circuit 16 is relatively small, there is a possibility that there will not be enough tone generation channels to be assigned to the track TK.sup.(NN). In this case, similarly to the conventional electronic musical instrument, the CPU 12a may select a track TK in accordance with a predetermined rule and mandatorily attenuate the musical sound being generated in the selected track TK. Then, the CPU 12a may cause a new musical sound to be generated in the selected track TK. Accordingly, even if the number of tone generation channels of the tone generator circuit 16 is smaller than in the first embodiment, it is possible to perform operations that are approximately similar to those of the first embodiment.
(89) Also, if a drawbar DB.sub.j is completely pushed in (that is, if the instruction value thereof is 0), the track TK (tone generation channel CH.sup.(n)) for generating the musical sound signal corresponding to that drawbar DB.sub.j can be omitted. In view of this, as illustrated in
(90) Third Embodiment
(91) Next, an electronic musical instrument 10B according to a third embodiment of the present invention will be described. The hardware configuration of the electronic musical instrument 10B is similar to those of the electronic musical instrument and the electronic musical instrument 10A. However, the electronic musical instrument 10B uses waveform data WD different from that of the electronic musical instrument 10 and the electronic musical instrument 10A. Specifically, in the above-described first embodiment and second embodiment, the waveform data WD is sampled such that only the signal of the electromagnetic pickup of one turn wheel is output. In contrast to this, in the third embodiment, the keys are pressed one by one in a state in which the drawbars of the electric organ are at a predetermined setting (e.g., in a state in which one or more preset switches have been pressed) and the musical sounds emitted from the rotary speaker are sampled. The third embodiment is similar to the above-described first embodiment and second embodiment with regard to the procedure in which the source data is cut out from the sampling data, the source data is subjected to time stretching (the length of the sound is changed), and the waveform data is generated. For this reason, in the third embodiment, waveform data WD.sup.(NN=13 to 5) corresponding to the note numbers NN (=13 to 55) of the keys of the electronic musical instrument 10B is generated and stored in the waveform memory WM. Accordingly, with the electronic musical instrument 10B, one piece of waveform data WD includes the sounds (harmonics) of multiple tone wheels, and therefore the drawbars DB.sub.j do not function as operators for setting a combination of tone wheels (i.e., timber) and are used for another application.
(92) Specifically, in the third embodiment, when the performer presses one of the keys of the keyboard device, the CPU 12a detects the note number NN assigned to the pressed key. Then, the CPU 21a sets the track-on flag FT.sup.(NN) corresponding to the detected note number NN to 1 and assigns three tone generation channels CH.sup.(n) that are not operating to the track TK.sup.(NN). Also, the CPU 12a supplies a command instructing reproduction of a musical sound signal using the waveform data WD.sup.(NN) in the track TK.sup.(NN) to the tone generator circuit 16.
(93) On the other hand, when the performer releases the key that was pressed, the CPU 12a detects the note number NN assigned to the released key. Then, the CPU 12a sets the track-on flag FT.sup.(NN) corresponding to the detected note number NN to 0, and supplies a command instructing release (stopping the operation, and setting to a state of being assignable to a new track TK) of the three tone generation channels CH assigned to the track TK.sup.(NN) to the tone generator circuit 16.
(94) Also, similarly to the first embodiment, the CPU 12a sets the master reproduction speed factor . Operations of the control unit CT of the tone generator circuit 16 are similar to those of the second embodiment.
(95) In the above-described first embodiment and second embodiment, the pieces of waveform data WD each indicate a musical sound in a state in which only one tone wheel has been selected. For this reason, the tracks TK each reproduce a musical sound signal based on the waveform data WD corresponding thereto. Also, the volume values VL of the tracks TK are calculated according to the setting of the drawbars DB.sub.j. In contrast to this, in the third embodiment, the pieces of waveform data WD each indicate a musical sound at a time when the drawbars of the electric organ are set to a predetermined state (i.e., when one key is pressed in a state in which the electromagnetic pickups of multiple tone wheels have been selected). For this reason, one track TK is assigned to one key, and a musical sound signal in a state in which the electromagnetic pickups of multiple tone wheels have been selected is obtained due to the tracks TK merely reproducing the corresponding waveform data WD. Thus, with the present embodiment, there is no need to calculate the volume values VL of the tracks TK, unlike with the first embodiment and the second embodiment. Accordingly, the load on the CPU 12a can be reduced compared to the above-described first embodiment and second embodiment. Also, even if the total number of tone generation channels CH is smaller compared to the first embodiment and the second embodiment, it is possible to operate similarly to the first embodiment and the second embodiment.
(96) Note that in the third embodiment, waveform data WD indicating a musical sound at a time when the drawbars have been set to a predetermined state is used, and therefore the drawbars DB.sub.j are not used, unlike the above-described first embodiment and second embodiment. Instead, the third embodiment is configured such that one of multiple types of sets of waveform data WD can be selected by operating a button on a panel.
(97) VARIATIONS
(98) Furthermore, when carrying out the present invention, there is no limitation to the above-described embodiment, and various modifications can be made without straying from the object of the present invention.
(99) For example, in the present embodiment, the waveform memory WM stores data, which is obtained by using an apparatus that is different from the electronic musical instrument 10 to change the reproduction speed of the source data, as the waveform data WD. However, the source data may be used as-is as the waveform data WD. In this case, when the instruction value of the rotor speed selection switch RV indicates SLOW, the CPU 12a sets the master reproduction speed factor to 1. Also, when the instruction value of the rotor speed selection switch RV indicates FAST, the CPU 12a sets the master reproduction speed factor to 8.
(100) Also, for example, in the above-described embodiment, the rotation speed of the rotor is set to SLOW when obtaining the sampling data. However, the rotation speed of the rotor may be set to FAST when obtaining the sampling data. In this case, as described above, the data obtained by changing the reproduction speed of the source data extracted from the sampling data may be used as the waveform data WD, or the source data may be used as-is as the waveform data WD.
(101) Also, for example, in the above-described embodiment, the musical sound of the electric organ emitted from the rotary speaker is subjected to monaural sampling. However, instead of this, the musical sound may be subjected to stereo sampling. That is, the sound emitted from the rotary speaker may be sampled using two microphones placed at an interval in the left-right direction in front of the rotary speaker, and waveform data for a left channel and waveform data for a right channel may be generated separately. In this case, the waveform data for the left channel and the waveform data for the right channel may be reproduced using separate tracks TK. At this time, in the first embodiment, 546 tone generation channels CH.sup.(n) are provided in the tone generator circuit 16. This makes it possible to obtain a richer chorus effect.
(102) It is also possible to use a slave sample counter C.sub.ss.sup.(NN) corresponding to one of tracks TK.sup.(NN=1), TK.sup.(NN=2), . . . as a master sample counter without using the master sample counter C.sub.ms.sup.(CT). In order words, one of the tracks TK.sup.(NN=1), TK.sup.(NN=2), . . . may be used as a master track and the other tracks TK may be used as slave tracks.
(103) Also, because the difference between the length (number of samples) of the reference waveform data and the length (number of samples) of the pieces of waveform data WD is actually small, the tone generator circuit 16 may adjust the reproduction speed of the track TK by considering the slave reproduction speed factor .sup.(NN) to be 1 and using only the correction factor .
(104) Also, when waveform data expressing a key click sound of the electric organ is stored and a key is pressed, the waveform data of the key click sound may be read out and the key click sound may be added. In this case, for example, the waveform memory WM may store multiple pieces of waveform data that respectively indicate multiple key click sounds corresponding to the orientation of a rotor. Also, the tone generator circuit 16 may read out a piece of waveform data corresponding to the count value t.sub.ms.sup.(CT) (that is, the rotor rotation angle) of the master sample counter C.sub.ms.sup.(CT) from among the multiple pieces of waveform data and add the key click sound.
(105) It is also possible to imitate a rotary speaker that includes a speaker for high-pitched sounds and a speaker for low-pitched sounds and includes rotors for each speaker. In this case, the musical sounds emitted from the rotors may be sampled by placing a microphone in the vicinity of each rotor, and waveform data for the high-pitched sound and waveform data for the low-pitched sound may be generated. Then, the waveform data for the high-pitched sound and the waveform data for the low-pitched sound may be generated using separate tracks TK. At this time, it is preferable to provide a master sample counter for the group of tracks TK that reproduce the waveform data for the high-pitched sounds, and a master sample counter for the group of tracks TK that reproduce the waveform data for the low-pitched sounds. That is, it is preferable to use two master sample counters. This makes it possible to individually manage master sample counters indicating the phases of the rotors using tracks TK that imitate the rotor for the high-pitched sounds and tracks TK that imitate the rotor for the low-pitched sounds, and therefore it is possible to imitate a state in which the orientation of the rotor for the high-pitched sounds and the orientation of the rotor for the low-pitched sounds are misaligned. Note that it is possible to sample only the musical sounds of the tone wheels in the high-pitched sound region using a microphone placed in the vicinity of the rotor for the high-pitched sounds, and to sample only the musical sounds of the tone wheels in the low-pitched sound region using a microphone placed in the vicinity of the rotor for the low-pitched sounds.
(106) Also, for example, in the above-described embodiment, a pitch synchronous overlap and add method is used to change the reproduction speed of the waveform data WD, or in other words, to achieve a time stretching effect. However, the method for achieving the time stretching effect need not be limited to such an example, and may be selected as appropriate according to the embodiment. For example, an algorithm that performs overlap and add by cross-fading multiple segments cut out at a predetermined time interval that is not related to the pitch may be used to achieve the time stretching effect.
(107) Also, in the above-described embodiment, three tone generation channels CH are assigned to one track TK, and musical sound signals generated by two of those tone generation channels CH are subjected to overlap and add. However, the number of tone generation channels CH that can be assigned to one track TK and the number of musical sound signals subjected to overlap and add need not be limited to such an example, and may be selected as appropriate according to the embodiment. For example, four or more tone generation channels CH may be assigned to one track TK, and a configuration may be used in which musical sound signals generated by three or more tone generation channels CH are subjected to overlap and add.
(108) Also, in the above-described embodiment, a tone generator circuit 16 having multiple tone generation channels CH is used to achieve the time stretching effect. However, the time stretching effect may be achieved using the CPU 12a, a DSP (digital signal processor), and the like. In other words, the CPU 12a, the DSP, and the like may execute a program for reading out the waveform data WD in the RAM 12c and expanding/shortening the waveform data WD in the time axis direction. This program may be executed in real time or may be executed in non-real time.
(109) Also, in the above-described embodiments 1 to 3, the storage unit of the present invention is constituted by the waveform memory WM, and the reproduction unit is constituted by the tone generator circuit 16. That is, the electronic musical instrument 10 (10A, 10B) according to the above-described embodiments 1 to 3 is constituted as an information processing apparatus in which a dedicated circuit such as the tone generator circuit 16 is used, the information processing apparatus being designed exclusively for generation of a musical sound that imitates the effect of a rotary speaker. Note that the hardware configuration of the musical sound signal generation apparatus need not be limited to such an example, and may be selected as appropriate according to the embodiment.
(110) For example, as illustrated in
(111) Note that the storage unit 52 may be an auxiliary storage device such as a hard disk drive or a solid state drive, for example. The type of the storage unit 52 can be selected as appropriate according to the embodiment. Also, the program 8 is a program that causes the musical sound signal generation apparatus 5 to execute processing for reproducing the above-described musical sound signal. The program 8 may be recorded in the storage medium 9. The storage medium 9 is a medium that stores information such as a recorded program by electric, magnetic, optical, mechanical, or chemical means such that the information such as the program can be read by a computer or other apparatus or machine, or the like. Note that as an example of the storage medium 9,
(112) In the present variation, the control unit 51 expands the program 8 stored in the storage unit 52 to the RAM. Then, the control unit 51 interprets and executes the program 8 expanded to the RAM using the CPU so as to control the constituent elements. Accordingly, the musical sound signal generation apparatus 5 according to the present embodiment executes musical sound signal reproduction processing similarly to the electronic musical instrument 10 (10A, 10B) according to the above-described embodiments. For example, the control unit 51 can display images of a keyboard of the keyboard device, drawbars, the rotor speed selection switch, and the like illustrated in
(113) The musical sound signal generation program 8 to execute processing for reproducing the above-described musical sound signal will be described with
(114)
(115)
(116) At step S7, the CPU adds the calculated sample value of all tracks TK or tone wheels and supplies the result to the sound system 55. Then, CPU returns to step S1.
(117) Note that the musical sound signal generation apparatus in the present variation may process plural sample values at the each step and buffer the plural sample values over plural sampling periods until each of the sample values should be outputted, whereas the musical sound signal generation apparatus in embodiments 1 to 3 calculates and generates a sample value each sampling period.