Control device, method, and program

The control device adjusts readout speeds of waveform data to maintain consistent noise section lengths, addressing discomfort from pitch changes in musical tones, providing a more natural listening experience.

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

Patent Information

Application Number
JP2024040165
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

Performance devices produce musical tones with varying pitch by changing the readout speed of waveform data, leading to discomfort due to significant changes in noise section lengths, especially when transitioning between pitches.

Method used

A control device and method that includes a storage unit with waveform data intervals for noise and pitch sections, and a processor that adjusts the read speed of waveform data to maintain a consistent noise section length by using a pitch envelope to gradually transition between pitches.

Benefits of technology

Reduces user discomfort by minimizing abrupt changes in noise section lengths when changing musical tones, ensuring a more natural and pleasant listening experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025140638000001_ABST
    Figure 2025140638000001_ABST
Patent Text Reader

Abstract

To restrain a user's feeling of incongruity in terms of an auditory sensation when generating a musical sound.SOLUTION: A control device comprises: a storage section for storing waveform data that include a first section, and a second section following the first section, where the second section records a waveform of a first pitch and the first section records noise before the sound of a first pitch is generated; and at least one processor for reading waveform data correlated with a performance operator operated by a user from the storage section at a speed corresponding to a pitch corresponding to the performance operator operated by the user from among multiple performance operators. At least one processor reads waveform data at a first speed determined by first processing in the first section when the user operates a performance operator and reads waveform data at a second speed determined in second processing different from first processing in the second section.SELECTED DRAWING: Figure 6
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] In a performance device such as an electronic musical instrument, the pitch of the musical tones that are generated can be changed by changing the readout speed of waveform data (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

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

[0004] Performance devices can produce musical tones with the tones of various instruments. For example, when reproducing the tones of guitars or wind instruments, it is conceivable to include a very short noise section at the beginning of the waveform data (for example, a section where picking noise is generated in the case of a guitar) in order to express the nuances unique to that tone.

[0005] In order to generate musical tones at a different pitch from the original sound, if the read speed of the waveform data is changed from the speed of the original sound, the length of the noise section also changes. If the length of the noise section changes too much from the original sound, the user may feel uncomfortable listening to it.

[0006] In view of the above circumstances, an object of the embodiments of the present disclosure is to provide a control device, method, and program that can reduce the sense of discomfort that a user experiences when musical tones are produced. [Means for solving the problem]

[0007] A control device according to an embodiment of the present disclosure includes: a storage unit that stores waveform data including a first interval and a second interval following the first interval, where the second interval is an interval in which a waveform of a first pitch is recorded and the first interval is an interval in which noise is recorded before a sound of the first pitch is emitted; and at least one processor that reads, from the storage unit, waveform data associated with a performance operator operated by a user among a plurality of performance operators, at a speed corresponding to the pitch corresponding to the performance operator operated by the user. When the user operates the performance operator, the at least one processor reads, in the first interval, the waveform data at a first speed determined by a first process, and in the second interval, the waveform data at a second speed determined by a second process different from the first process. [Effects of the Invention]

[0008] According to one embodiment of the present disclosure, a control device, method, and program are provided that can reduce the sense of discomfort that a user experiences when musical tones are produced. [Brief explanation of the drawings]

[0009] [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] 10A to 10C are diagrams illustrating an example of a pitch envelope used in a sound source LSI according to an embodiment of the present disclosure and waveform data read out by the sound source LSI. [Figure 5] FIG. 10 is a diagram illustrating an example of a key follow function applied to an attack portion of waveform data in an embodiment of the present disclosure. [Figure 6] 10A to 10C are diagrams illustrating an example of a pitch envelope used in a sound source LSI according to an embodiment of the present disclosure and waveform data read out by the sound source LSI. [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] FIG. 10 is a diagram showing an example of waveform data read out by a conventional device. DETAILED DESCRIPTION OF THE INVENTION

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

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

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

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

[0014] 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 integrated manner by using the RAM 11 as a work area.

[0015] 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).

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

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

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

[0019] The keyboard 14 has 61 keys that are performance controls. Specifically, the keyboard 14 has 36 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.

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

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

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

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

[0024] 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 a display device such as an organic EL (Electro Luminescence) display.

[0025] 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).

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

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

[0028] The waveform ROM 20B stores waveform data for each musical instrument (tones such as guitar, bass, and piano). The waveform data is, for example, data in PCM (Pulse Code Modulation) format that is a recording of musical tones produced by an actual musical instrument. The waveform data for each tone includes waveform data for key numbers (in other words, pitches) corresponding to some of the keys on the keyboard 14.

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

[0030] The pitch envelope generator 20a outputs a pitch envelope to control the read speed at which the waveform generator 20d reads waveform data from the waveform ROM 20B.

[0031] 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) corresponding to the pitch envelope output from the pitch envelope generator 20a.

[0032] 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 sound). 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.

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

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

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

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

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

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

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

[0040] FIG. 11 shows an example of waveform data read by a conventional device. The middle section of FIG. 11 shows waveform data read at a speed corresponding to a reference pitch envelope waveform (i.e., waveform data of the original pitch). The top section of FIG. 11 shows waveform data read at a read speed corresponding to a pitch one octave higher than the original pitch. The bottom section of FIG. 11 shows waveform data read at a read speed corresponding to a pitch one octave lower than the original pitch.

[0041] The waveform data shown in Figure 11 is PCM format data that records musical sounds produced by instruments such as guitars and wind instruments, which have very short noise sections at the beginning. In the case of guitar waveform data, picking noise is recorded at the beginning. In the case of wind instrument waveform data, breath noise is recorded at the beginning. By including such noise sections in the waveform data, the nuances unique to that timbre are expressed. If the waveform did not include a noise section, the performance pitch would be produced immediately after the user pressed a key, resulting in an unnatural musical sound without the unique nuances of the timbre.

[0042] As shown in Figure 11, the length of the noise section changes as the readout speed of the waveform data changes. As an example, we will explain the case where guitar waveform data is played back. At the beginning of the guitar waveform data, there is a noise section of about 15 ms to 20 ms where picking noise is recorded.

[0043] For example, when generating a musical tone of A0 (approximately 27.5 Hz) using waveform data with an original pitch of E2 (approximately 82 Hz) and a noise interval of 15 ms, the read speed of the waveform data is approximately 0.34 times faster than when the original pitch is used. As a result, the length of the noise interval extends to approximately 45 ms, which is approximately three times longer than when the original pitch is used.

[0044] Generally, if the time from key depression until a pitched musical tone is produced exceeds 25 ms to 30 ms, people will perceive it as being too long.

[0045] Furthermore, when a musical tone is played at a pitch higher than the original pitch, the read speed of the waveform data is faster. As a result, the length of the noise interval is shorter than when the original pitch is played. In other words, in this case, the time from when a key is pressed until a pitched musical tone is produced seems shorter. When comparing when the playback pitch is raised and when it is lowered, the difference in the length of the noise interval is quite large. This can also be a factor that increases the sense of discomfort to the ear.

[0046] To alleviate this sense of incongruity, the electronic musical instrument 1 according to this embodiment is configured to suppress changes in the length of noise sections that accompany changes in the readout speed of waveform data.

[0047] 4 shows an example of the pitch envelope PE used in the tone generator LSI 20 according to this embodiment and an example of waveform data read out by the tone generator LSI 20. For the sake of simplicity, the pitch envelope PE takes into account only the pitch corresponding to the pressed key (i.e., it does not take into account factors other than the pitch (such as the pitch bend effect or the depth of the vibrato effect according to a user operation)).

[0048] The waveform data is stored in a waveform ROM 20B, which is an example of a storage unit. The waveform data includes a noise section (an example of a first section) and a sustain section (an example of a second section) following the noise section. The sustain section is a section in which a waveform of an original pitch (e.g., E2) generated by a sound generating means (e.g., the sixth string of a guitar) corresponding to the original pitch (an example of a first pitch) is recorded. The noise section is a section in which noise (e.g., picking noise) is recorded before the sound of the original pitch is generated.

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

[0050] Fig. 4 shows an example in which waveform data is read at a read speed corresponding to a pitch lower than the original pitch. In the example of Fig. 4, in order to produce a musical tone lower than the original tone, the pitch envelope PE is formed so that the pitch of the sustained interval (performance pitch) is lower than the original pitch of the sustained interval of the original waveform data.

[0051] That is, the sound source LSI20, which is an example of at least one processor, reads waveform data corresponding to the key (an example of a performance operator) operated by the user from the waveform ROM20B at a speed corresponding to the performance pitch (an example of a pitch corresponding to the performance operator operated by the user).

[0052] If the pitch of the noise section were to be the same as the performance pitch, the noise section would be too long, as in the example in the lower part of Fig. 11. Therefore, in this embodiment, the pitch envelope PE is formed so that the pitch of the noise section is a pitch between the original sound pitch and the performance pitch. Illustratively, the pitch envelope PE is formed so that the pitch of the noise section is close to the original sound pitch.

[0053] In many instruments, the pitch of the noise section has little correlation with the playing pitch. For example, in a guitar, picking noise is dominated by the friction sound between the pick and the string. Similarly, in a string instrument, breath noise is dominated by the sound of air being blown into the tube before it vibrates. For this reason, there is little audible discomfort even if the pitch of the noise section is deviated from the playing pitch. There is also little need to change the pitch of the noise section to match the playing pitch.

[0054] However, if the pitch suddenly changes when transitioning from a noise section to a sustained section, some users may perceive it as strange to their ears. Therefore, the noise section is divided into a front section and a back section.

[0055] In the first section, the pitch envelope PE is set to, for example, a pitch (attack pitch) close to the original pitch. In the second section, the pitch envelope PE gradually changes from the attack pitch to the performance pitch. The change from the attack pitch to the performance pitch may be continuous or stepwise.

[0056] That is, the pitch envelope PE is composed of an attack section corresponding to the attack pitch, a transition section that gradually changes from the attack pitch to the performance pitch, and a sustain section that corresponds to the performance pitch. The presence of the transition section prevents abrupt changes in pitch, thereby reducing the sense of discomfort felt by the user. Note that if the attack pitch is always the same as the original pitch, or if the attack pitch is higher than the original pitch even though the performance pitch is lower than the original pitch, the gradient of the transition section may be too large, for example. In this case, some users may perceive it as being uncomfortable. Therefore, the attack pitch may be set so that it is always lower than the original pitch.

[0057] Thus, the noise section (an example of a first section) includes a first section and a second section. The sound source LSI 20, which is an example of at least one processor, reads out waveform data at an attack pitch (an example of a first speed) in the first section. The sound source LSI 20 reads out waveform data in the second section while varying the pitch from the attack pitch (an example of a first speed) to a performance pitch (an example of a second speed).

[0058] FIG. 5 shows an example of a key follow function applied to the attack portion of waveform data. The key follow function is a function for determining the attack pitch. In FIG. 5, the vertical axis is in cents. In FIG. 5, the horizontal axis is the difference obtained by subtracting the original pitch from the performance pitch. If the performance pitch is higher than the original pitch, the difference is a positive value. If the performance pitch is lower than the original pitch, the difference is a negative value.

[0059] If the difference is x and the cent is y, the key follow function is expressed as y = Ax, where A is a coefficient. In Figure 5, the numbers attached to each line indicate the coefficient A. For example, in the case of a line attached with "1.0", the key follow function is y = 1.0 x x.

[0060] When coefficient A is 1.0, the attack pitch changes from the original pitch by the same amount as the performance pitch. As an example, if the performance pitch is one octave lower than the original pitch, the attack pitch will also be one octave lower than the original pitch. In other words, if coefficient A is set to 1.0, as with conventional devices, depending on the performance pitch, the noise interval may become too long, which may cause the user to feel uncomfortable when listening. Therefore, in this embodiment, coefficient A is set to less than 1.0 (0.25, 0.5, 0.8, etc.).

[0061] Fig. 6 is a diagram showing an example of the pitch envelope PE and waveform data read out by the sound source LSI 20 when the coefficient A is 0.25. Fig. 6 shows the pitch envelope PE0 and waveform data when the performance pitch is the same as the original pitch (see +0 Oct in Fig. 6), the pitch envelope PE1 and waveform data when the performance pitch is one octave higher than the original pitch (see +1 Oct in Fig. 6), and the pitch envelope PE2 and waveform data when the performance pitch is one octave lower than the original pitch (see -1 Oct in Fig. 6).

[0062] In the example of Figure 6, even if the performance pitch is one octave lower than the original pitch, the attack pitch is only 0.25 octaves lower than the original pitch. Even if the performance pitch is one octave higher than the original pitch, the attack pitch is only 0.25 octaves higher than the original pitch.

[0063] In other words, even if the performance pitch is one octave higher or lower than the original pitch, the attack pitch is close to the original pitch. Therefore, regardless of the pitch difference between the original pitch and the performance pitch, there is little change in the length of the noise section. This reduces the sense of discomfort felt by the user.

[0064] In this way, the sound source LSI 20, which is an example of at least one processor, determines the attack pitch (an example of a first speed) based on the difference between the original sound pitch (an example of a first pitch) and the performance pitch (an example of a second pitch).

[0065] More specifically, when the performance pitch (an example of a second pitch) is higher than the original pitch (an example of a first pitch), the sound source LSI20, which is an example of at least one processor, determines the attack pitch (an example of a first speed) to be slower than the performance pitch (an example of a second speed) and closer to the original pitch (an example of a third speed corresponding to the first pitch) than the performance pitch (an example of a second speed).

[0066] When the performance pitch (an example of a second pitch) is lower than the original pitch (an example of a first pitch), the sound source LSI20, which is an example of at least one processor, determines the attack pitch (an example of a first speed) to be a speed that is faster than the performance pitch (an example of a second speed) and closer to the original pitch (an example of a third speed corresponding to the first pitch) than the performance pitch (an example of a second speed).

[0067] When the performance pitch (an example of a second pitch) matches the original pitch (an example of a first pitch), the sound source LSI 20, which is an example of at least one processor, determines the attack pitch (an example of a first speed) and the performance pitch (an example of a second speed) to be the same speed.

[0068] 7 is a flowchart showing the processing executed by the electronic musical instrument 1 (more specifically, the processor 10, which is an example of at least one processor, 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 with reference to Fig. 8. As shown in Fig. 8, the electronic musical instrument 1 executes key assigner processing (step S201).

[0078] In the key assigner process, a generator section 20A to be controlled (specifically, a generator section 20A that generates a musical tone in response to a key press) 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 the variable gen.

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

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

[0081] GenStatus[i]=0: Unused state GenStatus[i]=1: Attack part is sounding GenStatus[i]=2: Transition section rising GenStatus[i]=3: Transition section falling GenStatus[i]=4: Sustained part sounding GenStatus[i]=5: Decay status

[0082] That is, when GenStatus[i] is 0, the generator section 20A with the number i is unused (not being used for sound generation). When GenStatus[i] is 1, the generator section 20A with the number i is generating a musical tone in the preceding section (attack part) of the noise section.

[0083] When GenStatus[i] is 2 or 3, the generator section 20A with number i is generating a musical tone in the latter section (transition section) of the noise section. More specifically, GenStatus[i] with value 2 indicates that the pitch is gradually increasing in the transition section. GenStatus[i] with value 3 indicates that the pitch is gradually decreasing in the transition section.

[0084] When GenStatus[i] is 4, the musical tone in the sustain section is being generated in the generator section 20A of number i. When GenStatus[i] is 5, the musical tone in the generator section 20A of number i is decaying due to a key release.

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

[0086] 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 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, a value indicating the selected waveform data is assigned to the variable "GenWaveNum[gen]."

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

[0088] The parameter WavFinTune indicates the tuning value of the waveform data and takes a value between -50 and +50. This value is expressed 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 of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0089] The parameter WavStaAdrs indicates the leading address from which waveform data is read, and takes a value greater than or equal to 0. The variable GenWavStaAdrs[i] indicates the value of the parameter WavStaAdrs of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0090] The parameter WavAtkLen indicates the length of the attack portion of the waveform data and takes a value greater than or equal to 0. The variable GenWavAtkLen[i] indicates the value of the parameter WavAtkLen of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0091] The parameter WavAtkKeyFlw indicates the coefficient A of the key follow function (see FIG. 5) and takes a value between 0.0 and 1.0. The variable GenWavAtkKeyFlw[i] indicates the value of the parameter WavAtkKeyFlw of the waveform data used in the sound generation process of the generator section 20A numbered i.

[0092] The parameter WavTraRate indicates the rate of the transition portion of the waveform data and takes on a value between 0.001 and 1.000. The rate of the transition portion is the rate of change in the read speed of the waveform data in the transition portion. The higher the value of the parameter WavTraRate, the greater the change in the read speed per unit time of the waveform data in the transition portion. 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.

[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 WavStaAdrs to the variable GenWavStaAdrs[gen]. The electronic musical instrument 1 assigns the value of the parameter WavAtkLen to the variable GenWavAtkLen[gen]. The electronic musical instrument 1 assigns the value of the parameter WavAtkKeyFlw to the variable GenWavAtkKeyFlw[gen]. The electronic musical instrument 1 assigns the value of the parameter WavTraRate to the variable GenWavTraRate[gen].

[0094] The electronic musical instrument 1 updates the status of the unused generator section 20A assigned in step S201 (step S206). Specifically, the electronic musical instrument 1 sets the variable GenStatus[gen] to the value 1, which indicates that the attack portion is being sounded.

[0095] The electronic musical instrument 1 calculates the performance pitch (see FIG. 4) using the following formula (step S207).

[0096] GenSusPint[i]=key-GenWavOrgKey[i]+GenWavFinTune[i] / 100+Tune / 100

[0097] The variable GenSusPint[i] indicates the difference (pitch difference) between the original pitch (see FIG. 4) of the musical tone generated by the generator section 20A numbered i and the played pitch. The variable GenSusPint[i] takes a positive value if the played pitch is higher than the original pitch, and takes a negative value if the played pitch is lower than the original pitch. 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, for example, in response to a user operation on the control 17.

[0098] In this embodiment, for convenience of processing, the variable GenSusPint[i] does not include the dynamic elements variable pb (described later) and variable vib (described later).

[0099] The electronic musical instrument 1 calculates the attack pitch (see FIG. 4) using the following formula (step S208).

[0100] GenAtkPint[i]=GenWavAtkKeyFlw[i]*(key-GenWavOrgKey[i]))+GenWavFinTune[i] GenCurPint[i] = GenAtkPint[i] pint=GenCurPint[i]+pb+vib+Tune / 100

[0101] The variable GenAtkPint[i] indicates the difference (pitch difference) between the original pitch and the attack pitch of the musical tone generated by the i-th generator section 20A. The variable GenAtkPint[i] is a positive value if the attack pitch is higher than the original pitch, and a negative value if the attack pitch is lower than the original pitch.

[0102] The variable GenCurPint[i] indicates the difference (pitch difference) between the original pitch of the musical tone generated by the i-th generator section 20A and the current pitch. The variable GenCurPint[i] takes a positive value if the current pitch is higher than the original pitch, and takes a negative value if the current pitch is lower than the original pitch.

[0103] The variable pint indicates the total value of the current pitch difference of the musical tones generated by the generator section 20A to be controlled, and takes on a value between -127 and +127.

[0104] The variable pb indicates the most recent pitch bend displacement value and takes a value between -12.0 and +12.0. -12.0 indicates -12 semitones (-1 octave). +12.0 indicates +12 semitones (+1 octave). The variable vib indicates the most recent vibrato displacement value and takes a value between -12.0 and +12.0. -12.0 indicates -12 semitones (-1 octave). +12.0 indicates +12 semitones (+1 octave).

[0105] The electronic musical instrument 1 calculates the read speed of the waveform data using the following equation (step S209).

[0106] pc=2^(pint / 12)

[0107] The variable pc indicates the current readout speed of the waveform data in the generator section 20A, and takes a value between 0.0 and 8.0.

[0108] In this way, the electronic musical instrument 1 calculates the readout speed corresponding to the attack pitch 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 calculated based on the key follow function.

[0109] In this embodiment, the pitch is handled in equal temperament scale. The pitch difference pint is converted into a variable pc that indicates an address value that advances in one sampling period.

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

[0111] The electronic musical instrument 1 performs sound generation processing (step S210). Specifically, the electronic musical instrument 1 provides the waveform data read speed pc, velocity vel, and waveform data read start address GenWavStaAdrs[gen] to the generator section 20A corresponding to the variable gen. As a result, musical tones are generated in this generator section 20A.

[0112] 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).

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

[0114] If the variable GenStatus[gen] is one of the values ​​1 to 4 (in other words, a musical tone is being produced) (step S302: YES), the electronic musical instrument 1 determines whether the key number of the musical tone being produced by the generator section 20A corresponding to the variable gen matches the key number corresponding to the pressed key (step S303).

[0115] 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 i-th generator section 20A.

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

[0117] The electronic musical instrument 1 sets the variable GenStatus[gen] to the value 5, which indicates the attenuation state (step S305), and then increments the variable gen by 1 (step S306).

[0118] 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 of 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.

[0119] 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).

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

[0121] 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).

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

[0123] The electronic musical instrument 1 sets the variable adrs (step S404). Specifically, the electronic musical instrument 1 assigns the current address value of the waveform data read by the generator section 20A corresponding to the variable gen to the variable adrs.

[0124] The electronic musical instrument 1 determines whether the address has not yet been reached (step S405). Specifically, the electronic musical instrument 1 determines whether the variable adrs is less than the sum of the variables GenWavStaAdrs[gen] and GenWavAtkLen[gen]. In other words, the electronic musical instrument 1 determines whether the read address of the waveform data has reached the last address (final address) of the attack section and is now at the stage of transitioning to the transition section.

[0125] If the final address of the attack section has not yet been reached (i.e., it is not yet time to transition to the transition section) (step S405: YES), 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). Specifically, in step S418, the electronic musical instrument 1 calculates the current pitch using the following equation:

[0126] pint=GenCurPint[i]+pb+vib+Tune / 100

[0127] In step S419, the electronic musical instrument 1 calculates the waveform data read speed (variable pc) using the following equation:

[0128] pc=2^(pint / 12)

[0129] In step S420, the electronic musical instrument 1 provides the value of the variable pc as the readout speed of the waveform data to the generator section 20A corresponding to the variable gen.

[0130] Next, the electronic musical instrument 1 executes various other processes on the generator section 20A corresponding to the variable gen (step S421), and then increments the variable gen by 1 (step S422).

[0131] 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 ends 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.

[0132] When the final address of the attack part is reached (i.e., it is the stage of transitioning to the sustain part) (step S405: NO), the electronic musical instrument 1 determines whether the current pitch is the same as the performance pitch (i.e., GenCurPint[i] = GenSusPint[i]) (step S406).

[0133] When the current pitch is the same as the performance pitch (step S406: YES), it is the stage of transitioning to the sustain part. Therefore, the electronic musical instrument 1 proceeds to the process of step S416.

[0134] When the current pitch is different from the performance pitch (step S406: NO), it is not the stage of transitioning to the sustain part. The electronic musical instrument 1 determines whether the current pitch is lower than the performance pitch (i.e., GenCurPint[i] < GenSusPint[i]) (step S407).

[0135] When the current pitch is lower than the performance pitch (step S407: YES), it is the stage of raising the pitch towards the sustain part. Therefore, the electronic musical instrument 1 sets the variable GenStatus[gen] to the value 2 indicating that the transition part is rising (step S408). The electronic musical instrument 1 gives information on the read speed of the waveform data to the generator section 20A and controls the generator section 20A (steps S418 - S421). If there is an unprocessed generator section 20A, the electronic musical instrument 1 returns to the process of step S402.

[0136] When the current pitch is higher than the performance pitch (step S407: NO), it is the stage of lowering the pitch towards the sustain part. Therefore, the electronic musical instrument 1 sets the variable GenStatus[gen] to the value 3 indicating that the transition part is falling (step S409). The electronic musical instrument 1 gives information on the read speed of the waveform data to the generator section 20A and controls the generator section 20A (steps S418 - S421). If there is an unprocessed generator section 20A, the electronic musical instrument 1 returns to the process of step S402.

[0137] 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 2. If the variable GenStatus[gen] is 2 (step S410: YES), the electronic musical instrument 1 updates the variable GenCurPint[i] using the following equation (step S411).

[0138] GenCurPint[i]=GenCurPint[i]+GenWavTraRate[gen]

[0139] The electronic musical instrument 1 determines whether the current pitch has reached the performance pitch (i.e., GenCurPint[gen]≧GenSusPint[i]) (step S412). If the current pitch has not reached the performance pitch (step S412: NO), the electronic musical instrument 1 executes the processes of steps S418 to S423.

[0140] If the current pitch has reached the performance pitch (step S412: YES), the stage is now one in which the sustain portion will begin, and the electronic musical instrument 1 updates the value of the variable GenCurPint[gen] to the value of the variable GenSusPint[i] (step S416).

[0141] The electronic musical instrument 1 sets the variable GenStatus[gen] to the value 4, which indicates that the sustain portion is being sounded (step S417), and executes the processes of steps S418 to S423.

[0142] 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).

[0143] If the variable GenStatus[gen] is 3 (step S413: YES), the electronic musical instrument 1 updates the variable GenCurPint[i] using the following formula (step S414).

[0144] GenCurPint[i]=GenCurPint[i]-GenWavTraRate[gen]

[0145] The electronic musical instrument 1 determines whether the current pitch has reached the performance pitch (i.e., GenCurPint[gen]≦GenSusPint[i]) (step S415). If the current pitch has not reached the performance pitch (step S412: NO), the electronic musical instrument 1 executes the processes of steps S418 to S423.

[0146] If the current pitch has reached the performance pitch (step S415: YES), the stage is now transitioning to the sustain portion. Therefore, the electronic musical instrument 1 updates the value of the variable GenCurPint[gen] to the value of the variable GenSusPint[i] (step S416), sets the variable GenStatus[gen] to the value 4, which indicates that the sustain portion is being sounded (step S417), and executes the processes of steps S418 to S423.

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

[0148] If the variable GenStatus[gen] is not 4 (step S424: NO), the variable GenStatus[gen] is 5. That is, the status of the generator section 20A corresponding to the variable gen is the decay state.

[0149] 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).

[0150] If the decay of the musical tone is not complete (step S425: NO), the electronic musical instrument 1 executes the processes of steps S418 to S423. If the decay of the musical tone 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 processes of steps S422 to S423.

[0151] Thus, according to this embodiment, the sound source LSI20, which is an example of at least one processor, reads out waveform data in the noise section (more specifically, the early section, an example of the first section) at a speed (an example of a first speed determined by a first process) calculated using a key-follow function (an example of a predetermined function), and reads out waveform data in the sustain section (an example of a second section) at a speed (an example of a second speed determined by a second process different from the first process) calculated without using the key-follow function.

[0152] More specifically, when a key (an example of a performance operator) corresponding to a pitch (an example of a second pitch) different from the original pitch (an example of a first pitch) is operated, the sound source LSI20, which is an example of at least one processor, determines the first speed to be different from the second speed in the first processing.

[0153] By performing such processing, it is possible to suppress changes in the length of the noise section that occur when the readout speed of the waveform data is changed, as shown in FIG. 6, for example.

[0154] 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]

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

Claims

1. a storage unit that stores waveform data including a first section and a second section that follows the first section, wherein the second section is a section in which a waveform of a first pitch is recorded, and the first section is a section in which noise is recorded before a sound of the first pitch is emitted; and at least one processor that reads out from the storage unit waveform data associated with a performance operator operated by a user among a plurality of performance operators, at a speed corresponding to a pitch corresponding to the performance operator operated by the user; when the user operates the performance operator, the at least one processor reads out the waveform data in the first section at a first speed determined by a first process, and reads out the waveform data in the second section at a second speed determined by a second process different from the first process; Control device.

2. the waveform data is associated with two or more of the performance operators, each of which corresponds to two or more pitches included in a predetermined range; When the performance operator corresponding to a second pitch different from the first pitch is operated, the at least one processor determines the first speed to be different from the second speed in the first process. The control device according to claim 1 .

3. The at least one processor In the first process, the first speed is determined using a predetermined function; In the second process, the second speed is determined without using the predetermined function. The control device according to claim 1 .

4. the at least one processor determines the first velocity based on a difference between the first pitch and the second pitch. The control device according to claim 2 .

5. The at least one processor If the second pitch is higher than the first pitch, determining the first speed to be slower than the second speed and closer to a third speed corresponding to the first pitch than the second speed; If the second pitch is lower than the first pitch, the first speed is determined to be faster than the second speed and closer to the third speed than the second speed. The control device according to claim 2 .

6. The at least one processor If the second pitch is equal to the first pitch, the first speed and the second speed are determined to be the same. The control device according to claim 5 .

7. the first section includes a first section and a second section following the first section, The at least one processor reading out the waveform data at the first speed in the first section; In the latter section, the waveform data is read out while being changed continuously or stepwise from the first speed to the second speed. The control device according to any one of claims 1 to 6.

8. A method for reading waveform data from a storage unit, the waveform data including a first section in which a noise before a sound of a first pitch is generated is recorded, and a second section following the first section in which a waveform of the first pitch is recorded, the method comprising: causing the computer to execute a process of reading waveform data associated with a performance operator operated by a user from the storage unit at a speed corresponding to the pitch of the performance operator operated by the user; In the readout process, the waveform data is read out in the first section at a first speed determined by a first process, and in the second section at a second speed determined by a second process different from the first process. method.

9. A program that reads out, from a storage unit, waveform data including a first section in which a noise before a sound of a first pitch is generated is recorded, and a second section that follows the first section and in which a waveform of the first pitch is recorded, causing the computer to execute a process of reading waveform data associated with a performance operator operated by a user from the storage unit at a speed corresponding to the pitch of the performance operator operated by the user; In the readout process, the waveform data is read out in the first section at a first speed determined by a first process, and in the second section at a second speed determined by a second process different from the first process. program.

Citation Information

Patent Citations

  • Musical sound generating device

    JP1996044362A