Controller, method and program

The control device adjusts pitches using a processor to correct errors and simulate human performance nuances, addressing the challenge of accurate pitch reproduction on fretless instruments.

JP2025140639APending Publication Date: 2025-09-29CASIO COMPUTER CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024040166
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-14
Publication Date
2025-09-29

AI Technical Summary

Technical Problem

Existing control devices struggle to accurately reproduce performance expressions on instruments without frets, such as fretless basses, due to difficulties in producing musical tones at precise pitches.

Method used

A control device that processes musical tones through a processor to adjust pitches continuously or stepwise from an initial pitch to a steady-state pitch, using a pitch envelope to correct errors and simulate the nuances of human performance.

Benefits of technology

The device effectively reproduces performance expressions that are challenging to achieve at accurate pitch, enhancing the realism of musical tones on instruments like fretless basses and violins.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025140639000001_ABST
    Figure 2025140639000001_ABST
Patent Text Reader

Abstract

To reproduce performance expression of tone colors difficult to be performed at accurate pitches.SOLUTION: A controller includes at least one processor. At least one processor processes production of musical tones in response to user operation on performance operators, and continuously or gradually changes pitches of the musical tones to a second pitch when a first period elapses after production of the musical tones is started at a first pitch and brings the pitch close to a reference pitch made to correspond to the performance operators. The first pitch and the second pitch fluctuate within a first pitch range and a second pitch range for each user operation. A center value of the first pitch range is lower than a center value of the second pitch range.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a control device, a method, and a program. [Background technology]

[0002] There is known a control device that corrects a pitch played by a user to an appropriate pitch. For example, Patent Document 1 describes a control device that corrects a pitch played by a user to a pitch close to the pitch played in music data. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2020-106766 Summary of the Invention [Problem to be solved by the invention]

[0004] For example, it is difficult to produce musical tones at accurate pitch on acoustic instruments that do not have frets (such as fretless basses).The control device described in Patent Document 1 corrects musical tones to an appropriate pitch regardless of the pitch of the performance, making it difficult to reproduce performance expressions that include inaccurate pitch.

[0005] In view of the above circumstances, an embodiment of the present disclosure aims to provide a control device, method, and program that can reproduce performance expressions of tones that are difficult to play at accurate pitch. [Means for solving the problem]

[0006] A control device according to an embodiment of the present disclosure includes at least one processor. The at least one processor processes musical tones in response to user operations on performance controls, and when a first period of time has elapsed since the musical tones began to be produced at a first pitch, changes the pitch of the musical tones continuously or stepwise to a second pitch, bringing the pitch closer to a reference pitch associated with the performance control. The first pitch and the second pitch vary within a first pitch range and a second pitch range, respectively, for each user operation. The center value of the first pitch range is lower than the center value of the second pitch range. [Effects of the Invention]

[0007] According to one embodiment of the present disclosure, a control device, method, and program are provided that are capable of reproducing performance expressions of timbres that are difficult to play at accurate pitch. [Brief explanation of the drawings]

[0008] [Figure 1] 1 is an external view of an electronic musical instrument according to an embodiment of the present disclosure. [Figure 2] 1 is a block diagram illustrating a configuration of an electronic musical instrument according to an embodiment of the present disclosure. [Figure 3] 1 is a block diagram showing the configuration of a sound source LSI (Large Scale Integration) provided in an electronic musical instrument according to an embodiment of the present disclosure. [Figure 4] 2 is a diagram illustrating waveform data stored in a waveform Read Only Memory (ROM) of a sound source LSI according to an embodiment of the present disclosure. FIG. [Figure 5] 10A and 10B are diagrams illustrating an example of changes in pitch of a musical tone on the time axis according to an embodiment of the present disclosure. [Figure 6] FIG. 10 is a diagram illustrating an example of a key follow function according to an embodiment of the present disclosure. [Figure 7] 1 is a flowchart illustrating a process executed by an electronic musical instrument according to an embodiment of the present disclosure. [Figure 8] This is a subroutine of the key pressing process (step S106) in FIG. [Figure 9] This is a subroutine of the key release process (step S108) in FIG. [Figure 10A] This is a subroutine of the steady-state process (step S111) in FIG. [Figure 10B] This is a subroutine of the steady-state process (step S111) in FIG. [Figure 11] 10A and 10B are diagrams illustrating an example of changes in pitch of a musical tone on the time axis according to an embodiment of the present disclosure. [Figure 12] 10A and 10B are diagrams illustrating an example of changes in pitch of a musical tone on the time axis according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0009] The following description relates to a control device, a method, and a program according to an embodiment of the present disclosure. Common or corresponding elements are denoted by the same or similar reference numerals, and redundant descriptions will be appropriately simplified or omitted.

[0010] The electronic musical instrument 1 shown in Fig. 1 is an example of a control device and also an example of a performance device. The electronic musical instrument 1 is, for example, an electronic keyboard. The electronic musical instrument 1 may be an electronic keyboard instrument other than an electronic keyboard, such as an electronic piano. The electronic musical instrument 1 may also be another type of electronic musical instrument, such as an electronic percussion instrument, an electronic wind instrument, or an electronic string instrument.

[0011] The control device according to the present disclosure is not limited to the electronic musical instrument 1. The control device may be, for example, an information processing device installed with a musical instrument app that reproduces the electronic musical instrument 1. Illustratively, the control device may be a smartphone, tablet terminal, laptop PC (Personal Computer), portable game console, or PDA (Personal Digital Assistant) installed with such a musical instrument app.

[0012] The electronic musical instrument 1 is an example of a computer. As shown in Fig. 2, the electronic musical instrument 1 includes, as its hardware configuration, 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, controls 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. The various components of the electronic musical instrument 1 are connected via a bus 23.

[0013] The processor 10 reads out the programs and data stored in the flash ROM 12. The processor 10 controls the electronic musical instrument 1 in an overall manner by using the RAM 11 as a work area.

[0014] The processor 10 may be, for example, a single processor or a multi-processor, and includes at least one processor. When multiple processors are included, the processor 10 may be packaged as a single device, or may be configured as multiple devices that are physically separated within the electronic musical instrument 1. The processor 10 may be called, for example, a control unit, a CPU (Central Processing Unit), an MPU (Micro Processor Unit), or an MCU (Micro Controller Unit).

[0015] The RAM 11 temporarily stores data and programs, and stores various programs and data read from the flash ROM 12.

[0016] 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. The processor 10 executes the control program 12A to perform various processes according to an embodiment of the present disclosure.

[0017] 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) to and from an external MIDI (Musical Instrument Digital Interface) device in a serial format.

[0018] The keyboard 14 has 61 keys that are performance controls. Specifically, the keyboard 14 has 32 white keys and 25 black keys. Each key is associated with a different pitch. The electronic musical instrument 1 produces musical tones in response to the depression of a key on the keyboard 14. The number of keys on the keyboard 14 is not limited to 61. The keyboard 14 may have other numbers of keys, such as 88 keys or 76 keys.

[0019] The switch panel 15 includes various controls for operating the electronic musical instrument 1. The various controls include controls corresponding to various functions such as power, recording, play / stop, tone adjustment, and tone selection.

[0020] The key scanner 16 monitors key presses and releases on the keyboard 14. For example, when the key scanner 16 detects a key press 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 related to the key press (key number). The key number is also called a key number, a MIDI (Musical Instrument Digital Interface) key, or a note number. The pitch is also called a note.

[0021] In this embodiment, a separate means is provided for measuring the key pressing speed (velocity), and the velocity measured by this means is also included in the key pressing event. For example, multiple contact switches are provided for each key. The velocity is measured based on the difference in the time that each contact switch remains conductive when the key is pressed. Velocity can be considered a value that indicates the strength of the key pressing operation, and also a value that indicates the loudness (volume) of the musical sound.

[0022] The controls 17 include a rotary encoder for selecting parameters, a rotary encoder for inputting parameter values, a pitch bender wheel, a modulation wheel, etc. When the user operates the controls 17, a signal indicating the operation is output to the processor 10 via the input / output interface 18.

[0023] The LCD unit 19 includes an LCD and a driver. When the driver drives the LCD in accordance with a control signal from the processor 10, a screen corresponding to the control signal is displayed. The LCD may be replaced with another type of display device, such as an organic EL (Electro Luminescence) display.

[0024] 3, the tone generator 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 tone generator LSI 20 are configured as separate processors, but in another embodiment, the processor 10 and the tone generator LSI 20 may be configured as a single processor (a single control unit).

[0025] The generator section 20A is a musical tone generator. The sound source LSI 20 is provided with, for example, 128 generator sections 20A. Therefore, the sound source LSI 20 can simultaneously generate a maximum of 128 musical tones.

[0026] 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.

[0027] The waveform ROM 20B stores a set of waveform data for each tone (musical instrument such as guitar, bass, violin, etc., human voice, etc.). The waveform data is, for example, data in PCM (Pulse Code Modulation) format that records musical sounds produced by an actual musical instrument or musical sounds played by a human voice (musical sounds of the human voice).

[0028] The processor 10 instructs the tone generator LSI 20 to read out corresponding waveform data from among the plurality of waveform data stored in the waveform ROM 20B. The waveform data to be read out is determined, for example, according to the currently set tone color and key press event.

[0029] FIG. 4 shows a set of waveform data for a certain tone. In the example shown in FIG. 4, 60 pieces of waveform data are stored. In FIG. 4, "Low" and "High" indicate the lowest and highest pitches in the range, respectively. For example, in the range of pitches A0 to B0, "Low" is written as "A0" and "High" is written as "B0."

[0030] Each number from 0 to 59 shown in Figure 4 is a waveform number indicating the waveform data. The "1 to 63" rows contain the waveform numbers of the waveform data that is read when the velocity value is 1 to 63. The "64 to 99" rows contain the waveform numbers of the waveform data that is read when the velocity value is 64 to 99. The "100 to 127" rows contain the waveform numbers of the waveform data that is read when the velocity value is 100 to 127.

[0031] For example, waveform data of waveform numbers 3, 23, and 43 are stored for the range of pitches G#1 to B1. When the key of pitch A1, which belongs to this range, is pressed with a velocity of 80, processor 10 selects the corresponding waveform number 23 and instructs sound source LSI 20 to read the waveform data of the selected waveform number 23. In other words, processor 10 selects waveform data according to the timbre, pitch, and velocity.

[0032] In the example shown in Figure 4, the key range is divided into 20 ranges for each of three velocity levels (1-63, 64-99, 100-127), but in other examples, the number of divisions into the key range may be different for each velocity level.Furthermore, the number of velocity levels may be different for each divided range.

[0033] The pitch envelope generator 20a outputs a pitch envelope and controls the read speed at which the waveform generator 20d reads waveform data from the waveform ROM 20B. The waveform generator 20d reads waveform data from the waveform ROM 20B in accordance with instructions from the processor 10 at a pitch (in other words, a read speed) that corresponds to the pitch envelope output from the pitch envelope generator 20a.

[0034] When the waveform generator 20d reads out waveform data at a readout speed corresponding to the reference pitch envelope waveform, the musical tone is generated at the pitch of the original sound (the pitch of the recorded musical tone). The faster the readout speed of the waveform data, the higher the pitch of the generated musical tone. The slower the readout speed of the waveform data, the lower the pitch of the generated musical tone.

[0035] That is, by changing the read speed of the waveform data, the sound source LSI 20 can generate musical tones of various pitches within a certain range (such as the range of pitches A0 to B0).The sound source LSI 20 can generate musical tones of all key numbers corresponding to each key on the keyboard 14 with a small amount of waveform data.

[0036] In this way, the waveform data is associated with two or more keys (an example of a performance operator) that respectively correspond to two or more pitches included in a predetermined range.

[0037] The pitch envelope generator 20a calculates a pitch envelope based on the pitch corresponding to the pressed key, the pitch bend effect according to user operation, the depth of the vibrato effect, etc. 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 it is produced.

[0038] The user can add a pitch bend effect to the musical tone by operating the pitch bend wheel, and a vibrato effect to the musical tone by controlling an LFO (Low Frequency Oscillator) with the modulation wheel.

[0039] 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 in accordance with 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. The amplifier envelope generator 20c outputs an amplifier envelope to control the gain of the amplifier 20f. The amplifier 20f changes its gain in accordance with the amplifier envelope output from the amplifier envelope generator 20c, thereby adjusting the volume of the waveform data output from the filter 20e.

[0040] The mixer circuit 20C mixes the musical sound signals output from each generator section 20A. The effect circuit 20D adds a signal corresponding to a sound effect designated by a user operation to the signal input from the mixer circuit 20C. The effect circuit 20D outputs the digital musical sound data to which the signal corresponding to the sound effect has been added to the D / A converter 21.

[0041] The digital musical sound data output from the effect circuit 20D is converted into an analog signal by a D / A converter 21, amplified by an amplifier 22, and output from, for example, a line-out terminal. The musical sound is then reproduced by, for example, a speaker connected to the line-out terminal.

[0042] On the other hand, with acoustic instruments (such as fretless basses and violins), wind instruments, and the human voice (such as a singer's voice), it is difficult for performers and singers to produce musical notes at accurate pitch. In other words, the musical notes of these timbres always contain a certain degree of error. In such cases, performers and singers listen to the musical notes they produce and correct them to the appropriate pitch.

[0043] In other words, by reproducing the pitch error that may occur at the start of sound production and the operation to correct the pitch error, it is possible to reproduce the performance expression of a tone that is difficult to perform at accurate pitch, that is, the nuances of a performer or singer. To reproduce such performance expression, the pitch of a musical tone is controlled, for example, based on the pitch envelope PE shown in Figure 5.

[0044] For the sake of simplicity, the pitch envelope PE only takes into account the performance pitch (i.e., it does not take into account factors other than the performance pitch (such as pitch bend effects according to user operations, the depth of vibrato effects, etc.)).

[0045] 5, the vertical axis represents pitch (cents), and the horizontal axis represents elapsed time from the start of sound generation of a musical tone.

[0046] The reference pitch is the exact pitch that a performer or singer wants to produce (for example, the pitch indicated by a note on a musical score). In other words, the pitch indicated by the key number associated with the key pressed by the user is the reference pitch. For example, for pitch A3 (for example, key number 57), the reference pitch is 220 Hz. For pitch A4 (for example, key number 69), the reference pitch is 440 Hz.

[0047] The initial pitch is an example of a first pitch. The initial pitch is the pitch at the start of sound production, which may include an error. The steady-state pitch is an example of a second pitch. The steady-state pitch is the pitch after error correction. Therefore, the steady-state pitch is closer to the reference pitch than the initial pitch. For example, if the reference pitch is 220 Hz in FIG. 5, the steady-state pitch is closer to 220 Hz than the initial pitch.

[0048] It should be noted that any reference to an element using a designation such as "first," "second," etc., 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. Thus, reference to a first and a second element does not imply, for example, that only two elements are employed, that the first element must precede the second element, etc.

[0049] The delay period is an example of a first period. The delay period is a period during which a musical tone is generated at an initial pitch. In other words, the delay period is a period during which a pitch error that may occur at the start of generation of a tone is reproduced. The length of the delay period corresponds to the length required for a performer or singer to recognize the pitch error, and is, for example, 100 ms to 500 ms.

[0050] The correction period is a period during which the pitch of a musical tone is corrected from the initial pitch to a steady pitch and approaches the reference pitch. In other words, the correction period is a period during which the correction operation of a musical tone by a performer or singer who recognizes the pitch error is reproduced.

[0051] During the correction period, the pitch of the musical tone changes continuously or in steps from the initial pitch to the steady pitch. Since musical tones are generated electrically, the continuous change is expressed by changing the pitch according to the minimum resolution at which the musical tone can be produced. In other words, in this case, the pitch changes in steps in units so small that it can be considered essentially stepless. Therefore, the continuous pitch change of an electrical musical tone can also be considered a step-by-step pitch change.

[0052] The steady-state period is a period during which musical tones are generated at a steady pitch, i.e., a period during which a performer or singer who has determined that the pitch error has been corrected reproduces the state in which musical tones are generated at a stable pitch.

[0053] The position where a performer presses the fingerboard of a violin or acoustic bass is not necessarily the same every time, since it is a human operation. It is also difficult for a performer to play a wind instrument with accurate pitch. It sounds unnatural if musical notes are always generated with accurate pitch. In this embodiment, to represent the inaccuracy of actual performance, the initial pitch fluctuates randomly within range R1 for each performance operation. Range R1 is an example of a first pitch range.

[0054] Approaching the correct pitch by correcting from a low note to a high note is more likely to sound like the correct pitch than approaching the correct pitch by correcting from a high note to a low note. Approaching the correct pitch by correcting from a high note to a low note is likely to sound unnatural to the human ear. For this reason, performers and singers often approach the correct pitch by correcting from a low note to a high note. To reproduce this correction method, the initial pitch can be set lower than the reference pitch. Therefore, range R1 is set to a range centered on a center pitch P1 (an example of the center value of the first pitch range) that is lower than the reference pitch.

[0055] In the example of FIG. 5, even the upper limit value of range R1 (an example of the upper limit pitch of the first pitch range) is lower than the reference pitch. Therefore, the initial pitch is always lower than the reference pitch. However, since the performance is performed by a human, there is a possibility that the initial pitch may coincidentally match the reference pitch, or that the initial pitch may be higher than the reference pitch. Therefore, the upper limit value of range R1 may be set higher than the reference pitch. In this case, it is also preferable that the initial pitch is likely to be lower than the reference pitch. Therefore, the central pitch P1, which is the central value, is set lower than the reference pitch.

[0056] It is difficult to correct musical notes to an accurate pitch. Even when playing musical notes of the same pitch, the pitch often changes with each performance operation. To reproduce this pitch variation, the steady pitch fluctuates randomly within range R2 with each performance operation. Range R2 is an example of the second pitch range.

[0057] Range R2 is set to a range centered around a center pitch P2 (an example of a center value of a second pitch range) that is lower than the reference pitch. Because the steady pitch is the pitch after error correction, center pitch P2 is closer to the reference pitch than center pitch P1. In other words, center pitch P1 is farther from the reference pitch than center pitch P2 is and lower than center pitch P2. Furthermore, the upper limit value of range R2 (an example of an upper limit pitch of a second pitch range) is higher than the upper limit value of range R1 (an example of an upper limit pitch of a first pitch range) to facilitate correction from a low note (initial pitch) to a high note (steady pitch).

[0058] The parameters for center pitch P1, center pitch P2, range R1, and range R2 are set taking into consideration the average pitch deviations of instruments, performers, and singers. Therefore, these parameters are set to different values ​​for each waveform data, for example. This allows for a more realistic performance expression to be reproduced.

[0059] The delay period and correction period (or correction speed, from another perspective) may also vary depending on the instrument, performer, singer, etc. Therefore, these periods may also be set to different lengths for each waveform data. Furthermore, these periods may also be varied randomly within a certain range.

[0060] A performer or singer listens to the generated musical tone and corrects it to an appropriate pitch. Therefore, the steady-state pitch converges closer to the reference pitch, compared to the initial pitch, which tends to deviate from the reference pitch. Therefore, range R2, which indicates the range of fluctuation of the steady-state pitch, is set to be narrower than range R1, which indicates the range of fluctuation of the initial pitch.

[0061] The higher the frequency, the more likely it is that an error in playing will manifest as a large pitch error. For example, on a string instrument, the string length differs between the high and low positions. If the fingerboard position is shifted by the same 1 mm in both the high and low positions, the pitch error corresponding to that shift will be larger in the high position. More specifically, for every octave higher, the string length is halved, so the effect of a shift in fingerboard position on the pitch error doubles. For every octave lower, the string length doubles, so the effect of a shift in fingerboard position on the pitch error is halved.

[0062] In order to reproduce such a tendency of pitch error, the key follow function shown in FIG. 6 is applied when calculating the initial pitch and steady pitch.

[0063] In Figure 6, the horizontal axis represents the difference (pitch deviation) obtained by subtracting the original pitch (the pitch of the recorded musical tone) from the performance pitch (the pitch corresponding to the key number of the pressed key). If the performance pitch is higher than the original pitch, the pitch deviation will be a positive value. If the performance pitch is lower than the original pitch, the pitch deviation will be a negative value. For example, a pitch deviation of +12 indicates that the performance pitch is one octave higher than the original pitch. For example, a pitch deviation of -6 indicates that the performance pitch is one-half octave lower than the original pitch.

[0064] In Figure 6, the vertical axis indicates the magnification (fluctuation range magnification) of the fluctuation range of the initial pitch and steady pitch (i.e., ranges R1 and R2). "2x" on the vertical axis indicates that the fluctuation range of the initial pitch and steady pitch is twice as large as the fluctuation range when the performance pitch and the original pitch match. "1 / 2x" on the vertical axis indicates that the fluctuation range of the initial pitch and steady pitch is half as large as the fluctuation range when the performance pitch and the original pitch match. The numbers attached to each line indicate the key scaling value.

[0065] For example, when applying a key follow function with a key scaling value of 1.0, if the performance pitch is one octave higher than the original pitch, the fluctuation range of the initial pitch and steady pitch will be doubled. If the performance pitch is one octave lower than the original pitch, the fluctuation range of the initial pitch and steady pitch will be halved.

[0066] In this way, in this embodiment, by applying a key follow function when calculating the initial pitch and steady pitch, the ranges R1 and R2 become wider the higher the performance pitch (in other words, the higher the reference pitch associated with the pressed key), reproducing the characteristic that the range of pitch fluctuation is larger in higher positions.

[0067] The fluctuation range of the initial pitch and steady pitch differs for each instrument, for example. Therefore, the key-follow function applied when calculating the initial pitch and steady pitch may differ for each tone color and waveform data. For example, a key-follow function with a key scaling value of 1.0 is applied to waveform data of a violin. A key-follow function with a key scaling value of 0.8 is applied to waveform data of an acoustic bass.

[0068] 7 is a flowchart showing the processing executed by the electronic musical instrument 1 (more specifically, the processor 10 and the tone generator LSI 20) in one embodiment of the present disclosure. For example, when the power supply to the electronic musical instrument 1 is turned on, the processing shown in FIG. 7 begins to be executed. When the power supply to the electronic musical instrument 1 is turned off, the processing shown in FIG. 7 ends.

[0069] The steps of the flowcharts shown in the present embodiment may be reordered to the extent that they are consistent. For example, although the present disclosure presents the processing of various steps using an exemplary order, the order is not limited to the presented order. Furthermore, the steps of the flowcharts shown in the present embodiment may be executed in parallel or in parallel to the extent that they are consistent.

[0070] In the process shown in FIG. 7, the pitch of the musical tone is controlled during periodic processing that is executed at the start of sound generation in response to a key depression operation and every 1 ms while the musical tone is being generated.

[0071] 7, the electronic musical instrument 1 executes an initialization process (step S101), in which each component is initialized.

[0072] The electronic musical instrument 1 executes a switch process (step S102). In the switch process, the operational states of the switch panel 15, the controls 17, etc. are acquired. For example, information such as volume and tone color is acquired.

[0073] The electronic musical 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 musical instrument 1 switches the timbre (step S104).

[0074] Next, the electronic musical instrument 1 determines whether or not a key depression operation has been performed (step S105). If a key depression operation has been performed (step S105: YES), the electronic musical instrument 1 executes a key depression process (step S106).

[0075] The electronic musical instrument 1 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 musical instrument 1 executes a key release process (step S108).

[0076] The electronic musical instrument 1 determines whether or not a musical tone is being generated by the sound source LSI 20 (step S109). If a musical tone is being generated and a predetermined time (e.g., 1 ms) has elapsed since the previous steady-state processing (step S109: YES, step S110: YES), the electronic musical instrument 1 executes steady-state processing (step S111). The electronic musical instrument 1 executes other processing (display control of the LCD unit 19, communication processing, etc.) (step S112) and returns to the processing of step S102.

[0077] The subroutine of the key pressing process (step S106) in Fig. 7 will be described using Fig. 8. As shown in Fig. 8, the electronic musical instrument 1 executes key assigner processing (step S201). In the 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 pressing operation) is assigned from among the 128 generator sections 20A. More specifically, the number (0 to 127) of the generator section 20A to be assigned is assigned to a variable gen.

[0078] The electronic musical instrument 1 determines whether the status of the generator section 20A corresponding to the variable gen is not 0 (step S202).

[0079] Here, the status is indicated by GenStatus[i]. GenStatus[i] indicates the status of the generator section 20A numbered i. As shown below, GenStatus[i] takes on values ​​from 0 to 5. Note that since there are 128 generator sections 20A, the number i takes on values ​​from 0 to 127.

[0080] GenStatus[i]=0: Unused state GenStatus[i]=1: Sounding (delay period) GenStatus[i]=2: Sounding (correction period, rising) GenStatus[i]=3: Sounding (correction period, falling) GenStatus[i]=4: Sound is being generated (steady state) GenStatus[i]=5: Decay status

[0081] That is, when GenStatus[i] is a value of 0, the generator section 20A with the number i is unused (not being used for sound generation). When GenStatus[i] is a value of 1, it indicates that the generator section 20A with the number i is generating a musical tone and is in the delay period.

[0082] When GenStatus[i] is 2 or 3, it indicates that the i-th generator section 20A is producing a musical tone and is in the correction period. More specifically, GenStatus[i] of 2 indicates that the pitch is gradually increasing during the correction period. GenStatus[i] of 3 indicates that the pitch is gradually decreasing during the correction period.

[0083] When GenStatus[i] is a value of 4, it indicates that a musical tone is being generated in the generator section 20A of number i and is in a steady state. When GenStatus[i] is a value of 5, it indicates that a musical tone is being attenuated in the generator section 20A of number i due to a key release operation.

[0084] If the status (variable GenStatus[gen]) of the generator section 20A corresponding to the variable gen is not 0 (i.e., in use) (step S202: YES), the electronic musical instrument 1 immediately stops the generation of musical tones by this generator section 20A (step S203). As a result, musical tones are immediately muted in this generator section 20A.

[0085] The key number (0-127) and velocity value (0-127) included in the latest key press event corresponding to the key press operation are assigned to the variables "key" and "vel", respectively. The electronic musical instrument 1 selects waveform data with a waveform number corresponding to the variables "key" and "vel" (in other words, the key press event) from among the waveform data corresponding to the currently set timbre (step S204). More specifically, the waveform number indicating the selected waveform data is assigned to the variable "GenWaveNum[gen]".

[0086] The parameter WavOrgKey indicates the original pitch of the waveform data and takes a value from 0 to 127. The variable GenWavOrgKey[i] indicates the value of the parameter WavOrgKey of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0087] The parameter WavFinTune indicates the fine tuning value used when recording the waveform data, and takes on a value between -50 and +50. This value is measured in cents. In other words, the parameter WavFinTune indicates an adjustment value in semitone units. The variable GenWavFinTune[i] indicates the value of the parameter WavFinTune for the waveform data used in the sound generation process of the i-th generator section 20A.

[0088] The parameter WavTraRate indicates the rate of the correction period and takes on a value between 0.001 and 1.000. The rate of the correction period is the rate of change in the readout speed of the waveform data during the correction period. The higher the value of the parameter WavTraRate, the greater the change in the readout speed of the waveform data per unit time during the correction period. The variable GenWavTraRate[i] indicates the value of the parameter WavTraRate of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0089] The parameter WavDelTim indicates the length of the delay period and takes a value between 0 and 127. The unit of this value is ms. The variable GenWavDelTim[i] indicates the value of the parameter WavDelTim of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0090] The parameters WavIniPit and WavSusPit indicate the center pitch P1 and center pitch P2, which are the center values ​​of the ranges R1 and R2, respectively. The parameters WavIniPit and WavSusPit each take on a value between -1 and +1. These values ​​are expressed in semitones (100 cents). For example, -1 indicates -100 cents, and +1 indicates +100 cents. The variables GenWavIniPit[i] and GenWavSusPit[i] indicate the values ​​of the parameters WavIniPit and WavSusPit, respectively, of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0091] The parameters WavIniRndDp and WavSusRndDp indicate the widths of the ranges R1 and R2, respectively. The parameters WavIniRndDp and WavSusRndDp each take a value between 0 and +1. The unit of these values ​​is a semitone (100 cents). For example, +1 indicates +100 cents. The variables GenWavIniRndDp[i] and GenWavSusRndDp[i] indicate the values ​​of the parameters WavIniRndDp and WavSusRndDp, respectively, of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0092] The parameters WavIniRndKs and WavSusRndKs indicate key scaling values ​​(see FIG. 6) that are applied when calculating the initial pitch and steady pitch, respectively. The parameters WavIniRndKs and WavSusRndKs each take on a value between 0 and +1. The variables GenWavIniRndKs[i] and GenWavSusRndKs[i] indicate the values ​​of the parameters WavIniRndKs and WavSusRndKs, respectively, of the waveform data used in the sound generation process of the i-th generator section 20A.

[0093] The electronic musical instrument 1 acquires the values ​​of various parameters of the waveform data indicated by the variable GenWaveNum[gen] (step S205). More specifically, the electronic musical instrument 1 assigns the value of the parameter WavOrgKey to the variable GenWavOrgKey[gen]. The electronic musical instrument 1 assigns the value of the parameter WavFinTune to the variable GenWavFinTune[gen]. The electronic musical instrument 1 assigns the value of the parameter WavTraRate to the variable GenWavTraRate[gen]. The electronic musical instrument 1 assigns the value of the parameter WavDelTim to the variable GenWavDelTim[gen]. The electronic musical instrument 1 assigns the value of the parameter WavIniPit to the variable GenWavIniPit[gen]. The electronic musical instrument 1 assigns the value of the parameter WavIniRndDp to the variable GenWavIniRndDp[gen]. The electronic musical instrument 1 assigns the value of the parameter WavIniRndKs to the variable GenWavIniRndKs[gen]. The electronic musical instrument 1 assigns the value of the parameter WavSusPit to the variable GenWavSusPit[gen]. The electronic musical instrument 1 assigns the value of the parameter WavSusRndDp to the variable GenWavSusRndDp[gen]. The electronic musical instrument 1 assigns the value of the parameter WavSusRndKs to the variable GenWavSusRndKs[gen].

[0094] The electronic musical instrument 1 updates the status of the unused generator section 20A assigned in step S201 and initializes the timer (step S206). Specifically, the electronic musical instrument 1 sets the variable GenStatus[gen] to the value 1, which indicates the tone generation state during the delay period. The electronic musical instrument 1 also resets the variable GenElaTim[gen] to zero.

[0095] The variable GenElaTim[i] indicates the elapsed time (unit: ms) from the start of the current sound generation in the generator section 20A numbered i. The variable GenElaTim[gen] indicates the elapsed time from the start of the current sound generation in the generator section 20A corresponding to the variable gen. In other words, these variables indicate the elapsed time from the start of the sound generation of a musical tone.

[0096] The electronic musical instrument 1 calculates a variable GenRndCur[i] indicating the current pitch using the following equation (step S207). The variable GenRndCur[i] calculated here is calculated by multiplying a random number by the product of the range R1 and the fluctuation range magnification (see FIG. 6), and then adding the center pitch P1 to this product. This variable indicates the current pitch being generated by the i-th generator section 20A. The random number takes a value between approximately -1 and +1 by subtracting -0.5 from the value rnd generated by a known random number generating function and multiplying the result by 2. The value rnd takes a value between 0.00 and 0.99. If the delay period is in progress (in other words, if the variable GenElaTim[i] is equal to or less than the variable GenWavDelTim[i]), the variable GenRndCur[i] indicates the initial pitch.

[0097] GenRndCur[i]=GenWavIniPit[i]+(rnd-0.5)*2*GenWavIniRndDp[i]*GenWavIniRndKs[i]*X X=Key-GenWavOrgKey[i]

[0098] The electronic musical instrument 1 calculates a variable GenRndSus[i] indicating the steady pitch, similar to the variable GenRndCur[i] (step S208). The variable GenRndSus[i] is calculated by multiplying the product of the range R2 and the fluctuation range magnification (see FIG. 6) by a random number and adding the product to the center pitch P2, and indicates the steady pitch of the musical tone being generated by the i-th generator section 20A.

[0099] GenRndSus[i]=GenWavSusPit[i]+(rnd-0.5)*2*GenWavSusRndDp[i]*GenWavSusRndKs[i]*X

[0100] The electronic musical instrument 1 calculates the read speed of the waveform data using the following equation (step S209): Specifically, the electronic musical instrument 1 calculates the variable pint using the following equation, and calculates the variable pc from the calculated variable pint: The calculated variable pc indicates the current read speed of the waveform data in the generator section 20A to be controlled, and takes a value between 0.0 and 8.0.

[0101] pint=Key-GenWavOrgKey[i]+GenWavFinTune[i] / 100+Tune / 100+Transpose +pb+vib+GenRndCur[i] pc=2^(pint / 12)

[0102] The variable pint indicates the total value of the current pitch difference of the musical tone generated by the generator section 20A to be controlled, and takes on values ​​from -127 to +127. The pitch difference indicated by this variable pint is the difference between the original pitch and the actual pitch of the generated sound. If the generated pitch is higher than the original pitch, the value is positive, and if the generated pitch is lower than the original pitch, the value is negative.

[0103] The variable Tune indicates the tuning value of the electronic musical instrument 1 and takes a value between -100 and +100. The tuning value is measured in cents. The tuning value is set in response to a user operation on the control 17, for example.

[0104] The variable Transpose indicates the transpose value of electronic musical instrument 1, and takes values ​​from -12.0 to +12.0. -12.0 indicates -12 semitones (-1 octave). +12.0 indicates +12 semitones (+1 octave). For example, if the transpose value is +2, the corresponding pitch will be raised by a whole tone in all keys. If the transpose value is -1, the corresponding pitch will be lowered by a semitone in all keys.

[0105] The variable pb indicates the most recent pitch bend displacement value. The variable vib indicates the most recent vibrato displacement value. These variables all take values ​​between -12.0 and +12.0. Thus, the variable pint is calculated by adding the pitch displacement amount X (Key-GenWavOrgKey[i]), the tuning correction value (GenWavFinTune[i] / 100), the tuning value (Tune / 100), the transpose value (Transpose), the pitch bend and vibrato displacement values ​​(pb+vib), and the current pitch calculated in step S207 (GenRndCur[i], a pitch randomly set within the range R1).

[0106] In this way, the electronic musical instrument 1 calculates the readout speed of the waveform data from the variable pint, which indicates the pitch difference from the original pitch. Additionally, the electronic musical instrument 1 calculates the variable pc, which indicates the readout speed, from the variable pint, which fluctuates randomly with each performance operation. Additionally, pitch is handled in equal temperament. The variable pint, which indicates the pitch difference, is converted into the variable pc, which indicates the address value that advances in one sampling period.

[0107] For example, if the waveform data is played back at the same pitch as when it was sampled (i.e., the original sound), the variable pint will have a value of 0. Since the above formula is pc = 2^(0 / 12), the variable pc will have a value of 1.0. For example, if the waveform data is played back one octave higher than when it was sampled, the variable pint will have a value of 12. Since the above formula is pc = 2^(12 / 12), the variable pc will have a value of 2.0. For example, if the waveform data is played back one octave lower than when it was sampled, the variable pint will have a value of -12. Since the above formula is pc = 2^(-12 / 12), the variable pc will have a value of 0.5. For example, if the waveform data is played back four semitones lower than when it was sampled, the variable pint will have a value of -4. Since the above formula is pc = 2^(-4 / 12), the variable pc will have a value of 0.79.

[0108] The electronic musical instrument 1 performs sound generation processing (step S210). Specifically, the electronic musical instrument 1 provides the waveform data read speed (variable pc) and velocity (variable vel) (in other words, pitch and volume) to the generator section 20A corresponding to the variable gen, and begins reading the waveform data of GenWaveNum[gen] (the waveform data of the selected waveform number). This causes the generator section 20A to generate a musical tone.

[0109] The subroutine of the key-release process (step S108) in Fig. 7 will be described with reference to Fig. 9. As shown in Fig. 9, the electronic musical instrument 1 resets the variable gen to the value 0 (step S301).

[0110] The electronic musical instrument 1 determines whether the status of the generator section 20A corresponding to the variable gen (variable GenStatus[gen]) is greater than 0 and less than 5 (step S302). If the variable GenStatus[gen] is 0 or 5 (step S302: NO), the electronic musical instrument 1 proceeds to the processing of step S306.

[0111] If the variable GenStatus[gen] is any one of values ​​1 to 4 (in other words, a musical tone is being generated) (step S302: YES), the electronic musical instrument 1 determines whether the key number of the musical tone being generated, 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 musical instrument 1 determines whether the variable GenKey[gen] is the same as the variable key. The variable GenKey[i] indicates the key number of the musical tone being generated by the generator section 20A numbered i.

[0112] If the variable GenKey[gen] is different from the variable key (step S303: NO), the electronic musical instrument 1 proceeds to the processing of step S306. If the variable GenKey[gen] is the same as the variable key (step S303: YES), the electronic musical instrument 1 transitions the musical tone being generated by the generator section 20A corresponding to the variable gen to an attenuation state (step S304). As an example, the electronic musical instrument 1 applies the envelope at the time of key release to attenuate the musical tone being generated.

[0113] The electronic musical instrument 1 sets the variable GenStatus[gen] to a value of 5, which indicates the attenuation state (step S305). The electronic musical instrument 1 increments the variable gen by 1 (step S306). The electronic musical instrument 1 determines whether the variable gen is equal to or greater than 128 (step S307). If the variable gen is equal to or greater than 128 (step S307: YES), the electronic musical instrument 1 ends the subroutine for the key-release process (step S108). If the variable gen is less than 128 (step S307: NO), the electronic musical instrument 1 returns to the process of step S302. The electronic musical instrument 1 repeats the processes of steps S302 to S307 until the process of step S302 has been executed for all generator sections 20A.

[0114] 10A and 10B, the subroutine of the steady-state processing (step S111) of Fig. 7 will be described. As shown in Fig. 10A, the electronic musical instrument 1 resets the variable gen to the value 0 (step S401).

[0115] The electronic musical instrument 1 determines whether the status of the generator section 20A corresponding to the variable gen (variable GenStatus[gen]) is 0 (step S402). If the variable GenStatus[gen] is 0 (step S402: YES), the electronic musical instrument 1 proceeds to the processing of step S422.

[0116] If the variable GenStatus[gen] is not 0 (step S402: NO), the electronic musical instrument 1 determines whether the status (variable GenStatus[gen]) is 1 (step S403).

[0117] If the variable GenStatus[gen] is 1 (step S403: YES), the electronic musical instrument 1 proceeds to the process of step S404. If the variable GenStatus[gen] is not 1 (step S403: NO), the electronic musical instrument 1 proceeds to the process of step S410.

[0118] The electronic musical instrument 1 increments the timer by 1 (step S404). Specifically, the electronic musical instrument 1 increments the variable GenElaTim[i], which indicates the count value of the timer (here, the elapsed time from the start of the delay period), by 1. The electronic musical instrument 1 determines whether or not the delay period has ended (step S405). Specifically, the electronic musical instrument 1 determines whether or not the variable GenElaTim[gen], which indicates the elapsed time from the start of the delay period, is equal to or greater than the variable GenWavDelTim[gen], which indicates the length of the delay period.

[0119] If the delay period has not ended (step S405: NO), the electronic musical instrument 1 provides information on the read speed of the waveform data to the generator section 20A, and controls the generator section 20A corresponding to the variable gen (steps S418 to S420).

[0120] Specifically, in steps S418 and S419, the electronic musical instrument 1 calculates the variable pint indicating the current pitch, as in step S209, and calculates the waveform data readout speed (variable pc) from the calculated variable pint. In step S420, the electronic musical instrument 1 provides the value of the variable pc to the generator section 20A corresponding to the variable gen as the waveform data readout speed.

[0121] Next, the electronic musical instrument 1 executes various other processes for the generator section 20A corresponding to the variable gen (step S421). The electronic musical instrument 1 increments the variable gen by 1 (step S422). The electronic musical instrument 1 determines whether the variable gen is equal to or greater than 128 (step S423). If the variable gen is equal to or greater than 128 (step S423: YES), the electronic musical instrument 1 terminates the subroutine of the regular processing (step S111). If the variable gen is less than 128 (step S307: NO), the electronic musical instrument 1 returns to the processing of step S402. The electronic musical instrument 1 repeats the regular processing (step S111) until the processing of step S402 has been executed for all generator sections 20A.

[0122] When the delay period has ended (i.e., when the transition to the correction period has begun) (step S405: YES), the electronic musical instrument 1 determines whether the current pitch (i.e., the initial pitch) is the same as the steady pitch (step S406). Specifically, the electronic musical instrument 1 determines whether the variables GenRndCur[gen] and GenRndSus[gen] are the same value.

[0123] If the initial pitch is the same as the steady pitch (step S406: YES), the correction section is unnecessary and the electronic musical instrument 1 moves to the steady section, and therefore proceeds to the processing of step S416.

[0124] If the initial pitch is different from the steady pitch (step S406: NO), it is not time to transition to the steady section. The electronic musical instrument 1 determines whether the initial pitch is lower than the steady pitch (step S407). Specifically, the electronic musical instrument 1 determines whether the variable GenRndCur[gen] is smaller than the variable GenRndSus[gen].

[0125] If the initial pitch is lower than the steady pitch (step S407: YES), it is time to raise the pitch in the correction section. Therefore, the electronic musical instrument 1 sets the variable GenStatus[gen] to the value 2, which indicates that the pitch is being raised in the correction section (step S408). The electronic musical instrument 1 provides information about the read speed of the waveform data to the generator section 20A to control the generator section 20A (steps S418 to S421). If there is an unprocessed generator section 20A, the electronic musical instrument 1 returns to the processing of step S402.

[0126] If the initial pitch is higher than the steady pitch (step S407: NO), it is time to lower the pitch in the correction section. Therefore, the electronic musical instrument 1 sets the variable GenStatus[gen] to a value of 3, which indicates that the pitch is being lowered in the correction section (step S409). The electronic musical instrument 1 provides information about the readout speed of the waveform data to the generator section 20A to control the generator section 20A (steps S418 to S421). If there is an unprocessed generator section 20A, the electronic musical instrument 1 returns to the processing of step S402.

[0127] In step S410, the electronic musical instrument 1 determines whether the status of the generator section 20A corresponding to the variable gen (variable GenStatus[gen]) is the value 2 or not.

[0128] If the variable GenStatus[gen] is equal to 2 (step S410: YES), the electronic musical instrument 1 updates the current pitch (step S411). Specifically, the electronic musical instrument 1 updates the variable GenRndCur[gen] by adding the variable GenWavTraRate[gen], which indicates the rate of the correction period, to the variable GenRndCur[gen], which indicates the current pitch.

[0129] The electronic musical instrument 1 determines whether the current pitch has reached a steady pitch (step S412). Specifically, the electronic musical instrument 1 determines whether the variable GenRndCur[gen] indicating the current pitch is equal to or greater than the variable GenRndSus[gen] indicating the steady pitch. If the current pitch has not reached the steady pitch (step S412: NO), the electronic musical instrument 1 executes the processes of steps S418 to S423.

[0130] When the current pitch reaches the steady pitch (step S412: YES), the correction interval ends and the steady interval begins. There is a possibility that the variable GenRndCur[gen] has overshot and is now higher than GenRndSus[gen]. Therefore, the electronic musical instrument 1 updates the value of the variable GenRndCur[gen] to the value of the variable GenRndSus[gen] (step S416).

[0131] The electronic musical instrument 1 sets the variable GenStatus[gen] to the value 4, which indicates that sound is being generated in the steady section (step S417), and executes the processes of steps S418 to S423.

[0132] If the variable GenStatus[gen] is not 2 (step S410: NO), the electronic musical instrument 1 determines whether the status (variable GenStatus[gen]) of the generator section 20A corresponding to the variable gen is 3 (step S413).

[0133] If the variable GenStatus[gen] is equal to 3 (step S413: YES), the electronic musical instrument 1 updates the current pitch (step S414). Specifically, the electronic musical instrument 1 updates the variable GenRndCur[gen] by subtracting the variable GenWavTraRate[gen], which indicates the rate of the correction period, from the variable GenRndCur[gen], which indicates the current pitch.

[0134] The electronic musical instrument 1 determines whether the current pitch has reached a steady pitch (step S415). Specifically, the electronic musical instrument 1 determines whether the variable GenRndCur[gen] indicating the current pitch is equal to or less than the variable GenRndSus[gen] indicating the steady pitch. If the current pitch has not reached the steady pitch (step S412: NO), the electronic musical instrument 1 executes the processes of steps S418 to S423.

[0135] When the current pitch reaches the steady pitch (step S415: YES), the correction interval ends and the steady interval begins. There is a possibility that the variable GenRndCur[gen] has overshot and become lower than GenRndSus[gen]. Therefore, the electronic musical instrument 1 updates the value of the variable GenRndCur[gen] to the value of the variable GenRndSus[gen] (step S416).

[0136] The electronic musical instrument 1 sets the variable GenStatus[gen] to the value 4, which indicates that sound is being generated in the steady section (step S417), and executes the processes of steps S418 to S423.

[0137] In this way, the electronic musical instrument 1 generates musical tones in response to user operations on keys (an example of performance controls). When a delay period (an example of a first period) has elapsed since the musical tones began to be generated at an initial pitch (an example of a first pitch), the electronic musical instrument 1 changes the pitch of the musical tones continuously or in stages to approach the reference pitch associated with the key operated by the user. In addition, the electronic musical instrument 1 changes the pitch of the musical tones continuously or in stages from the initial pitch (an example of a first pitch) to a steady pitch (an example of a second pitch).

[0138] In other words, the electronic musical instrument 1 reads waveform data of a musical tone from the waveform ROM 20B at a first speed (the read speed calculated in step S209) corresponding to the initial pitch (an example of a first pitch) in response to a user operation on a key (an example of a performance operator). When a delay period (an example of a first period) has elapsed since the electronic musical instrument 1 started reading the waveform data at the first speed, the electronic musical instrument 1 changes the read speed of the waveform data continuously or in stages to bring the pitch of the musical tone closer to the reference pitch associated with the pressed key. In addition, the electronic musical instrument 1 changes the read speed of the waveform data continuously or in stages to change the pitch of the musical tone from the initial pitch (an example of a first pitch) to a steady pitch (an example of a second pitch).

[0139] By performing such processing, it is possible to reproduce performance expressions of timbres that are difficult to play at accurate pitch.

[0140] If the variable GenStatus[gen] is not 3 (step S413: NO), the electronic musical instrument 1 determines whether the status (variable GenStatus[gen]) of the generator section 20A corresponding to the variable gen is 4 (step S424). If the variable GenStatus[gen] is 4 (step S424: YES), the electronic musical instrument 1 executes the processes of steps S418 to S423.

[0141] If the variable GenStatus[gen] is not 4 (step S424: NO), the variable GenStatus[gen] is 5. That is, it is in the decay period shown in FIG. 5, and the status of the generator section 20A corresponding to the variable gen is the decay state.

[0142] Therefore, the electronic musical instrument 1 determines whether or not the attenuation of the musical tone has been completed in the generator section 20A corresponding to the variable gen (in other words, whether or not the level of the musical tone has reached 0) (step S425). If the attenuation of the musical tone has not been completed (step S425: NO), the electronic musical instrument 1 executes the processes of steps S418 to S423.

[0143] If the decay of the musical sound is complete (step S425: YES), the electronic musical instrument 1 stops the generator section 20A corresponding to the variable gen (step S426), sets its status (variable GenStatus[gen]) to the value 0 indicating an unused state (step S427), and executes the processing of steps S422 to S423.

[0144] For example, when playing a fast passage, a performer or singer may have little time to correct the pitch of the musical notes. Therefore, a situation may arise where a performer or singer plays musical notes one after another without having time to correct the pitch of the musical notes. In other words, a performer or singer may finish playing or singing a piece of music with musical notes that are slightly out of tune. This embodiment can also reproduce such performance expressions.

[0145] 11 and 12 show examples of pitch envelopes when playing a fast passage. The pitch envelope PE1 shown in Fig. 11 represents the case where a musical note being sounded is released during the correction period. The pitch envelope PE1 shown in Fig. 12 represents the case where a musical note being sounded is released during the delay period.

[0146] In the example of Fig. 11, because a key is released during the correction period, the pitch of the musical tone corresponding to the released key remains unchanged from the pitch at the time of key release, and the key-release process (step S108) of Fig. 7 is executed. That is, when a key is pressed (when a performance operator is turned on), the electronic musical instrument 1 performs a process of generating a musical tone, and when the finger is released from the key (when the performance operator is turned off) during the correction period (while the pitch of the musical tone is being changed continuously or in stages), the pitch of the musical tone is fixed at the pitch at the time of key release (when the performance operator is turned off), and the electronic musical instrument 1 performs a process of muting the musical tone.

[0147] In the example of Fig. 12, because the key is released during the delay period, the pitch of the musical tone corresponding to the released key remains unchanged from the initial pitch, and the key-release process (step S108) of Fig. 7 is executed. That is, when the key is pressed (when the performance operator is turned on), the electronic musical instrument 1 performs a process of generating a musical tone, and when the finger is released from the key (when the performance operator is turned off) before the delay period (an example of the first period) has elapsed, the pitch of the musical tone is fixed at the initial pitch (an example of the first pitch) and the musical tone is muted.

[0148] In this way, in this embodiment, by providing a delay period and reproducing the pitch error immediately after sound is produced, it is possible to reproduce a performance expression in which, for example, when playing a fast passage, musical notes are produced one after another without being able to fully correct the pitch error.

[0149] The above is a description of exemplary embodiments of the present disclosure. The 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, the embodiments of the present application also include appropriate combinations of embodiments explicitly shown in the specification or obvious embodiments. [Explanation of symbols]

[0150] 1: Electronic musical instrument, 10: Processor, 14: Keyboard, 20: Sound source LSI, 20A: Generator section, 20a: Pitch envelope generator

Claims

1. at least one processor; The at least one processor generating musical tones in response to user operations on the performance controls; When a first period of time has elapsed since the musical tone started to be generated at a first pitch, the pitch of the musical tone can be changed continuously or stepwise to a second pitch, so as to approach a reference pitch associated with the performance operator; the first pitch and the second pitch vary within a first pitch range and a second pitch range, respectively, for each user operation; a central value of the first pitch range being lower than a central value of the second pitch range; Control device.

2. The upper limit pitch of the second pitch range is higher than the upper limit pitch of the first pitch range. The control device according to claim 1 .

3. an upper limit pitch of the first pitch range being lower than the reference pitch; The control device according to claim 1 .

4. the second pitch range is narrower than the first pitch range; The control device according to claim 1 .

5. There are a plurality of the performance operators, the central value is different for each of the waveform data of the musical tones associated with different performance operators; The control device according to claim 1 .

6. the higher the reference pitch associated with the performance operator, the wider the first pitch range and the second pitch range. The control device according to claim 5 .

7. The at least one processor When the performance operator is turned on, the musical tone is generated. If the performance operator is turned off before the first period has elapsed, the pitch of the musical tone is fixed at the first pitch, and the musical tone is muted. The control device according to claim 1 .

8. The at least one processor When the performance operator is turned on, the musical tone is generated. When the performance operator is turned off while the pitch of the musical tone is being changed continuously or stepwise, the pitch of the musical tone is fixed at the pitch at the time when the performance operator is turned off, and the musical tone is muted. The control device according to claim 1 .

9. generating musical tones in response to user operations on the performance controls; when a first period has elapsed since the musical tone started to be generated at a first pitch, the pitch of the musical tone is changed continuously or stepwise to a second pitch, so as to approach a reference pitch associated with the performance operator; the first pitch and the second pitch vary within a first pitch range and a second pitch range, respectively, for each user operation; a central value of the first pitch range being lower than a central value of the second pitch range; method.

10. generating musical tones in response to user operations on the performance controls; when a first period has elapsed since the musical tone started to be generated at a first pitch, the pitch of the musical tone is changed continuously or stepwise to a second pitch, so as to approach a reference pitch associated with the performance operator; the first pitch and the second pitch vary within a first pitch range and a second pitch range, respectively, for each user operation; a central value of the first pitch range being lower than a central value of the second pitch range; program.

Citation Information

Patent Citations

  • Performance correction method and performance correction device

    JP2020106766A