Information processing device, method, and program
The electronic instrument corrects parameter values to semitone units by asymptotically changing them when no user operation is detected, addressing the challenge of stopping pitch changes in well-defined units and improving musical performance accuracy.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CASIO COMPUTER CO LTD
- Filing Date
- 2024-12-19
- Publication Date
- 2026-07-01
AI Technical Summary
Existing electronic musical instruments struggle to stop changes in parameter values, such as pitch, in well-defined units like semitones, especially when the pitch bend wheel is stopped between maximum and center positions.
The electronic instrument detects user operations on controls like the pitch bend wheel and, if no operation is detected within a set time, corrects the parameter values to a predetermined unit, such as semitones, by asymptotically changing them to a target value.
This method allows users to easily stop pitch changes in semitone increments, enhancing musical performance accuracy and reproducing the articulation of instruments like fretless string and wind instruments.
Smart Images

Figure 2026109088000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an information processing apparatus, method, and program.
Background Art
[0002] An electronic musical instrument capable of changing parameter values such as the pitch of a musical sound by operating an operator is known (see, for example, Patent Document 1).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] [[ID=三十四]] [[ID=三十五]]In the electronic keyboard musical instrument described in Patent Document 1, for example, the pitch of a musical sound can be continuously changed like guitar choking in response to a user operation on a pitch bend wheel. However, in the electronic keyboard musical instrument described in Patent Document 1, it is difficult to stop the change of parameter values such as pitch in a well-defined unit such as semitone units. [[ID=三十六]] [[ID=三十七]]
[0005] [[ID=三十八]] [[ID=三十九]]In view of the above circumstances, an embodiment of the present disclosure aims to provide an information processing apparatus, method, and program capable of satisfactorily stopping the change of parameter values. [[ID=四十]] [[ID=四十一]]
Means for Solving the Problems
[0006] [[ID=四十五]] [[ID=四十六]]An information processing apparatus according to an embodiment of the present disclosure acquires a physical operation value in response to a physical operation of a user, sets a target value in a predetermined unit corresponding to the acquired physical operation value when the physical operation value does not change by more than a set amount within a set time, sets the acquired physical operation value as the target value when the physical operation value changes by more than the set amount within the set time, and applies an acoustic effect to a musical sound based on the set target value. [Effects of the Invention]
[0007] According to one embodiment of the present disclosure, an information processing device, method, and program are provided that can effectively stop changes in parameter values. [Brief explanation of the drawing]
[0008] [Figure 1] This is an external view of an electronic musical instrument according to one embodiment of the present disclosure. [Figure 2] This is a block diagram showing the configuration of an electronic musical instrument according to one embodiment of the present disclosure. [Figure 3] This is a block diagram showing the configuration of a sound source LSI (Large Scale Integration) provided in an electronic musical instrument according to one embodiment of the present disclosure. [Figure 4] This figure illustrates the period for correcting the pitch bend effect in one embodiment of the present disclosure. [Figure 5] This figure shows an example of a table held by an electronic musical instrument according to one embodiment of the present disclosure. [Figure 6] This figure shows the asymptotic curve to the target value. [Figure 7] This diagram shows the relationship between physical operation values and target values. [Figure 8] This diagram shows the relationship between physical operation values and target values. [Figure 9] This figure shows the changes in physical and virtual operating values over time. [Figure 10] This figure shows the changes in physical and virtual operating values over time. [Figure 11] This flowchart shows a process performed by an electronic musical instrument in one embodiment of this disclosure. [Figure 12] This is the subroutine for the key press process (step S106) shown in Figure 11. [Figure 13] This is the subroutine for the key release process (step S108) shown in Figure 11. [Figure 14]This is a subroutine for the controller's steady-state processing (step S110) shown in Figure 11. [Figure 15] These are the subroutines for each of the steady-state processes (steps S401 to S404) in Figure 14. [Figure 16] This is the subroutine for the steady-state processing of the sound source (step S111) shown in Figure 11. [Modes for carrying out the invention]
[0009] The following description relates to an information processing apparatus, method, and program according to one embodiment of the present disclosure. Common or corresponding elements are denoted by the same or similar reference numerals, and redundant descriptions are omitted or simplified as appropriate.
[0010] The electronic instrument 1 shown in Figure 1 is an example of an information processing device and also an example of a musical performance device. The electronic instrument 1 is, for example, an electronic keyboard. The electronic instrument 1 may also be an electronic keyboard instrument other than an electronic keyboard, such as an electronic piano. The electronic instrument 1 may also be other forms of electronic instruments, such as electronic percussion instruments, electronic wind instruments, or electronic string instruments.
[0011] The information processing device relating to this disclosure is not limited to electronic musical instrument 1. The information processing device may be, for example, a device on which a musical instrument application that reproduces electronic musical instrument 1 is installed. Exemplary examples include a smartphone, tablet, notebook PC (Personal Computer), portable game console, or PDA (Personal Digital Assistant) on which such a musical instrument application is installed.
[0012] The electronic musical instrument 1 is an example of a computer. As shown in FIG. 2, the hardware configuration of the electronic musical instrument 1 includes a processor 10, a RAM (Random Access Memory) 11, a flash ROM (Read Only Memory) 12, an external connection interface 13, a keyboard 14, a switch panel 15, a key scanner 16, an operator 17, an input / output interface 18, an LCD (Liquid Crystal Display) unit 19, a sound source LSI (Large Scale Integration) 20, a D / A converter 21, and an amplifier 22. Each part of the electronic musical instrument 1 is connected by a bus 23.
[0013] The processor 10 reads the programs and data stored in the flash ROM 12. By using the RAM 11 as a work area, the processor 10 comprehensively controls the electronic musical instrument 1. The processor 10 is, for example, a single processor or a multi-processor and includes at least one processor. In the case of a configuration including a plurality of processors, the processor 10 may be packaged as a single device, or may be composed of a plurality of physically separated devices within the electronic musical instrument 1. The processor 10 may be called, for example, a control unit, a CPU (Central Processing Unit), a MPU (Micro Processor Unit), or a MCU (Micro Controller Unit).
[0014] The RAM 11 temporarily holds data and programs. The RAM 11 holds various programs and various data read from the flash ROM 12. The flash ROM 12 is a non-volatile semiconductor memory such as a flash memory, an EPROM (Erasable Programmable ROM), or an EEPROM (Electrically Erasable Programmable ROM). The flash ROM 12 stores a control program 12A. By the processor 10 executing the control program 12A, various processes according to an embodiment of the present disclosure are executed.
[0015] The external connection interface 13 is, for example, an interface that, under the control of the processor 10, inputs and outputs MIDI data (MIDI messages) in serial format to and from an external MIDI (Musical Instrument Digital Interface) device.
[0016] The keyboard 14 has 61 keys that serve as performance controls. Specifically, the keyboard 14 has 36 white keys and 25 black keys. Each key is associated with a different pitch. The electronic instrument 1 produces musical tones in response to key presses on the keyboard 14. The number of keys on the keyboard 14 is not limited to 61. The keyboard 14 may also have other configurations, such as 88 keys or 76 keys. In other words, each key on the keyboard 14 is an example of multiple performance controls that specify different pitches.
[0017] The switch panel 15 includes various controls for operating the electronic instrument 1. These controls include controls for various functions such as power, recording, playback / stop, tone adjustment, and tone selection.
[0018] The key scanner 16 monitors key presses and releases on the keyboard 14. When the key scanner 16 detects a key press operation, for example by the user, it outputs a key press event to the processor 10. The key press event includes information about the pitch of the key involved in the key press operation (key number). The key number is sometimes also called the key number, MIDI key, or note number.
[0019] In this embodiment, a means for measuring the speed (velocity) of key presses is provided separately, and the velocity measured by this means is also included in the key press event. For example, multiple contact switches are provided for each key. Velocity is measured by the difference in the time that each contact switch conducts when the key is pressed. Velocity can be said to be a value that indicates the strength of the key press operation, or a value that indicates the loudness (volume) of the musical sound.
[0020] The control unit 17 includes a rotary encoder for parameter selection, a rotary encoder for parameter value input, a pitch bend wheel 17a, a modulation wheel 17b, a cutoff knob 17c, and the like. When the user operates the control unit 17, a signal indicating the operation is output to the processor 10 via the input / output interface 18.
[0021] The LCD unit 19 includes an LCD and a driver. When the driver operates the LCD according to a control signal from the processor 10, a screen corresponding to the control signal is displayed. The LCD may be replaced with other forms of display devices, such as organic EL (Electro-Luminescence).
[0022] An expression pedal 2 is connected to the electronic instrument 1 via a wired or wireless connection. The expression pedal 2 is an example of a control for controlling the parameters of the electronic instrument 1. The user can pre-set the parameters to be controlled by the expression pedal 2. When the user presses the expression pedal 2, the electronic instrument 1 adjusts the controlled parameter. The controlled parameter is, for example, volume.
[0023] As shown in Figure 3, the sound source LSI 20 includes a generator section 20A, a waveform ROM 20B, a mixer circuit 20C, and an effect circuit 20D. In this embodiment, the processor 10 and the sound source LSI 20 are configured as separate processors, but in another embodiment, the processor 10 and the sound source LSI 20 may be configured as a single processor (a single control unit).
[0024] The generator section 20A is a musical tone generator. The sound source LSI 20 is equipped with, for example, 128 generator sections 20A. Therefore, the sound source LSI 20 can produce up to 128 musical tones simultaneously. The generator section 20A includes a pitch envelope generator 20a, a filter envelope generator 20b, an amplifier envelope generator 20c, a waveform generator 20d, a filter 20e, and an amplifier 20f.
[0025] The waveform ROM20B stores sets of waveform data for each timbre. Timbres include instruments such as guitar, bass, piano, and violin, as well as human voices. The waveform data is in PCM (Pulse Code Modulation) format, for example, recordings of musical sounds produced by actual instruments or musical sounds produced by human voices (musical sounds of the human voice).
[0026] The processor 10 instructs the sound source LSI 20 to read the corresponding waveform data from among the multiple waveform data stored in the waveform ROM 20B. The waveform data to be read is determined, for example, according to the currently set timbre and key press event.
[0027] The pitch envelope generator 20a outputs a pitch envelope to control the read speed when the waveform generator 20d reads waveform data from the waveform ROM 20B. The waveform generator 20d reads waveform data from the waveform ROM 20B according to the instructions from the processor 10 at a pitch (in other words, read speed) corresponding to the pitch envelope output from the pitch envelope generator 20a.
[0028] When the waveform generator 20d reads waveform data at a readout speed corresponding to the reference pitch envelope waveform, the musical sound is produced at the original pitch (the pitch of the recorded musical sound). The faster the waveform data readout speed, the higher the pitch of the produced musical sound. The slower the waveform data readout speed, the lower the pitch of the produced musical sound.
[0029] In other words, the sound source LSI 20 can produce musical notes of various pitches within a certain range (such as the range from A0 to B0) by changing the waveform data readout speed. The sound source LSI 20 can produce musical notes for all key numbers corresponding to each of the 14 keys on the keyboard with a small amount of waveform data.
[0030] The user can add a pitch bend effect to the musical tone by operating the pitch bend wheel 17a. The user can also add a vibrato effect to the musical tone by controlling the LFO (Low Frequency Oscillator) with the modulation wheel 17b. The pitch bend wheel 17a is biased to the center position (initial position) by a biasing member such as a spring. Therefore, when the user releases their finger from the pitch bend wheel 17a, the pitch bend wheel 17a automatically returns to the center position.
[0031] The pitch envelope generator 20a calculates a pitch envelope based on the pitch corresponding to the pressed key (playing pitch), the pitch bend effect corresponding to user operation on the pitch bend wheel 17a, and the vibrato effect corresponding to user operation on the modulation wheel 17b. By controlling the readout speed of the waveform data according to the pitch envelope calculated in this way, these sound effects are added to the musical tone and produced.
[0032] The filter envelope generator 20b outputs a filter envelope to control the cutoff frequency of the filter 20e. The filter 20e changes its cutoff frequency according to the filter envelope output from the filter envelope generator 20b, thereby adjusting the frequency characteristics of the waveform data output from the waveform generator 20d. A value corresponding to the user's position of the cutoff knob 17c is added to the cutoff frequency of the filter 20e.
[0033] The amplifier envelope generator 20c outputs an amplifier envelope to control the amplification factor of amplifier 20f. Amplifier 20f changes its amplification factor according to the amplifier envelope output from amplifier envelope generator 20c, adjusting the volume of the waveform data output from filter 20e. Furthermore, a value corresponding to the amount the expression pedal 2 is pressed is added to the amplification factor of amplifier 20f.
[0034] The mixer circuit 20C mixes the musical tones output from each generator section 20A. The effect circuit 20D adds a signal to the signal input from the mixer circuit 20C, for example, according to a sound effect specified by the user. The effect circuit 20D outputs the digital musical tones data with the added sound effect signal to the D / A converter 21.
[0035] The digital musical sound data output from the effect circuit 20D is converted into an analog signal by the D / A converter 21, then amplified by the amplifier 22, and output, for example, from the line out terminal. For example, the musical sound is played back through a speaker connected to the line out terminal.
[0036] The user can smoothly change the effects added to the musical sound by operating the various wheels, knobs, pedals, sliders, and other continuously variable controls of the electronic instrument 1. For example, by rotating the pitch bend wheel 17a to modulate the pitch, the user can reproduce the sounds of instruments with continuously changing pitch characteristics, such as violins, fretless basses, slide guitars, and trombones.
[0037] Generally, in electronic musical instruments, the pitch range controlled by the pitch bend wheel is set by a parameter called the bend range. At the center position (initial position) of the pitch bend wheel, the pitch change value applied to the musical note is zero. The pitch change value in response to user operation on the pitch bend wheel is referred to as the "pitch bend value".
[0038] When the pitch bend wheel is rotated to its maximum position (to the furthest back), the pitch bend value becomes the maximum value within the variable range (the largest positive value in absolute terms). When the pitch bend wheel is rotated to its minimum position (to the furthest forward), the pitch bend value becomes the minimum value within the variable range (the largest negative value in absolute terms). The pitch bend values corresponding to the maximum and minimum values are in semitone units.
[0039] In actual instruments such as violins, fretless basses, slide guitars, and trombones, the performer plays by smoothly changing the pitch, stopping the pitch change in increments of a semitone. The speed at which the pitch asymptotically approaches the target position varies depending on the performer, the music, and the type of instrument.
[0040] Users can rotate the pitch bend wheel to its maximum or minimum position to stop the pitch change applied to the musical note in semitone increments. However, if the rotation of the pitch bend wheel is stopped between the maximum and center positions, or between the center and minimum positions, it is difficult for the user to stop the pitch change applied to the musical note in semitone increments.
[0041] Therefore, when the electronic instrument 1 detects a user operation on a continuously variable control element such as the pitch bend wheel 17a, modulation wheel 17b, cutoff knob 17c, or expression pedal 2 (an example of a first operation that changes a parameter value), it updates the corresponding parameter value to the value specified by the operation (an example of a first value). If no such operation is detected, it corrects the corresponding parameter value to a value in a predetermined unit (an example of a second value). For example, when the electronic instrument 1 detects a user operation on the pitch bend wheel 17a, it updates the pitch bend value (an example of a parameter value) for the reference tone (for example, a tone with a pitch specified by a key press) to a value corresponding to its rotation position. If no user operation on the pitch bend wheel 17a is detected, the electronic instrument 1 corrects the pitch bend value to a value in semitone units. In addition, the electronic instrument 1 corrects the pitch bend value corresponding to the user operation on the pitch bend wheel 17a to the pitch bend value in the nearest semitone unit (i.e., a pitch bend value in a convenient unit). "Correction" can also be rephrased as "quantization."
[0042] In addition, the electronic instrument 1 acquires a physical operation value (described later) in response to the user's physical operation. If the physical operation value does not change by a set amount (e.g., 1%) or more within a set time (e.g., 50ms), it sets a target value in a predetermined unit (e.g., a semitone unit) corresponding to the acquired physical operation value. If the physical operation value changes by a set amount or more within the set time, it sets the acquired physical operation value to the target value.
[0043] Any reference to elements using designations such as “First,” “Second,” etc., as used in this disclosure, does not generally limit the quantity or order of those elements. These designations are used for convenience to distinguish between two or more elements. Therefore, references to the First and Second elements do not imply, for example, that only two elements are adopted, or that the First element must precede the Second element.
[0044] According to this embodiment, the user can continuously change the pitch bend value by, for example, operating the pitch bend wheel 17a, and can easily stop the pitch bend value at semitone increments by stopping this operation. The user can easily play with accurate pitch.
[0045] The period for correcting the pitch bend value is explained using the graph in Figure 4. In Figure 4, the vertical axis represents the operation value (in other words, the rotational operation position) for the pitch bend wheel 17a. In Figure 4, the horizontal axis represents time. Mechanical controls such as the pitch bend wheel 17a, modulation wheel 17b, cutoff knob 17c, and expression pedal 2 can be referred to as "physical controllers." The processor 10 detects the operation value of each physical controller as a 16-bit value in a periodic processing, for example, every 1 ms (millisecond). For example, when the pitch bend wheel 17a is in the center position, the operation value is the median value of 08000.
[0046] If the operating value of the physical controller (hereinafter referred to as "physical operating value") satisfies predetermined conditions, the processor 10 determines that the physical controller is not being operated. For example, if the change in the physical operating value continues for 50ms and remains within 1% of the entire range (100% range) from the minimum operating value to the maximum operating value (for example, from the minimum position to the maximum position of the pitch bend wheel 17a), the processor 10 determines that the physical controller is not being operated (see "Correction Period" in Figure 4). If a change of 1% or more of the entire range occurs, the processor 10 detects operation of the physical controller.
[0047] Figure 5 illustrates the parameter sets that define the operation of the physical and virtual controllers. While the physical controller is the mechanical control itself, the virtual controller is a controller that directly changes the parameter value of the target and does not exist physically. The virtual controller corrects the parameter value corresponding to the physical control value to a more appropriate parameter value, for example, to reproduce a performance with accurate pitch.
[0048] When user operation on a physical controller is detected, the value of the virtual controller (variable v_pb) (hereinafter referred to as "virtual operation value") changes in accordance with the physical operation value (variables a and p_pb) to match the physical operation value. This allows, for example, when a user consciously moves the control, to apply sound effects (pitch bend, vibrato, etc.) to the musical tone in accordance with the user operation. The time difference for tracking is set according to the selected instrument (and its timbre). For example, 200ms is set for a violin, and 500ms for a double bass. These times are set to be longer than the set time of 50ms. In other words, by adjusting the speed at which the virtual operation value tracks the physical operation value according to the timbre, it is possible to accommodate differences in user performance expression due to differences in fingerboard length, even for the same string instrument. When user operation on a physical controller is not detected, the virtual operation value changes asymptotically toward a predetermined target value (for example, a convenient value such as a semitone) that is different from the physical operation value. The processor 10, for example, adds a pitch bend value to the musical tone according to a virtual operation value.
[0049] The parameter set is registered in table 12B stored in flash ROM 12. Table 12B contains the parameters for each control. The parameters for the pitch bend wheel 17a are registered as "Chromatic", "Min Value", "Max Value", and "Rate". The variable for the Chromatic parameter is "PbChromatic" and can take a value of 0 or 1. A value of 0 indicates that chromatic mode is off. Chromatic mode is a mode that changes the pitch of the musical tone in steps (in predetermined units, for example, in semitone increments) in response to user operation on the pitch bend wheel 17a. A value of 1 indicates that chromatic mode is on. When chromatic mode is on, parameter value correction processing is performed when no operation on the physical controller is detected.
[0050] The variable for the Min Value parameter is "PbMin," and it takes values from 0 to 24 (in semitones). The variable PbMin indicates the pitch bend value added to the musical note when the pitch bend wheel 17a is operated to its minimum position. The variable for the Max Value parameter is "PbMax," and it takes values from 0 to 24 (in semitones). The variable PbMax indicates the pitch bend value added to the musical note when the pitch bend wheel 17a is operated to its maximum position.
[0051] Figure 7 shows the target values of the virtual operation values when chromatic mode is on. The vertical axis of the graph in Figure 7 represents the pitch bend value (in semitones). The horizontal axis represents the physical operation value of the pitch bend wheel 17a (in percent). In the example in Figure 7, the variables PbMax and PbMin are set to a value of 12. The upper part of Figure 7 corresponds to the rotational operation range of the pitch bend wheel 17a from the center position to the maximum position. In the upper part of Figure 7, the range from the center position to the maximum position is shown as 0% to 100%. The lower part of Figure 7 corresponds to the rotational operation range of the pitch bend wheel 17a from the center position to the minimum position. In the lower part of Figure 7, the range from the center position to the minimum position is shown as 0% to -100%. In addition, in the example in the lower part of Figure 7, a negative pitch bend value is added to the musical tone. Therefore, a negative sign is added to the value on the vertical axis in the lower part of Figure 7.
[0052] In the example shown in Figure 7, the user can continuously change the pitch of the musical note within a range of ±1 octave by operating the pitch bend wheel 17a. When the user stops the pitch bend wheel 17a at an intermediate physical value, the processor 10 sets the position closest to this physical value in semitone units as the target value and asymptotically changes the virtual value toward the set target value.
[0053] In the upper panel of Figure 7, an increase of approximately 8.3% (=100 / 12)% in the physical control value results in a pitch bend increase of 1 semitone. For example, when the physical control value is 16.7%, 25%, and 33%, the pitch bend values are +2 semitones, +3 semitones, and +4 semitones relative to the reference pitch, respectively. The range R1 shown in the upper panel of Figure 7 is a range of approximately ±4.2% (=100 / 24)% (equivalent to ±0.5 semitones) centered around the physical control value (25%) corresponding to +3 semitones. That is, the range R1 is approximately 20.8% to approximately 29.2%. When the physical control value is within the range R1, the closest semitone unit is the +3 semitone position at 25%. Therefore, when the physical control value stops within the range R1, the processor 10 sets +3 semitones as the target value and asymptotically changes the virtual control value toward +3 semitones. The processor 10 adds a pitch bend value to the musical tone according to the virtual operation value. As a result, the pitch bend value gradually approaches +3 semitones and reaches +3 semitones. In this way, an acoustic effect is added to the musical tone based on the set target value. More specifically, an acoustic effect is added to the musical tone based on a virtual operation value that changes over time to asymptotically approach the set target value.
[0054] The variable for the Rate parameter is "PbRate," which takes values from 1 to 100. The variable PbRate is a value that affects the asymptotic velocity as the virtual manipulated value asymptotically approaches the target value. The asymptotic velocity is expressed using the following equation. c1 = t - (t - c0) × r r = 0.9 + (100 - variable PbRate) / 1000 0.900 ≤ r ≤ 0.999 However, c0: current virtual operation value c1: Virtual operation value 1ms later (i.e., at the next cycle processing time) t: Target value r: velocity coefficient
[0055] According to the above formula, the distance from the target value decreases by a factor of r with each 1ms periodic processing. The asymptotic velocity is slower when the velocity coefficient r is close to 1, and faster when the velocity coefficient r is close to 0. Note that when the velocity coefficient r is not 0, mathematically, the virtual operation value c0 only asymptotically approaches the target value t, and does not reach the target value t. However, there is a limit to the smallest value that can be represented in digital calculations. Therefore, ultimately the smallest bit is truncated, so-called underflow occurs, and the difference between the virtual operation value c0 and the target value t becomes zero.
[0056] Figure 6 shows multiple patterns of asymptotic curves to the target value t. The vertical axis of the graph in Figure 6 is the pitch bend value. The horizontal axis is time (in ms). Each of the multiple asymptotic curves is calculated using a variable PbRate with a different value. For example, in Figure 6, the asymptotic curve labeled "Rate=90" is calculated using a variable PbRate with a value of 90. The asymptotic curve labeled "Rate=10" is calculated using a variable PbRate with a value of 10. In Figure 6, the asymptotic curves on the right have smaller values of the variable PbRate applied. As shown in Figure 6, the larger the variable PbRate, the sooner the virtual manipulated value c0 reaches the target value t, and the smaller the variable PbRate, the later the virtual manipulated value c0 reaches the target value t.
[0057] The range of values for the parameters of each control is set differently for each timbre, taking into account the characteristics of each instrument. For example, in the case of a violin, the pitch tends to asymptotically approach the target value in a short amount of time. In the case of a double bass, the pitch tends to asymptotically approach the target value over a longer period of time. To reproduce these characteristics of each instrument, values such as the variable PbRate are set to values appropriate for each timbre. For example, the bend range can vary depending on the instrument. Some instruments have a narrow bend range, while others have a wide bend range. Therefore, values such as the variables PbMax and PbMin are set to values appropriate for each timbre.
[0058] Thus, if no user operation to change a parameter value (an example of a first operation) is detected, the electronic instrument 1 asymptotically corrects the corresponding parameter value from the value specified by the operation (an example of a first value) to a value in a predetermined unit (a target value, which is an example of a second value). The speed of this parameter value correction (the speed at which it asymptotically approaches the target value) is set according to the currently selected timbre. Furthermore, the electronic instrument 1 corrects the corresponding parameter value to the value (an example of a second value) that is closest to the value specified by the operation (an example of a first value) among several values in a predetermined unit (an example of a second value).
[0059] Pitch bend control in response to user operation on the pitch bend wheel 17a is explained using Figure 9. In the graph of Figure 9, the vertical axis represents the operation value (physical operation value / virtual operation value), and the operation value in percentage units is shown converted to semitone units. The horizontal axis represents time. The dashed line in the graph represents the physical operation value. The solid line in the graph represents the virtual operation value.
[0060] During periods P1 (excluding period P1a), P2, P4, P6, and P8, physical operation values of 1% or more of the entire range (100% range) from the minimum operation value (the value corresponding to the minimum position above) to the maximum operation value (the value corresponding to the maximum position above) of the pitch bend wheel 17a are detected. In other words, user operation on the pitch bend wheel 17a is detected during these periods. For convenience, these periods are collectively referred to as "operation period Pa". During operation period Pa, the pitch bend value (in other words, the virtual operation value) attached to the musical tone changes continuously in accordance with the user operation (in other words, the physical operation value) on the pitch bend wheel 17a, as shown in Figure 9.
[0061] During periods P3, P5, P7, and P9, the change in the physical operation value of the pitch bend wheel 17a remains below 1% of the entire range (100% range) for 50ms. In other words, no user operation on the pitch bend wheel 17a is detected during these periods. For convenience, these periods are collectively referred to as "non-operation periods Pb". During non-operation periods Pb, the pitch bend value (in other words, the virtual operation value) added to the musical tone is corrected to the semitone value closest to the physical operation value at that time, as shown in Figure 9. For example, during period P3, the processor 10 sets +2 semitones as the target value and asymptotically changes the virtual operation value toward +2 semitones. The pitch bend value gradually approaches +2 semitones and reaches +2 semitones. For example, during period P5, the processor 10 sets +4 semitones as the target value and asymptotically changes the virtual operation value toward +4 semitones. The pitch bend value gradually approaches +4 semitones and reaches +4 semitones. In other words, if the physical manipulation value does not change by more than the set amount (1%) within the set time (e.g., 50ms), the target value is set to a predetermined reference value (a value in semitones) that is closest to the physical manipulation value.
[0062] In this way, the processor 10 continuously changes the pitch bend value according to the physical operation value while the user is operating the pitch bend wheel 17a, and when the user stops operating the pitch bend wheel 17a, it stops the pitch bend value well (for example, with precision) at a value in semitone increments. The user can easily play with accurate pitch. Such a pitch control method is effective, for example, for reproducing the articulation of the timbre of fretless string instruments or wind instruments whose pitch changes continuously. In order to reproduce the characteristics of the instrument, the asymptotic speed when the pitch bend value approaches a pitch in semitone increments is set to an optimized value for each timbre, for example.
[0063] As mentioned above, the physical operating value of the pitch bend wheel 17a is the median value (half of the maximum physical operating value) when it is in the center position. However, considering the mechanical error of the pitch bend wheel 17a, the physical operating value is not necessarily the median value even when the pitch bend wheel 17a is in the center position. For this reason, in existing electronic musical instruments, a range of ± a few percent centered on the center position is set as a dead zone.
[0064] Physical manipulation values that fall within the dead zone are all converted to the median value. Therefore, unless the user operates the pitch bend wheel outside the dead zone, the pitch bend effect will not be added to the musical note. For example, consider a case where the user manipulates the pitch bend wheel up and down finely near the center position to add a vibrato-like effect to a musical note. If all physical manipulation values at this time are within the dead zone, they are all converted to the median value. Therefore, no pitch fluctuations corresponding to this operation are added to the musical note. If the physical manipulation values move up and down beyond the dead zone, all values are converted to the median value during the period when the physical manipulation values are within the dead zone, resulting in discontinuous pitch changes and making it difficult to obtain a vibrato-like effect.
[0065] Therefore, in this embodiment, no such dead zone is set. During period P1 in Figure 9, the user is finely manipulating the pitch bend wheel 17a up and down near the center position. As a result, the physical operation value of the pitch bend wheel 17a fluctuates finely and continuously up and down. The virtual operation value of the pitch bend wheel 17a also fluctuates finely and continuously up and down, following the physical operation value. Therefore, an effect such as vibrato is added to the musical tone.
[0066] During period P1a, which is the end of period P1, the pitch bend wheel 17a is stopped almost at the center position. Therefore, user operation on the pitch bend wheel 17a is not detected. The processor 10 sets 0 semitones as the target value and asymptotically changes the virtual operation value toward 0 semitones, setting the virtual operation value to 0 semitones. In other words, in this embodiment, if the pitch bend wheel 17a is near the center position, the pitch bend value is corrected to zero. Therefore, there is no need to set a dead zone. The user can add effects such as vibrato to the musical tone by finely manipulating the pitch bend wheel 17a up and down near the center position. In this way, the range of musical expression by the user is expanded in this embodiment.
[0067] If the physical operation value of the pitch bend wheel 17a falls within a range of ±0.5 semitones from the center position (equivalent to 0 semitones), a correction process is performed to correct the pitch bend value to a value in semitone units, even if chromatic mode is off. Therefore, even when chromatic mode is off, there is no need to set a dead zone, and it is possible to add fine pitch fluctuations to the musical tone that are only slightly larger than 0 semitones.
[0068] Thus, the electronic instrument 1 can switch between a first mode (i.e., chromatic mode on) in which the pitch bend value is corrected to a value in semitone units (i.e., chromatic mode off) when no user operation to change the parameter value (an example of a first operation) is detected, and a second mode (i.e., chromatic mode off) in which the pitch bend value is not corrected to a value in semitone units when no user operation to change the parameter value is detected. When the absolute value of the pitch bend value is less than a predetermined value (for example, when the pitch bend value falls within a range equivalent to ±0.5 semitones), regardless of whether it is in the first or second mode, if no user operation to change the parameter value is detected, the electronic instrument 1 corrects the pitch bend value to zero.
[0069] For example, consider a case where a user wants to play with a 50% volume change during the intro, a 75% volume change during the backing section, and a 100% volume change during the solo. In this case, by registering the 50%, 75%, and 100% volume change values as presets on the electronic instrument 1, the user can easily play with the intended volume changes. However, if the user wants to change the volume finely or perform special techniques such as slow attacks, the user needs to operate the expression pedal to smoothly change the volume.
[0070] It is difficult for users to press an expression pedal with the correct amount of pressure to achieve predetermined volume changes such as 50%, 75%, or 100%. For example, even if a user wants to add a 75% volume change while playing in the background, the amount of pressure applied will vary each time they press the pedal. As a result, the volume change applied to the performance will also vary. For example, such variations in volume change may negatively affect the overall sound balance of the band.
[0071] In the case of the modulation wheel, there is variability in the amount of adjustment made by the user. As a result, the vibrato effect can change slightly each time, even in the same performance. Similarly, with the cutoff knob used to control the filter's cutoff frequency, there is variability in the amount of adjustment made by the user. As a result, the cutoff frequency can change slightly each time, even in the same performance, which can lead to inconsistent tone.
[0072] Therefore, in the case of the modulation wheel 17b, cutoff knob 17c, and expression pedal 2, a correction process is performed to adjust the parameter values to values in predetermined units, similar to the case of the pitch bend wheel 17a.
[0073] As shown in Figure 5, the modulation wheel 17b has "Resolution," "Depth," and "Rate" registered as parameters. The variable for the Resolution parameter is "VbReso," which takes values from 0 to 16. The variable VbReso sets the resolution (in other words, the unit) of the correction process. Note that if the value is 0, the vibrato correction process is disabled.
[0074] The upper part of Figure 8 is the same as Figure 7 and shows the target values for the virtual operation values. The vertical axis of the graph represents the output value (0 to 1.0) corresponding to the user operation on the modulation wheel 17b. In the initial state, when the modulation wheel 17b is turned all the way forward, the output value is 0. When the modulation wheel 17b is turned all the way back, the output value is 1.0. The higher the output value, the deeper the vibrato added to the musical note. The horizontal axis of the graph represents the physical operation value (unit: %) of the modulation wheel 17b. The output values are divided based on the number obtained by subtracting 1 from the variable VbReso. In the upper part of Figure 8, the variable VbReso is 5. Therefore, the output values are divided into four categories (specifically, in units of 0.25). The target values are set to five (output values of 0, 0.25, 0.5, 0.75, and 1.0). The depth of the vibrato in response to user input on the modulation wheel 17b is referred to as the "vibrato value".
[0075] In the example shown in the upper panel of Figure 8, the user can continuously change the vibrato value by operating the modulation wheel 17b. When the user stops the modulation wheel 17b at an intermediate physical value, the processor 10 asymptotically changes the virtual value toward the target value closest to this physical value. For example, consider the case where the physical value stops within the range R2 (50 ± 12.5%) shown in the upper panel of Figure 8. In this case, the processor 10 sets the value of a predetermined unit (specifically, an output value of 0.5) closest to the output value corresponding to the physical value at that time as the target value, and asymptotically changes the virtual value toward the output value of 0.5. Therefore, the user can easily add the same vibrato effect to the musical sound in the same performance scene. The user can easily reproduce the same performance.
[0076] The variable for the Depth parameter is "VbDepth," and it takes values from 0 to 100. The larger the value of the variable VbDepth, the larger the vibrato value. The vibrato value vb is calculated using the following formula. vb = v_vb × variable VbDepth / 100 However, v_vb: Virtual operation value of modulation wheel 17b (0~1.0)
[0077] The variable for the Rate parameter is "VbRate," which takes values from 1 to 100. The variable VbRate is a value that affects the asymptotic velocity as the virtual manipulated value asymptotically approaches the target value. The asymptotic velocity is expressed using the same formula as in the case of pitch bend. c1 = t - (t - c0) × r r = 0.9 + (100 - variable VbRate) / 1000
[0078] As shown in Figure 5, the parameters for the cutoff knob 17c are registered as "Resolution," "Min Depth," "Max Depth," and "Rate." The variable for the Resolution parameter is "FcReso," which takes values from 0 to 16. The variable FcReso sets the resolution (in other words, the unit) of the correction process. Note that if the value is 0, the cutoff frequency correction process is disabled.
[0079] The variable for the Min Depth parameter is "FcMin," and it takes values from -100 to +100. The larger the value of the variable FcMin, the greater the negative value added to the cutoff frequency of filter 20e, making it easier to lower the cutoff frequency. The variable for the Max Depth parameter is "FcMax," and it takes values from -100 to +100. The larger the value of the variable FcMax, the greater the positive value added to the cutoff frequency of filter 20e, making it easier to raise the cutoff frequency. The increase or decrease in the cutoff frequency in response to user operation of the cutoff knob 17c is indicated as the "filter cutoff value."
[0080] The lower part of Figure 8 is similar to Figure 7 and shows the target value of the virtual operation value. The vertical axis of the graph represents the output value (-1.0 to +1.0) corresponding to the user operation of the cutoff knob 17c. When the cutoff knob 17c is rotated all the way to the left, the output value is -1.0. When the cutoff knob 17c is rotated all the way to the right, the output value is +1.0. The higher the output value, the higher the cutoff frequency. The horizontal axis of the graph represents the physical operation value of the cutoff knob 17c (unit: %). The output value is divided based on the number obtained by subtracting 1 from the variable FcReso. In the lower part of Figure 8, the variable FcReso is 9. Therefore, the output value is divided into 8 parts (specifically, divided in units of 0.125). The target values can be set to nine different values (output values of 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, and 1.0).
[0081] In the example shown in the lower panel of Figure 8, the user can continuously change the filter cutoff value by operating the cutoff knob 17c, thereby continuously changing the cutoff frequency. When the user stops the cutoff knob 17c at an intermediate physical value, the processor 10 asymptotically changes the virtual control value toward the target value closest to this physical value. For example, consider the case where the physical value stops within the range R3 (75 ± 6.25%) shown in the lower panel of Figure 8. In this case, the processor 10 sets the value in a predetermined unit closest to the output value corresponding to the physical value at that time (specifically, an output value of 0.5) as the target value, and asymptotically changes the virtual control value toward the output value of 0.5. Therefore, the user can play with the same timbre in the same performance scene. The user can easily reproduce the same performance.
[0082] The cutoff frequency fc of filter 20e is calculated using the following formula. fc = (v_fc × (variable FcMax - variable FcMin) + variable FcMin) / 100 However, v_fc: virtual operating value of cutoff knob 17c (0~1.0)
[0083] The variable for the Rate parameter is "FcRate," and it takes values from 1 to 100. The variable FcRate is a value that affects the asymptotic velocity as the virtual operating value asymptotically approaches the target value. The asymptotic velocity is expressed using the same formula as in the case of pitch bend. c1 = t - (t - c0) × r r = 0.9 + (100 - variable FcRate) / 1000
[0084] As shown in Figure 5, "Resolution" and "Rate" are registered as parameters for Expression Pedal 2. The variable for the Resolution parameter is "XpReso," which can take values from 0 to 16. The variable XpReso sets the resolution (in other words, the unit) of the correction process. Note that if the value is 0, the volume change correction process is disabled.
[0085] For example, when the variable XpReso is 5, the output value is divided into four parts (divided in units of 0.25), similar to the example in the upper part of Figure 8. The user can continuously change the volume by changing the amount the expression pedal 2 is pressed. When the user stops pressing the expression pedal 2 at an intermediate physical value, the processor 10 asymptotically changes the virtual control value toward the target value closest to this physical value. For example, consider the case where the physical value stops within the range R2 (50 ± 12.5%) shown in the upper part of Figure 8. In this case, the processor 10 sets the value in a predetermined unit closest to the output value corresponding to the physical value at that time (specifically, an output value of 0.5) as the target value, and asymptotically changes the virtual control value toward the output value of 0.5. Therefore, the user can play musical notes with the same volume changes in the same performance scene. The user can easily reproduce the same performance.
[0086] The variable for the Rate parameter is "XpRate," and it takes values from 1 to 100. The variable XpRate is a value that affects the asymptotic velocity as the virtual manipulated value asymptotically approaches the target value. The asymptotic velocity is expressed using the same formula as in the case of pitch bend. c1 = t - (t - c0) × r r = 0.9 + (100 - variable XpRate) / 1000
[0087] The volume control when operating Expression Pedal 2 is explained using Figure 10. In the graph in Figure 10, the vertical axis represents the control value (physical control value / virtual control value). The physical control value when Expression Pedal 2 is not pressed is 0, and the physical control value when Expression Pedal 2 is pressed to its deepest point is 1.00. The horizontal axis represents time. The dashed line in the graph represents the physical control value. The solid line in the graph represents the virtual control value.
[0088] Similar to the pitch bend example in Figure 9, while the amount of depression on the expression pedal 2 is changing (in other words, during the period when user operation on the expression pedal 2 is detected), the volume of the musical sound continuously changes in accordance with this user operation (in other words, the physical operation value). When the amount of depression on the expression pedal 2 does not change (in other words, when user operation on the expression pedal 2 is not detected), the volume of the musical sound is corrected to a predetermined unit of volume closest to the physical operation value at that time. That is, the processor 10 continuously changes the volume according to the physical operation value while the user is operating the expression pedal 2, and when the user stops operating the expression pedal 2, it accurately stops the change in volume. The user can perform while accurately controlling the volume. The user can easily reproduce the same performance.
[0089] Figure 11 is a flowchart illustrating the processes performed by the electronic instrument 1 (more specifically, the processor 10 and the sound source LSI 20) in one embodiment of this disclosure. For example, when the power to the electronic instrument 1 is turned on, the processes shown in Figure 11 begin to run. When the power to the electronic instrument 1 is turned off, the processes shown in Figure 11 end.
[0090] The steps in the flowchart shown in this embodiment may be rearranged, provided they are consistent with each other. For example, while this disclosure presents various steps in an exemplary order, it is not limited to this order. Furthermore, the steps in the flowchart shown in this embodiment may be executed in parallel or concurrently, provided they are consistent with each other.
[0091] In the process shown in Figure 11, various parameter values (pitch bend value, vibrato value, filter cutoff value, expression value) are controlled during periodic processing that is executed every 1ms at the start of sound production in response to a key press and during sound production (in other words, until the sound is silenced).
[0092] As shown in Figure 11, the electronic instrument 1 performs an initialization process (step S101). During the initialization process, each component and various variables are initialized. For example, the electronic instrument 1 resets the variables pb, p_pb, v_pb, and t_pb to the value 0. The variable pb indicates the current pitch bend value (pitch change value). The variable pb takes values from PbMin to PbMax. The variable p_pb indicates the current physical operation value of the pitch bend wheel 17a and takes values from -1 to +1. The variable v_pb indicates the current virtual operation value of the pitch bend wheel 17a and takes values from -1 to +1. The variable t_pb indicates the target value of the virtual operation value of the pitch bend wheel 17a and takes values from -1 to +1.
[0093] Electronic instrument 1 resets the variables vb, p_vb, v_vb, and t_vb to value 0. Variable vb indicates the current vibrato value (value of vibrato depth) and takes a value between 0 and 1. Variable p_vb indicates the current physical operation value of modulation wheel 17b and takes a value between 0 and 1. Variable v_vb indicates the current virtual operation value of modulation wheel 17b and takes a value between 0 and 1. Variable t_vb indicates the target value of the virtual operation value of modulation wheel 17b and takes a value between 0 and 1.
[0094] Electronic instrument 1 resets the variables fc, p_fc, v_fc, and t_fc to value 0. Variable fc indicates the current filter cutoff value (cutoff frequency of filter 20e) and takes a value between -1 and +1. Variable p_fc indicates the current physical operating value of cutoff knob 17c and takes a value between 0 and 1. Variable v_fc indicates the current virtual operating value of cutoff knob 17c and takes a value between 0 and 1. Variable t_fc indicates the target value of the virtual operating value of cutoff knob 17c and takes a value between 0 and 1.
[0095] Electronic instrument 1 sets the variables xp, p_xp, v_xp, and t_xp to value 1. Variable xp indicates the current expression value (the amount of volume change given to the musical tone) and takes a value between 0 and +1. Variable p_xp indicates the current physical operation value of expression pedal 2 and takes a value between 0 and 1. Variable v_xp indicates the current virtual operation value of expression pedal 2 and takes a value between 0 and 1. Variable t_xp indicates the target value of the virtual operation value of expression pedal 2 and takes a value between 0 and 1.
[0096] The electronic instrument 1 performs a switch operation (step S102). During the switch operation, the operating status of the switch panel 15, the control element 17, etc. is acquired. For example, information such as volume and timbre is acquired.
[0097] The electronic instrument 1 determines whether or not a timbre switching operation has been performed (step S103). If a timbre switching operation has been performed (step S103: YES), the electronic instrument 1 switches the timbre information (step S104). This activates the parameter set corresponding to the switched timbre. Specifically, the electronic instrument 1 reads the parameter set (values of various variables) corresponding to the switched timbre from table 12B and stores it in the work area.
[0098] Next, the electronic instrument 1 determines whether or not a key press operation has been performed (step S105). If a key press operation has been performed (step S105: YES), the electronic instrument 1 executes the key press process (step S106). The electronic instrument 1 also determines whether or not a key release operation has been performed (step S107). If a key release operation has been performed (step S107: YES), the electronic instrument 1 executes the key release process (step S108).
[0099] The electronic instrument 1 determines whether a predetermined time (e.g., 1 ms) has elapsed since the last execution of the sound source steady-state processing (step S111) (step S109). If the predetermined time has elapsed (step S109: YES), the electronic instrument 1 executes the controller steady-state processing (step S110) and the sound source steady-state processing (step S111) in order. The electronic instrument 1 then performs other processing (such as display control of the LCD unit 19 and communication processing) (step S112) and returns to the processing in step S102.
[0100] The subroutine for the key press process (step S106) in Figure 11 will be explained using Figure 12. As shown in Figure 12, the electronic instrument 1 performs key assigner processing (step S201). In key assigner processing, a generator section 20A to be controlled (specifically, a generator section 20A that produces a musical tone in response to a key press operation) is assigned from among the 128 generator sections 20A. More specifically, the number (0 to 127) of the assigned generator section 20A is given to the variable gen.
[0101] The electronic instrument 1 determines whether the status of the generator section 20A corresponding to the variable gen is not 0 (step S202). Here, the status is indicated by GenStatus[i]. GenStatus[i] indicates the status of the generator section 20A numbered i. GenStatus[i] takes values from 0 to 2. If GenStatus[i] is 0, the generator section 20A numbered i is unused (not used for sound production). If GenStatus[i] is 1, it indicates that a musical sound is being produced in the generator section 20A numbered i in response to a key press operation. If GenStatus[i] is 2, it indicates that the musical sound in the generator section 20A numbered i is decaying due to a key release operation. Since there are 128 generator sections 20A, the number i takes values from 0 to 127.
[0102] If the status of the generator section 20A corresponding to the variable gen (variable GenStatus[gen]) is not 0 (i.e., in use) (step S202: YES), the electronic instrument 1 immediately stops producing musical tones from this generator section 20A (step S203). As a result, the musical tone is immediately muted in this generator section 20A.
[0103] If the variable GenStatus[gen] is valued at 0 (i.e., unused) (step S202: NO), the electronic instrument 1 updates the variable GenStatus[gen] to value 1 (step S204). The electronic instrument 1 stores the key number (variable key) included in the latest key press event corresponding to the key press operation in the variable GenKey[i] (step S205). The variable GenKey[i] indicates the key number of the musical tone produced in generator section 20A with number i.
[0104] The electronic instrument 1 performs sound generation processing (step S206). Specifically, the electronic instrument 1 selects waveform data with a waveform number corresponding to the key number (variable key) and velocity (variable vel) included in the latest key press event in response to a key press operation. Both variables key and vel take values from 0 to 127. The electronic instrument 1 calculates the waveform data readout speed based on variable key and the pitch bend value (variable pb) and vibrato value (variable vb) calculated in the controller steady-state processing (step S110). The electronic instrument 1 provides the calculated readout speed, velocity (variable vel), filter cutoff value (variable fc), and expression value (variable xp) to the generator section 20A corresponding to variable gen, and starts reading the waveform data. As a result, musical tones are generated in this generator section 20A.
[0105] Using Figure 13, the subroutine for the key release process (step S108) in Figure 11 will be explained. As shown in Figure 11, the electronic instrument 1 resets the variable gen to the value 0 (step S301).
[0106] The electronic instrument 1 determines whether the status of the generator section 20A corresponding to the variable gen (variable GenStatus[gen]) is value 1 (i.e., sound is being produced) or not (step S302). If the variable GenStatus[gen] is value 0 or value 2 (step S302: NO), the electronic instrument 1 proceeds to the process in step S306.
[0107] If the variable GenStatus[gen] has a value of 1 (step S302: YES), the electronic instrument 1 determines whether the key number of the musical note being played, which is assigned to the generator section 20A corresponding to the variable gen, matches the key number corresponding to the pressed key (step S303). Specifically, the electronic instrument 1 determines whether the variable GenKey[gen] is the same as the variable key.
[0108] If the variable GenKey[gen] and the variable key are different (step S303: NO), the electronic instrument 1 proceeds to the process in step S306. If the variable GenKey[gen] and the variable key are the same (step S303: YES), the electronic instrument 1 transitions the musical tone being produced in the generator section 20A corresponding to the variable gen to a decay state (step S304). As an example, the electronic instrument 1 applies the envelope at the time of key release to decay the musical tone being produced.
[0109] Electronic instrument 1 sets the variable GenStatus[gen] to a value of 2, which indicates the decay state (step S305). Electronic instrument 1 increments the variable gen by 1 (step S306). Electronic instrument 1 determines whether the variable gen is greater than or equal to 128 (step S307). If the variable gen is greater than or equal to 128 (step S307: YES), electronic instrument 1 terminates the release processing subroutine (step S108). If the variable gen is less than 128 (step S307: NO), electronic instrument 1 returns to the processing in step S302. Electronic instrument 1 repeats the processing in steps S302 to S307 until the processing in step S302 has been performed for all generator sections 20A.
[0110] Using Figure 14, the subroutine for the controller steady-state processing (step S110) in Figure 11 will be explained. As shown in Figure 14, the electronic instrument 1 performs the first steady-state processing (step S401), the second steady-state processing (step S402), the third steady-state processing (step S403), and the fourth steady-state processing (step S404).
[0111] Using Figure 15, the subroutines for the first steady-state processing (step S401) to the fourth steady-state processing (step S404) will be explained in order. In the first steady-state processing (step S401), the electronic instrument 1 detects the physical operation value of the pitch bend wheel 17a (step S501). Specifically, the electronic instrument 1 sets variable a to the value of variable p_pb. The electronic instrument 1 assigns the physical operation value of the pitch bend wheel 17a (for example, the output value of the input / output interface 18, which is an A / D converter connected to the pitch bend wheel 17a) to variable p_pb.
[0112] The electronic instrument 1 determines whether or not user operation has been performed on the pitch bend wheel 17a (step S502). Specifically, the electronic instrument 1 determines whether the change in the physical operation value of the pitch bend wheel 17a is less than 1% of the entire range of the physical operation value in the most recent 50ms. If it is less than 1% (step S502: YES), the electronic instrument 1 sets a target value (variable t_pb) for the virtual operation value of the pitch bend wheel 17a (step S503) and proceeds to step S507. Specifically, the electronic instrument 1 sets the target value to the position in semitone units that is closest to the current physical operation value of the pitch bend wheel 17a, which is determined based on each variable (variables p_pb, PbMin, PbMax, PbChromatic).
[0113] If the value is 1% or greater (Step S502: NO), the electronic instrument 1 determines whether the variable v_pb and the variable a match (Step S504). If the variable v_pb and the variable a do not match (Step S504: NO), the electronic instrument 1 sets the variable t_pb, which indicates the target value, to the value of the variable p_pb (Step S505), and proceeds to the process in Step S507.
[0114] The electronic instrument 1 asymptotically changes the virtual operation value toward the target value (variable t_pb) set in step S503 or S505 (step S507). Specifically, the electronic instrument 1 calculates the following equation. Then, the electronic instrument 1 proceeds to the process in step S508. The variable v_pb = variable t_pb - (0.9 + (100 - variable PbRate) / 1000) × (variable t_pb - variable v_pb)
[0115] If the variables v_pb and a match (step S504: YES), the electronic instrument 1 sets the variable v_pb to the value of the variable p_pb (step S506). The electronic instrument 1 sets the variable pb, which indicates the current pitch bend value, to the value of the variable v_pb (step S508).
[0116] In this way, the electronic instrument 1 determines whether the physical control value and the virtual control value match or not. If the physical control value and the virtual control value do not match, the electronic instrument 1 sets the physical control value to the target value. If the physical control value and the virtual control value match, the electronic instrument 1 sets the physical control value to the virtual control value.
[0117] In the second steady-state process (step S402), the electronic instrument 1 detects the physical operation value of the modulation wheel 17b (step S501). Specifically, the electronic instrument 1 sets variable a to the value of variable p_vb. The electronic instrument 1 assigns the physical operation value of the modulation wheel 17b (for example, the output value of the input / output interface 18, which is an A / D converter connected to the modulation wheel 17b) to variable p_vb.
[0118] The electronic instrument 1 determines whether or not user operation has been performed on the modulation wheel 17b (step S502). Specifically, the electronic instrument 1 determines whether the change in the physical operation value of the modulation wheel 17b is less than 1% of the entire range of the physical operation value in the most recent 50ms. If it is less than 1% (step S502: YES), the electronic instrument 1 sets a target value (variable t_vb) for the virtual operation value of the modulation wheel 17b based on each variable (variables p_vb, VbReso) (step S503), and proceeds to the process in step S507.
[0119] If the value is 1% or greater (Step S502: NO), the electronic instrument 1 determines whether the variable v_vb and the variable a match (Step S504). If the variable v_vb and the variable a do not match (Step S504: NO), the electronic instrument 1 sets the variable t_vb, which indicates the target value, to the value of the variable p_vb (Step S505), and proceeds to the process in Step S507.
[0120] The electronic instrument 1 asymptotically changes the virtual operation value toward the target value (variable t_vb) set in step S503 or S505 (step S507). Specifically, the electronic instrument 1 calculates the following equation. Then, the electronic instrument 1 proceeds to the process in step S508. Variable v_vb = Variable t_vb - (0.9 + (100 - Variable VbRate) / 1000) × (Variable t_vb - Variable v_vb)
[0121] If the variables v_vb and a match (step S504: YES), the electronic instrument 1 sets the variable v_vb to the value of the variable p_vb (step S506). The electronic instrument 1 calculates the variable vb, which indicates the current vibrato value, using the following formula (step S508). Variable vb = Variable v_vb × Variable VbDepth / 100
[0122] In the third steady-state process (step S403), the electronic instrument 1 detects the physical operation value of the cutoff knob 17c (step S501). Specifically, the electronic instrument 1 sets variable a to the value of variable p_fc. The electronic instrument 1 assigns the physical operation value of the cutoff knob 17c (for example, the output value of the input / output interface 18, which is an A / D converter connected to the cutoff knob 17c) to variable p_fc.
[0123] The electronic instrument 1 determines whether or not a user operation has been performed on the cutoff knob 17c (step S502). Specifically, the electronic instrument 1 determines whether the change in the physical operation value of the cutoff knob 17c is less than 1% of the entire range of the physical operation value in the most recent 50ms. If it is less than 1% (step S502: YES), the electronic instrument 1 sets a target value (variable t_fc) for the virtual operation value of the cutoff knob 17c based on each variable (variables p_fc, FcReso) (step S503), and proceeds to the process in step S507.
[0124] If the value is 1% or greater (Step S502: NO), the electronic instrument 1 determines whether the variable v_fc and the variable a match (Step S504). If the variable v_fc and the variable a do not match (Step S504: NO), the electronic instrument 1 sets the variable t_fc, which indicates the target value, to the value of the variable p_fc (Step S505), and proceeds to the process in Step S507.
[0125] The electronic instrument 1 asymptotically changes the virtual operation value toward the target value (variable t_fc) set in step S503 or S505 (step S507). Specifically, the electronic instrument 1 calculates the following equation. Then, the electronic instrument 1 proceeds to the process in step S508. The variable v_fc = variable t_fc - (0.9 + (100 - variable FcRate) / 1000) × (variable t_fc - variable v_fc)
[0126] If the variables v_fc and a match (step S504: YES), the electronic instrument 1 sets the variable v_fc to the value of the variable p_fc (step S506). The electronic instrument 1 calculates the variable fc, which indicates the current filter cutoff value, using the following formula (step S508). Variable fc = (Variable v_fc × (Variable FcMax - Variable FcMin) + Variable FcMin) / 100
[0127] In the fourth steady-state process (step S404), the electronic instrument 1 detects the physical operation value of the expression pedal 2 (step S501). Specifically, the electronic instrument 1 sets variable a to the value of variable p_xp. The electronic instrument 1 assigns the physical operation value of the expression pedal 2 (for example, the output value of the input / output interface 18, which is an A / D converter connected to the expression pedal 2) to variable p_xp.
[0128] The electronic instrument 1 determines whether or not user operation has been performed on the expression pedal 2 (step S502). Specifically, the electronic instrument 1 determines whether the change in the physical operation value of the expression pedal 2 is less than 1% of the entire range of the physical operation value in the most recent 50ms. If it is less than 1% (step S502: YES), the electronic instrument 1 sets a target value (variable t_xp) for the virtual operation value of the expression pedal 2 based on each variable (variable p_xp, XpReso) (step S503), and proceeds to step S507.
[0129] If the value is 1% or greater (Step S502: NO), the electronic instrument 1 determines whether the variable v_xp and the variable a match (Step S504). If the variable v_xp and the variable a do not match (Step S504: NO), the electronic instrument 1 sets the variable t_xp, which indicates the target value, to the value of the variable p_xp (Step S505), and proceeds to the process in Step S507.
[0130] The electronic instrument 1 asymptotically changes the virtual operation value toward the target value (variable t_xp) set in step S503 or S505 (step S507). Specifically, the electronic instrument 1 calculates the following equation. Then, the electronic instrument 1 proceeds to the process in step S508. The variable v_xp = variable t_xp - (0.9 + (100 - variable XpRate) / 1000) × (variable t_xp - variable v_xp)
[0131] If the variables v_xp and a match (step S504: YES), the electronic instrument 1 sets the variable v_xp to the value of the variable p_xp (step S506). The electronic instrument 1 sets the variable xp, which indicates the current expression value, to the value of the variable v_xp (step S508).
[0132] Using Figure 16, the subroutine for the steady-state processing of the sound source in Figure 11 (step S111) will be explained. As shown in Figure 16, the electronic instrument 1 resets the variable gen to a value of 0 (step S601). The electronic instrument 1 determines whether the status of the generator section 20A corresponding to the variable gen (variable GenStatus[gen]) is value 0 (i.e., unused) or not (step S602). If the variable GenStatus[gen] is value 0 (step S602: YES), the electronic instrument 1 proceeds to the processing in step S611. If the variable GenStatus[gen] is not value 0 (step S602: NO), the electronic instrument 1 determines whether the status (variable GenStatus[gen]) is value 1 (i.e., playing sound) or not (step S603).
[0133] If the variable GenStatus[gen] is valued at 1 (step S603: YES), the electronic instrument 1 proceeds to the process in step S605. If the variable GenStatus[gen] is not valued at 1 (step S603: NO), then the variable GenStatus[gen] is valued at 2. Therefore, the musical tone is attenuated in the generator section 20A corresponding to the variable gen. In this case, the electronic instrument 1 determines whether the attenuation of the musical tone is complete in the generator section 20A corresponding to the variable gen (in other words, whether the level of the musical tone is 0 or not) (step S604).
[0134] If the decay of the musical tone is not complete (step S604: NO), the electronic instrument 1 updates its pitch (step S605). Specifically, the electronic instrument 1 recalculates the waveform data readout speed based on the sum of the pitch change obtained from the value of the variable pb obtained in the first steady-state processing (step S401), the value of the variable vb obtained in the second steady-state processing (step S402), and the current value of the LFO, and provides the recalculated waveform data readout speed value to the generator section 20A corresponding to the variable gen. As a result, the pitch of the musical tone produced by this generator section 20A changes.
[0135] The electronic instrument 1 updates the cutoff frequency of the filter 20e (step S606). Specifically, the electronic instrument 1 provides the value of the variable fc obtained in the third steady-state processing (step S403) to the generator section 20A corresponding to the variable gen. This updates the cutoff frequency of the filter 20e in the generator section 20A.
[0136] The electronic instrument 1 updates the amplification factor of the amplifier 20f (step S607). Specifically, the electronic instrument 1 provides the value of the variable xp obtained in the fourth steady-state processing (step S404) to the generator section 20A corresponding to the variable gen. As a result, the volume is updated in the generator section 20A.
[0137] Electronic instrument 1 performs various other processes on the generator section 20A corresponding to the variable gen (step S608). Electronic instrument 1 increments the variable gen by 1 (step S611). Electronic instrument 1 determines whether the variable gen is greater than or equal to 128 (step S612). If the variable gen is greater than or equal to 128 (step S612: YES), electronic instrument 1 terminates the sound source steady-state processing subroutine (step S111). If the variable gen is less than 128 (step S612: NO), electronic instrument 1 returns to the process in step S602. Electronic instrument 1 repeats the sound source steady-state processing (step S111) until it has performed the process in step S602 for all generator sections 20A.
[0138] If the decay of the musical sound is complete (step S604: YES), the electronic instrument 1 stops the generator section 20A corresponding to the variable gen (i.e., stops producing sound) (step S609), and sets its status (variable GenStatus[gen]) to 0, which indicates an unused state (step S610). The electronic instrument 1 then proceeds to the process in step S611.
[0139] The above is a description of exemplary embodiments of the present disclosure. Embodiments of the present disclosure are not limited to those described above, and various modifications are possible within the scope of the technical idea of the present disclosure. For example, embodiments of the present application include combinations of embodiments explicitly shown in the specification or obvious embodiments as appropriate. [Explanation of Symbols]
[0140] 1: Electronic instrument, 2: Expression pedal, 10: Processor, 12A: Control program, 12B: Table, 17a: Pitch bend wheel, 17b: Modulation wheel, 17c: Cutoff knob, 20: Sound source LSI
Claims
1. The system acquires physical operation values in response to the user's physical actions. If the physical operation value does not change by more than a set amount within the set time, a target value in a predetermined unit corresponding to the acquired physical operation value is set. If the physical operation value changes by more than the set amount within the set time, the acquired physical operation value is set to the target value. Based on the set target value, an acoustic effect is applied to the musical tone. Information processing device.
2. The sound effect is applied to the musical tone based on a virtual operating value that is changed over time to asymptotically approach the target value. The information processing apparatus according to claim 1.
3. The speed at which the asymptotic approach to the aforementioned target value is set according to the selected timbre. The information processing apparatus according to claim 1.
4. Determine whether the physical operation value and the virtual operation value match or not. If the physical operating value and the virtual operating value do not match, the physical operating value is set to the target value. If the physical operation value and the virtual operation value match, the physical operation value is set to the virtual operation value. The information processing apparatus according to claim 2.
5. If the physical operation value does not change by more than the set amount within the set time, the reference value of the predetermined unit closest to the physical operation value is set as the target value. The information processing apparatus according to claim 1.
6. The aforementioned target value indicates the change in pitch. The aforementioned change value is corrected to the aforementioned reference value, which is a value in units of a semitone. The information processing apparatus according to claim 5.
7. Computers The system acquires physical operation values in response to the user's physical actions. If the physical operation value does not change by more than a set amount within the set time, a target value corresponding to the acquired physical operation value is set. If the physical operation value changes by more than the set amount within the set time, the acquired physical operation value is set to the target value. Based on the set target value, an acoustic effect is applied to the musical tone. method.
8. On the computer, The system acquires physical operation values in response to the user's physical actions. If the physical operation value does not change by more than a set amount within the set time, a target value corresponding to the acquired physical operation value is set. If the physical operation value changes by more than the set amount within the set time, the acquired physical operation value is set to the target value. Based on the set target value, an acoustic effect is applied to the musical tone. A program that executes a process.