|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention generally relates to a recording apparatus for
recording musical tones generated by an electronic musical instrument
which is played based on performance information inputted from a keyboard
or a computer, and more particularly to a multi-recording apparatus
capable of multi-recording inputted musical tones in addition to
pre-recorded musical tones.
Conventionally, an automatic performance apparatus as disclosed in Japanese
Patent Application Laid-Open No. 58-211191 is known as a conventional
performance recording and reproducing apparatus. This conventional
apparatus provides a performance data memory for storing key data
representative of the depressed keys, key event timing data representative
of key-on and key-off timings of each key and tone generating channel data
representative of a channel of a tone generating circuit, whereby a
musical tone having a different tone color can be recorded on and
reproduced from each channel.
However, the above conventional apparatus is merely a performance recording
apparatus, hence, the conventional apparatus is disadvantageous in that
the conventional apparatus can not record new musical tones on a
pre-recorded channel while reproducing the pre-recorded musical tones.
More specifically, the conventional apparatus can record performance
information on plural recording channels based on a time-division system,
and the conventional apparatus can simultaneously reproduce the recorded
performance information from such plural recording channels. However, the
conventional apparatus can not perform a real multi-recording. More
specifically, the conventional apparatus can not record newly inputted
information on the pre-recorded channel while reproducing pre-recorded
information from such pre-recorded channel. By increasing a channel
number, it is possible to obtain an advantage similar to that of the
multi-recording. However, there are many restrictions concerning
information quantity (such as the channel number) and the like. Hence, it
is difficult to increase the channel number.
In the case where the information is recorded on a nonrecorded channel in
the conventional apparatus, the information of the pre-recorded channel is
read from a desirable bank of a memory, and then the read information is
reformed with the inputted performance data. Such reformed information is
temporarily written into the non-recorded channel, and then such reformed
information is transferred to the original bank at a time when a recording
mode is completed. In this case, timing data after the above-mentioned
reformation are calculated out based on a clock value at every time when
each event data are written in. Therefore, if an event number is increased
or writing timings are delayed due to processes for inputted data or
switching operations, a time interval among pre-recorded event information
must be extended. As a result, a performance period of whole musical tune
must be changed.
In addition, the conventional apparatus does not output the inputted
performance information but generates musical tones corresponding to the
inputted performance information by an input unit such as a keyboard
performance unit in a recording period. Hence, the conventional apparatus
can not reproduce the musical tones similar to the recorded musical tones.
Further, when a recording is completed while a player keeps a key
depressing in the recording period, the conventional apparatus must keep a
musical tone corresponding to the depressed key generating at a time when
a performance is completed in a reproducing period. Similarly, when a
reproducing is completed while a reproduced musical tone is kept
generating, such reproduced musical tone must be kept generating.
SUMMARY OF THE INVENTION
It is accordingly a primary object of the present invention to provide a
multi-recording apparatus of an electronic musical instrument in which
timings of once written data are not changed even if the event number is
increased so that the performance period of whole musical tune can be
prevented from being extended.
It is another object of the present invention to provide a digital event
type multi-recording apparatus which can simultaneously generate the
recording musical tones and the reproduced musical tones in a
multi-recording period.
It is still another object of the present invention to provide an event
type performance recording and reproducing apparatus which can prevent the
musical tones from being kept generating in the case where the recording
is stopped while depressing the keys or in the case where the reproducing
is stopped while generating the reproduced musical tones.
In a first aspect to the invention, there is provided a multi-recording
apparatus of an electronic musical instrument comprising: (a) memory means
for recording performance information and generation timing information
together, the performance information representing musical tones generated
by playing external performance means, the generation timing information
representing a generation timing when the performance information is
generated; (b) measuring means for measuring a timing when the performance
information is newly inputted from the external performance means as first
generation timing when the inputted performance information is generated;
(c) reproducing control means for reproducing the performance information
pre-recorded in the memory means in accordance with the generation timing
information; (d) extracting means for extracting second generation timing
information from reproduced performance information; and (e) recording
control means for simultaneously recording both of the inputted
performance information and the reproduced performance information with
third generation timing information in the memory means, the third
generation timing information for both of the inputted and reproduced
performance information being calculated out so that each generation
timing information of each reproduced performance information can be equal
to the second generation timing information extracted by the extracting
means, whereby musical tones newly inputted from the external performance
means are over-recorded on a channel pre-recorded with the musical tones
in the memory means.
In a second aspect of the invention, there is provided a multi-recording
apparatus of an electronic musical instrument comprising: (a) a plurality
of input channels each inputting performance information, the performance
information being identical to event data representing events of depressed
or released keys and generation timings of the events; (b) memory means
for recording the inputted performance information by every input channel;
(c) setting means for selectively permitting recording and reproducing of
each input channel in the memory means, the setting means selectively
setting one of a recording mode, a reproducing mode and a stop mode; (d)
recording control means for reading first performance information from a
first input channel which is permitted to be recorded in accordance with
clocks pre-stored in the memory means, the recording control means
over-recording the read first performance information with newly inputted
second performance information on the first input channel in the recording
mode; (e) first output control means for selecting the second performance
information from a plurality of inputted performance information and
outputting the selected second performance information to be recorded on
the first input channel within the plurality of input channels in the
recording mode; (f) second output control means for selecting third
performance information from a plurality of performance information read
from the memory means, the selected third performance information being
outputted with respect to a second input channel which is permitted to be
recorded or reproduced in the recording or reproducing mode; (g) a
plurality of output channels; and (h) selecting means for selecting the
output channel corresponding to the first or second input channel, the
selecting means outputting the performance information of each input
channel outputted from each of the first and second output control means
to the selected output channel.
In a third aspect of the invention, there is provided a multi-recording
apparatus of an electronic musical instrument comprising: (a) memory means
for recording event data as performance information, the event data
representing events of depressed or released keys and generation timings
of the events; (b) setting means for selectively setting one of a
recording mode, a reproducing mode and a stop mode at least; (c) first
storing means for storing first information representative of depressing
states of keys which are designated by the performance data inputted from
external performance means; (d) recording control means for recording the
inputted performance information in the memory means in the recording
mode, the recording control means detecting depressed keys based on
contents of the first information stored in the first storing means so as
to generate and record first releasing information of the depressed keys
in the memory means when the recording mode is changed to the stop mode;
(e) reading means for reading the performance data from the memory means
in accordance with clocks; (f) second storing means for storing second
information representative of the depressing states designated by the read
performance information; and (g) output control means for outputting the
read performance information in the recording and reproducing modes, the
output control means detecting depressing keys based on contents of the
second information stored in the second storing means so as to generate
and output second releasing information of the depressed keys when the
recording or reproducing mode is changed to the stop mode.
BRIEF DESCRIPTION OF THE DRAWINGS
Further objects and advantages of the present invention will be apparent
from the following description, reference being had to the accompanying
drawings wherein a preferred embodiment of the present invention is
clearly shown.
In the drawings:
FIG. 1 is a block diagram showing a hardware construction of an embodiment
of the multi-recording apparatus of an electronic musical instrument;
FIG. 2 is a front view showing an appearance of an operation panel;
FIG. 3 is a circuit diagram showing an input unit shown in FIG. 1;
FIG. 4 is a circuit diagram showing an output unit shown in FIG. 1;
FIG. 5 is a circuit diagram showing a tempo generator shown in FIG. 1;
FIGS. 6A to 6C are tables for explaining input and output states of the
embodiment shown in FIG. 1;
FIG. 7 shows an example of a sequence data format;
FIG. 8 is a flow chart showing a main process;
FIG. 9 is a flow chart showing an INC/DEC switching process;
FIG. 10 is a flow chart showing an UP/DOWN switching process;
FIG. 11 is a chart showing a LEFT/RIGHT switching process;
FIG. 12 is a flow chart showing a PLAY switch-on process;
FIG. 13 is a flow chart showing a REC switch-on process;
FIG. 14 is a flow chart showing a song start process;
FIG. 15 is a flow chart showing a track change process;
FIG. 16 is a flow chart showing a key-on event process;
FIG. 17 is a flow chart showing a key-off event process;
FIG. 18 is a flow chart showing a time interval data process;
FIG. 19 is a flow chart showing an end mark process;
FIG. 20 is a flow chart showing a STOP switch-on process;
FIG. 21 is a flow chart showing a all key-off process;
FIG. 22 is a flow chart showing a key-off write process;
FIG. 23 is a flow chart showing a reproducing timer interrupt process;
FIG. 24 is a flow chart showing a recording timer interrupt process;
FIGS. 25A to 25C are flow charts showing an input interrupt process;
FIG. 26 is a flow chart showing an input key code process; and
FIG. 27 is a diagram for explaining an operation example of the
multi-recording apparatus shown in FIG. 1.
DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring now to the drawings, wherein like reference characters designate
like or corresponding parts throughout the several views, FIG. 1 is a
block diagram showing a hardware construction of an embodiment of the
multi-recording apparatus of an electronic musical instrument.
[A] Diagrammatical Description of Multi-Recording Apparatus Shown in FIG. 1
This multi-recording apparatus shown in FIG. 1 (hereinafter, referred
simply to as "this apparatus") is a so-called event type recording
apparatus which records key-event data and timing data together. The key
event data represents depressing and releasing of keys in the keyboard of
the electronic musical instrument, and the timing data represents timings
(or time intervals) for generating the key events. Thereafter, this
apparatus reproduces the musical tones from the recorded key event data
based on the time intervals represented by the timing data so as to output
such reproduced musical tones. In this case, the recording is performed
based on the key event data inputted from performance information
generating means such as the keyboard and the computer. In addition, the
reproduced key event data are transferred to the computer, a tone source
and the like. Further, this apparatus can combine the input data and the
reproduced data together so as to generate new recording data and then
record such new recording data on an original track (or a channel) from
which the reproducing data are read.
This apparatus provides eight input terminals for inputting the key event
data and eight output terminals for outputting the key event data. Each
terminal provides sixteen channels each according to a Musical Instrument
Digital Interface (MIDI) standard. Hereinafter, such channel will be
referred to as a MIDI channel. Therefore, this apparatus provides
8.times.16=128 input channels and 128 output channels. Hence, it is
possible to simultaneously connect 128 input units (such as the keyboards
of the electronic musical instruments) and 128 output units (such as tone
sources of the electronic musical instruments) to this apparatus.
In addition, sixty four recording tracks are provided, and each track can
be assigned with desirable one input channel and one output channel. Each
track can be recorded with data representative of thirty two keys which
are simultaneously depressed.
As described heretofore, this apparatus can be normally connected with 128
equivalent musical instruments, and then this apparatus can select sixty
four equivalent musical instruments from 128 equivalent musical
instruments so as to record and reproduce the performance played by use of
the selected sixty four equivalent musical instrument. Within a capacity
limit of the tone sources connected to the output terminals of this
apparatus, it is possible to simultaneously generate thirty two reproduced
tones by each track, i.e., it is possible to simultaneously generate
32.times.64=2048 reproduced tones as a whole of this apparatus.
[B] Description of Construction of Multi-Recording Apparatus Shown in FIG.
1
In FIG. 1, a central processing unit (CPU) 10 is provided in order to
control operations of the whole multi-recording apparatus. This CPU 10 is
connected with a program memory 14, registers 16, a sequence memory 18, an
input unit 20, an output unit 22, switches 24 and a tempo generator 26 via
a bidirectional bus line 12.
The program memory 14 is constructed by a read only memory (ROM) and the
like, and this program memory 14 pre-store control programs for
controlling the CPU 10.
The registers 16 temporarily stores several data which are generated when
the CPU 10 executes the above-mentioned control programs. Each of the
registers 16 is arranged at a predetermined area within a random access
memory (RAM).
The registers 16 provided in this multi-recording apparatus can be
described in an alphabet order as follows. In the following thirty one
registers, each numeral designates each register and contents of data
thereof.
1. CSX: CSX represents a X-coordinate of a cursor for designating a
register TBL (0 to 63, 1 to 5) constituting input/output information
tables (shown in FIGS. 6A to 6C), and this X-coordinate corresponds to a
recording track No.
2. CSY: CSY represents a Y-coordinate of a cursor for designating a
register TBL (0 to 63, 1 to 5), and this Y-coordinate corresponds to
input/output information.
3. FLG: FLG represents a flag for discriminating a sequence data process.
4. IN1 to IN3: IN1 to IN3 represent input data buffers each storing input
data (or key codes) from the input unit.
5. IKCBUF (0 to 63, 0 to 31): IKCBUF represents an input key code buffer
for storing the depressed key information at the input terminal by each
track.
6. INCH: INCH represents MIDI channels (0 to 15) of the input data.
7. INTRM: INTRM represents input terminal information (0 to 7) of the input
data.
8. i: i represents a control variable.
9. j: j represents another control variable.
10. JOB: JOB represents a performance mode (0: STOP, 1: PLAY, 2: RECORD).
11. KC: KC represents the key code (of 7 bits).
12. LEN: LEN represents a time interval of the event.
13. LNREST: LNREST represents a remained time of the time interval LEN to
be written in.
14. LNSAM: LNSAM an lapsed time which is lapsed after the preceding key
event is generated.
15. OKCBUF (0 to 63, 0 to 31): OKCBUF represents an output key code buffer
for storing depressed key information at the output terminal by each
track.
16. OLDRCNT: OLDRCNT represents old data of a RECCNT (i.e., a write timing
register).
17. OUT1 to OUT3: OUT1 to OUT3 represent output data buffers each
outputting data to the output unit.
18. OUTCH: OUTCH represents the MIDI channel (0 to 15) of the output data.
19. OUTTRM: OUTTRM represents output terminal information (0 to 7) of the
output data.
20. PIRQMSK: PIRQMSK represents a masking of a reproducing interrupt signal
PLAYIRQ (1: mask, 0: interrupt is permitted).
21. RD1 to RD3:RD1 to RD3 represent buffers for the event data read from an
internal memory.
22. RECCNT: RECCNT represents a count value of a count timer RECTIMER
(shown in FIG. 5) for writing the inputted performance information.
23. RPT: RPT represents a pointer for reading the sequence data, and this
pointer will be referred to as a reading pointer hereinafter.
24. SONGEND: SONGEND represents the last address of sequence performance
data.
25. SONGTOP: SONGTOP represents the head address of the sequence
performance data.
26. TBL (0 to 63, 0 to 31): TBL represents a register for setting the
input/output states of each track.
27. TCH: TCH represents a touch information of the inputted key data.
28. TRKIN: TRKIN represents a track number as the input data.
29. TRKRD: TRKRD represents a track number as internal memory data.
30. TRKWT: TRKWT represents a track number to be newly written in.
31. WPT: WPT represents a pointer for writing the sequence data, and this
pointer will be referred to as a writing pointer hereinafter.
The sequence memory 18 is constructed by the RAM so as to record the
performance information such as the key codes, for example. As shown in
FIG. 7, this sequence memory 18 stores data having a word length of three
bytes such as "key-on" data, "key-off" data and "time interval" data;
"track change" data having a word length of two bytes; and "end mark" data
having a word length of one byte. The first byte within each of the
above-mentioned data designates an identifier mark representative of a
data kind thereof.
In the identifier marks "9X" and "8X" of the "key-on" and "key-off" data,
"X" designates the MIDI channel of such data. In addition, the second byte
of each of the "key-on" and "key-off" data designates the "key-code", and
the third byte thereof designates the "touch" information.
The "end mark" is one byte data which are not added with a parameter term
and which only represent an identifier mark F2.sub.H. Hereinafter, data
added with the suffix ".sub.H " will represent data of hexadecimal digit.
In the "time interval" data, the first byte represents an identifier mark
F4.sub.H, the second byte represents upper seven bits of the time interval
data, and the third byte represents lower seven bits of the time interval
data.
In the "track change" data, the first byte represents an identifier mark
FF.sub.H and the second byte represents two byte data having track data.
FIG. 2 is a front view showing an appearance of an operation panel of this
multi-recording apparatus. This operation panel shown in FIG. 2 provides
switches 30, 32, 34 and 36 for moving a cursor, an increment (INC) switch
38, a decrement (DEC) switch 40, a PLAY switch 42, a RECORD switch 44, a
STOP switch 46 and other operating switches 48 including a tempo setting
switch. The switches 30, 32, 34 and 36 are provided in order to designate
the register TBL (0 to 63, 1 to 5) for setting input/output information of
the registers 16. In addition, the INC switch 38 and the DEC switch 40 are
provided in order to change data stored in the register TBL (CSX, CSY)
designated by the cursors CSX and CSY. Further, the PLAY switch 42, the
RECORD switch 44 and the STOP switch 46 are provided in order to select
desirable performance mode of this multi-recording apparatus. These
switches 30 to 48 constitutes the switches 24 shown in FIG. 1.
As shown in FIG. 3, the input unit 20 shown in FIG. 1 consists of eight
input terminals Ti1 to Ti8, input buffers INBUF.sub.0 to INBUF.sub.7, an
OR gate 62, an encoder 64 and input interrupt number (INIRQNO) register
66. The input buffers INBUF.sub.0 to INBUF.sub.7 are constituted by
first-in-first-out (FIFO) registers which temporarily store the
performance information inputted via the input terminals Ti1 to Ti8 and
then sequentially output each bit data of the performance information in
accordance with an inputting order. The OR gate 62 detects the inputted
performance information and then generates an input interrupt signal
INPUTIRQ when the performance information is inputted via one of the input
terminals Ti1 to Ti8. The encoder 64 detects one or some numbers of the
input buffers which store the inputted performance information within the
input buffers INBUF.sub.0 to INBUF.sub.7 which are designated by a 3-bit
signal to be transmitted to register 66. The register 66 temporarily
stores such detected input buffer numbers until the inputted performance
information is read out from the input buffers.
As shown in FIG. 4, the output unit 22 provides the bidirectional bus line
12 and output buffers OUTBUF.sub.0 to OUTBUF.sub.7 connected between the
bus line 12 and eight output terminals To1 to To8.
As shown in FIG. 5, the tempo generator 26 consists of a clock setting unit
70 for generating a clock CL having a frequency corresponding to set tempo
value, a 8-bit increment counter 72 for counting the clock CL, a NOR gate
74, a counter timer for the recording (hereinafter, referred to as a
recording timer RECTIMER), registers PLYTMH and PLYTML, a decrement
counter 76, a NOR gate 78, a register 80, an inverter 82 and an AND gate
84. The NOR gate 74 outputs a recording interrupt signal RECIRQ at every
time when the count value of the counter 72 becomes equal to a value "0",
i.e., data value (00.sub.H). The recording timer RECTIMER latches the
count value of the counter 72. When the time interval data are read from
the sequence memory 18, such time interval data are divided into upper
data of upper seven bits and lower data of lower seven bits. The register
PLYTMH stores such upper data, and the register PLYTML stores such lower
data. After the registers PLYTMH and PLYTML respectively preset the time
interval data, the decrement counter 76 counts down the clock CL. The NOR
gate 78 outputs the reproducing interrupt signal PLAYIRQ when the count
value of the counter 76 becomes equal to the value "0". The value "1" is
set in the register 80 when the reproducing interrupt signal PLAYIRQ is
masked in the stop mode. At this time, the inverter 82 and the AND gate 84
inhibits the reproducing interrupt signal PLAYIRQ from being outputted.
FIG. 6A is a diagram showing the register TBL(x, y) for setting the
input/output states of the registers 16 as a table. In a first column
"TRACK NO." shown in FIG. 6A, the number of the recording tracks which are
set in the sequence memory 18 are written, and this "TRACK NO." is
indicated by the value of the cursor CSX in an actual process. In a second
column "INPUT", the input channels of the data to be recorded on the
corresponding tracks are written. Each input channel is selected by the
input terminal number (in a column of CSY=1) and the MIDI channel (in a
column of CSY=2). In a third column "OUTPUT", the output channels of the
data read from the tracks are written. Each output channel is selected by
the output terminal number (in a column of CSY=3) and the MIDI channel (in
a column of CSY=4). In a fourth column "TRACK MODE" (i.e., in a column of
CSY=5), processing contents of the tracks are written. Next, FIGS. 6B and
6C shows the processing contents of each track mode.
As shown in FIGS. 6B and 6C, no data are read from and written into the
track corresponding to the track mode of "0(stop)", and the input data of
such track are not outputted as well. On the other hand, no input data are
written into and outputted from the track corresponding to the track mode
of "1(play)", but the internal data (i.e., the sequence performance data)
corresponding to such track are reproduced and then outputted to the
output terminal when the performance mode is set to the reproducing or
recording mode (i.e., when JOB equals to "1" or "2"). Next, regardless of
the performance mode, the input data of the track corresponding to the
track mode of "2(rec)" are outputted to the output terminal. In this case,
the input data are written into such track corresponding to the track mode
of "2(rec)" when the performance mode is set to the recording mode (i.e.,
JOB equals to "2"), and the internal data of such track are outputted to
the output terminal when the performance mode is set to the reproducing or
recording mode (i.e., JOB equals to "1" or "2").
[c] Description of Operations of Multi-Recording Apparatus Shown in FIG. 1
Next, description will be given with respect to the operations of the
multi-recording apparatus shown in FIG. 1 in conjunction with FIGS. 8 to
27.
(1) Main Process
First, description will be given with respect to the main process in
conjunction with FIG. 8. In a first step 100 of the main process shown in
FIG. 8, the CPU 10 starts to operate in accordance with the control
programs stored in the program memory 12. In next steps 101 and 102, the
CPU 10 initializes the registers 16. More specifically, in the step 101,
the CPU 10 sets the output key code buffer OKCBUF (0 to 63, 0 to 31), the
register TBL (0 to 63, 0 to 31) for setting the input/output states and a
reproducing interrupt masking register PIRQMSK, and the CPU 10 also clears
the performance mode register JOB. In this case, it is possible to set a
predetermined preset value (read from the ROM or an external memory) to
these registers. In the step 102, the external memory and the like set the
head address SONGTOP and the last address SONGEND of the sequence
performance data.
After the above-mentioned initialization, the CPU 10 calls and executes
each subroutine of an INC/DEC switching process (in a step 110), an
UP/DOWN switching process (in a step 130), a LEFT/RIGHT switching process
(in a step 140), a PLAY switch-on process (in a step 150), a REC switch-on
process (in a step 160) and a STOP switch-on process (in a step 170), and
then the CPU 10 executes the other processes (in a step 190). Thereafter,
the CPU 10 repeatedly executes the series of the processes in the
above-mentioned steps 110 to 190.
(2) INC/DEC Switching Process
The INC switch 38 and the DEC switch 40 shown in FIG. 2 are used for
changing the input/output states of the register TBL (csx, csy).
Next, description will be given with respect to the INC/DEC switching
process in conjunction with FIG. 9. In a step 111 shown in FIG. 9, the CPU
10 checks whether either the INC switch 38 or the DEC switch 40 is turned
on or not. When neither switch 38 or 40 are turned on in the step 111, the
present process returns to the main process (shown in FIG. 8). On the
other hand, when one of these switches 38 and 40 is turned on, the present
process advances to a next step 112 wherein the CPU 10 checks the values
of the performance mode register JOB and the cursor Y-coordinate CSY. When
the performance mode indicates the modes other than the stop mode (i.e.,
JOB does not equal to "0") and the cursor designates the modes other than
the track mode (i.e., CSY does not equal to "5"), the present process
returns to the main process (shown in FIG. 8). Thus, the input/output
channels are inhibited from being changed in the reproducing or recording
cycle.
If the performance mode is set to the stop mode (i.e., the value of the
register JOB equals to "0") and the cursor designates the track mode
(i.e., CSY equals to "5"), the present process advances to a next step 113
wherein the CPU 10 checks the contents of the cursor Y-coordinate CSY and
the input/output information stored in the register TBL(csx, csy). In the
case where the cursor designates the track mode (i.e., CSY=5) and the
cursor X-coordinate CSX designates the recording mode (i.e., TBL(csx,
5)=2), the present process advances to a step 115. In other cases, the
present process advances to a step 114. When the INC switch 38 is turned
on, the content of the input/output information stored in the register
TBL(csx, csy) (hereinafter, simply referred to as content or value of the
register TBL(csx, csy)) is increased in the step 114. However, when the
DEC switch 40 is turned on, the content of the register TBL(csx, csy) is
decreased in the step 114. After executing the process in the step 114, | | |