EP2368242A1 - System for computer-assisted interpretation of pre-recorded music - Google Patents
System for computer-assisted interpretation of pre-recorded musicInfo
- Publication number
- EP2368242A1 EP2368242A1 EP08875357A EP08875357A EP2368242A1 EP 2368242 A1 EP2368242 A1 EP 2368242A1 EP 08875357 A EP08875357 A EP 08875357A EP 08875357 A EP08875357 A EP 08875357A EP 2368242 A1 EP2368242 A1 EP 2368242A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- action
- memory
- event
- musical
- note
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0008—Associated control or indicating means
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
- G10H1/0066—Transmission between separate instruments or between individual components of a musical system using a MIDI interface
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
- G10H1/361—Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
- G10H1/40—Rhythm
Definitions
- the invention relates to a pre-recorded computer-assisted music interpretation system of the type comprising essentially at least one musical actuator operable by a user interpreter, memory means for storing musical information relating to the partition of a piece of music. music to be interpreted by the user and means for transmitting the musical information to a suitable electronic / computer device for producing audio signals from the received musical information.
- Stopping the notes also does not have the necessary control to be performed perfectly faithful to the musical score. For example, stopping of notes is caused by a gesture
- the system according to the invention is characterized in that it comprises a memory MM musical data, which define the totality of musical events EM constituting the piece of music to be interpreted.
- the system is characterized in that it comprises a memory MA of the sequence of actions necessary for the reproduction of stored EM musical events.
- the system is characterized in that the memory MM is structured so that for each musical event EM to be reproduced is associated a temporal index designating the number of steps of resolution existing between the beginning of the piece to reproduce and this event, at a time index that can be associated several musical events EM.
- each musical event is constituted by a series of a number of predetermined numerical values, in particular relating to the assignment of the event EM to the corresponding actuator, at the execution of the event.
- the system is characterized in that the memory MA contains, associated with time indexes for which there exists a musical event EM, the list of the expected actions of the corresponding actuator as well as the manner in which it must be treated each of these actions.
- the system is characterized in that the memory MA contains the number of the actuator having produced the action and the status of the action which could be an AS synchronization action or not.
- the system is characterized in that the memory MA comprises, associated with each time index for which there is a musical event, for each actuator present in the system, the instant of the next action of synchronization and information on the status of the expected action that can take three values respectively representative of the absence of an expected action, an AS synchronization action and a non-synchronizing action.
- the system is characterized in that it comprises, in each track of which an actuator is part, a time sequence generator GST, which is adapted to check whether in the memory MA an action is provided and, if so, whether this action is a simple action or an AS synchronizing action.
- the system is characterized in that the time sequence generator GST is adapted to ignore an action coming from the actuator if no action was expected at this time according to the memory MA, or , if a non-synchronizing action is expected, to cause the playing of the musical event in the memory MM, and to play the event by the audio synthesis unit AU or, in the case where at this moment an action of synchronization type AS is present in the memory MM to determine by calculation the instantaneous speed of execution of the piece by the interpreter and the number of time resolution steps until the next synchronization action expected according to the memory MA and the generation the rhythmic sequence of temporal indexes at a rate corresponding to the calculated speed.
- the system is characterized in that it comprises a PU purge mechanism allowing the user to play certain musical events EM as a priority in the case of significant acceleration of his game.
- the system is characterized in that the purge mechanism consists of a memory per track containing, at any moment, EM music events such as note starts or pedal depression and , for each note initiated or pedal pressed the index indicating the end of this note or the release of pedal.
- the system is characterized in that when the temporal index sequence normally arrives at the event EM containing the stopping of a note stored in the purge memory, this event EM is played and the note stopped and deleted in the memory.
- the system is characterized in that the purge mechanism is adapted to be fully traversed upon receipt of any new action and when there are EM events such as a note or a pedal whose time index is lower than that of the action being processed, the note is stopped or the pedal is released and removed from the purge memory.
- EM events such as a note or a pedal whose time index is lower than that of the action being processed
- the system is characterized in that it comprises a filter mechanism of a musical event EM when such an event must be played by the system either because an actuator has triggered this event or because a running time sequence caused it.
- the system is characterized in that the filtering mechanism comprises a dedicated interface enabling the user to set up a filtering itself.
- FIG. 2 illustrates, in the form of a flowchart, the operation of the system according to the invention
- FIG. 3 illustrates a possibility according to the invention of treating polymelodies on the BWV347 chorale of JS BACH;
- FIG. 4 illustrates an example of a polymelody treatment according to the invention
- FIG. 5 illustrates part of a partition to explain the operation of the action memory MA according to the invention
- FIG. 6 illustrates the operation of the automatic note stopping mechanism according to the invention.
- a pre-recorded computer-assisted music interpretation system according to the invention comprises at least one track, but in general a plurality of tracks P, two of which P1, P2 are represented, each of which comprises a musical actuator A1, A2, a memory MA of the sequence of actions that a user interpreter can perform, a temporal pointer PT (not shown) which determines, in number of steps of time resolution, where one is in the piece played, a time sequence generator per track GST1, GST2, a purge unit of expired events, denoted PU1, PU2, a memory of the musical data MM, an event selector S1, S2, a note stopping manager per track NOF1 , NOF2, a synthesis unit and AU sound production and a unit for calculating and displaying UCA common partitions.
- the musical actuators are instruments of the type known under the name MIDI (Musical Interface Digital Instruments), that is to say instruments equipped with a digital musical interface.
- MIDI musical actuators such as keyboards, video-based motion capture systems or sensors that produce discrete information such as present, absent notes, pitch and velocity of notes, actuated pedals, or no, switching between logical states, either continuous such as MIDI controls such as volume, pressure, breath or position / orientation of a movement, or both types of information.
- the systems according to the invention are based on the use of the MIDI communication and control protocol and the MIDI standard for exchanging data between electronic musical instruments, one or more of which may be computers.
- MIDI is an international standard that allows electronic instruments from different manufacturers to communicate with each other. This standard is based in summary on sequences of 3 values, namely: - a status code, between 128 and 255. The division of this code by 16 indicates the type of musical event, for example the number 9 indicates a trigger of note, 8 indicates a note stop, 11 a continuous check. The rest of this same division indicates a MIDI channel between 1 and 16, allowing a device configured to receive a given channel, to retain only the events that concern it;
- a value between 0 and 127 specifying the data related to the above status, for example for a note triggering the pitch of the note, the code 60 being assigned to the central C key 88 keyboards, or for a continuous control the type of controller, for example 7 for the volume, and 2 for the so-called breath control;
- a value between 0 and 127 for example the velocity of depression of the key in the case of a note trigger, which will determine at which strength the note will be played.
- the MIDI standard is complemented by a standard called MIDIFILE or MIDI file, defining a MIDI event recording format.
- this standard provides the notion of a runway.
- the notion of MIDIFILE tracks aims to facilitate the organization of data by the user. Different tracks are stored successively in a MIDI file, not allowing the operation described below.
- a fundamental component of this system is the memory of the MM musical data shared by all tracks. This memory contains all the musical events EM constituting the piece to be interpreted.
- An event EM can be any event of the partition of this piece, resulting from the MIDI standard, notably notes of the score and a specific event of the system relating to the structure of the piece, such as for example a beginning of measurement or a repetition end, or an interpretation event such as an accented note, appoggiature, arpeggio or trill.
- EM events are assigned to an A1, A2 actuator available to the user.
- the corresponding actuator number is encoded and is part of the data designating the type of the event and is modifiable. This means that these events will be processed and played by the track corresponding to this actuator.
- an EM event will be triggered as above, but this EM is, moreover, marked as being associated with an action called synchronization AS.
- An event of this type is for example a score of the score which is observed by what it serves as a time reference.
- the sequence of AS events makes it possible to estimate the game speed of the user.
- the time interval between two consecutive AS actions received from a given actuator is used for calculating the execution speed of the pieces by the user;
- an EM event will be played automatically and in a timely manner by the affected track without the need for user action.
- the data structure is organized into an array of lines, each line being accessible from its time index indicated in the left column.
- the time index of an event is the number of steps of resolution between the beginning of the song and this event. Indeed, the time is measured by the system by the number of time resolution steps elapsed since the beginning of the piece. For example, music data is often time-coded with a temporal resolution of 384 steps per quarter note. In this case, the step will be worth 1/384 ⁇ m ⁇ of a second if the tempo is 60 black per second. If the time pointer PT is 1536, 4 seconds have elapsed. There is therefore a row in the table for each time index where there is a musical event for the piece in question. Each line contains one or more EM music events. Each musical event is itself made up of a series of 8 numerical values, namely:
- this is an extension of the MIDI standard.
- This standard defines the type of the event such as note-on, note-off, change of command, change of program.
- the numeric value of the type simultaneously codes for one of the sixteen MIDI channels, thus defining sixteen channels of production sound.
- the MIDI type results in an integer between 128 and 225. According to the invention, there is added a coding prefix.
- third MIDI data for example, velocity; - End time index of the event, for example note-off for a note, or pedal-off for a pedal information. This information is used for the PU purge mechanism
- the line contains 32 values and therefore defines four musical events EM since each event is encoded by 8 values.
- the first 8 values ranging from 2145 to 252 concern a first EM.
- the first value 2145 makes it possible to know the type of event, that is to say of synchronization AS or not. As mentioned above, dividing the first value 2145 by 10000 gives the type of event. Since the division result is 0, it is not an AS synchronization event. The division by 1000 gives 2, which means that it is an EM on track 2.
- the rest of the division per 1000 gives 145, from which it emerges that the event EM is assigned according to the codes MIDI to MIDI channel # 2.
- the second and third values of the line namely the values 43 and 127, respectively denote the pitch, 43 being the flat, and the playing force, 127 being the maximum possible.
- the fourth value 1,152 indicates the duration, which is 1,152 steps of resolution, that is to say four blacks. This note is therefore a round.
- the four values that follow make it possible to position the event on the score, that is to say it gives the indications X min , Ymin, Xmax, Ymax-
- the second EM ranging from 2145 to 230, analyzed in the above manner is also not a synchronization event.
- the third EM defined by the third group of 8 values ranging from 1114 to 195 is a synchronization event since the division of the value 1 1 144 by 1000 gives 1.
- the division of 1 144, namely the rest of the division by 10000, by 1000 gives 1, which means that this synchronization event AS relates to the track 1.
- the remainder 144 indicates that it is, according to the MIDI codes, a beginning of note to be attributed to the MIDI channel 1.
- the fourth EM starting with the value 1 1 144 is an AS sync event for track 1. This is a start of a note assigned to MIDI channel 1.
- the MA memory of the sequence of actions is another essential and innovative feature of the invention.
- This memory is the heart of the invention because it contains, associated with each time step concerned, the list of expected actions from each controller and how each of these actions should be treated.
- the processing in question depends essentially on two factors, namely the number of the actuator having produced the action and the status of the action which could be an AS synchronization action or not.
- At each time index for which there exists a musical event EM there is in the memory MA for each actuator present in the system the instant of the next action of the type AS as well as the status of the expected action which can take three values: no action expected of this actuator at the moment considered; - AS type action expected;
- the time sequence generator GST1, GST2 associated with the track of which the actuator is part verifies if in the memory MA an action is provided and, if so , if this action is a simple action or an AS synchronizing action.
- the generator GST1, GST2 performs the following operations:
- the musical event is read in the memory MM of the musical events EM, played by the audio synthesis unit AU and displayed on the screen if necessary ;
- the memory MM of the events EM is interrogated. If nothing is stored in the memory MM, nothing is done. If musical events are stored, they are provided by the memory MM as a list of musical events EM. This list is filtered so that only some of the events that it contains can be used for audio and visual rendering, which offers a total flexibility of execution through multiple choices of adaptation of the system, in particular:
- each musical event EM contains a value called marker which indicates by which actuator it must be triggered. It is only played if its marker corresponds to the actuator that triggered the current process, otherwise it is not played.
- volume information for example the control 7 of the MIDI standard, or information of sound changes such as the program known as the "program change" of the MIDI standard.
- the selected events are sent, on the one hand, to the sound generator, and, on the other hand, to the display unit of the score on the screen.
- the memory MM contains at a given time index an audio sequence (WAV file, AIFF ).
- WAV file AIFF
- two cases are possible. Either the file is read as is, or it is read with a conventional time stretching / compression method adjusted to the speed Vl. The choice of one of the two options to be applied is integrated in the event in the memory MM.
- the purge unit PU of the track concerned is involved. Indeed, at the arrival of the new action of the user, which corresponds to an AS synchronization action in the memory MM, the sequence generator index which, at this moment of time, has not yet reached the index of the action AS in the memory "skipped" this index. In particular, if note stopping events are stored at some of the skipped intermediate time indexes, it must be ensured that the system stops these notes correctly. For this purpose all the notes generated on a track, which are not completed, are stored in a temporary memory, which is the purge memory PU, accompanied by the end index of the note considered.
- the purge memory is fully read and selects the current notes whose end is expected at one of the jumped indexes, and then sends the corresponding note stop commands to the audio synthesis unit AU.
- the explanation above describes the operation of the PU purge memory on a note stop, but applies equally to a pedal release event for example.
- each GST track time sequence generator maintains a PLMA pointer to the MA memory. This is necessary so that the user can progressively "unroll" the data triggered successively by the actuator considered.
- a hierarchical level is therefore assigned to each actuator, from the highest, for example the actuator 1, to the lowest.
- PLMA pointers of a lower priority are forced to the new value resulting from the processing of the synchronization action.
- any action of AS type on the highest actuator is required to the pointer of all other actuators. This characteristic is symbolized in Figure 1 by a dotted arrow from GST1 to GST2.
- Table 2 which follows gives, by way of example, the structure of the data in this memory.
- the first value indicates by a value of 0.1 or 2 the way in which the action for this index and this actuator must be treated, 0 meaning no action, 1 a trigger action but without synchronization, 2 an AS synchronization trigger action with update of the speed Vl;
- the second value of the torque is the temporal index of the next action expected on this actuator; Finally, three numerical values are shown above, respectively indicating the location of the EM event on the partition displayed on the screen in terms of page number, system number, measurement number.
- the last three values define the location on the partition.
- the first pair of values 1 2304 always relates to the track 1.
- the value 1 indicates that at the time step considered 1920 exists in track 1 of the musical data to be played, which are not synchronization events.
- the second value 2304 of the pair indicates the time index of the next EM event existing on the track in question, therefore the next EM assigned to the actuator A1.
- the second pair of values 2 21 12 still relates to the track 2 to which the actuator 2 belongs.
- the value 2 of the pair indicates that, when the user actuates an action on A2, corresponds to an event ME of synchronization and that it is necessary to resynchronize the course of this track at the reception of the action of the user.
- the system will thus calculate, in the manner described above, the speed Vl and generated a sequence of time indexes at this speed until the next EM synchronization event existing on this track, which is precisely the second value of the pair, c ie the value 21 12.
- the value 0 indicates that there is nothing to do on the track.
- the value 21 120 that follows indicates the next time index where there is a musical event EM to play on the track 3. If the user has only two actuators then this value is fixed and equal to the time index of the end of piece, that is the temporal index of the last event, usually stopping the last note.
- the system according to the invention furthermore comprises a filtering mechanism and a purge mechanism which enables the system to offer the user the flexibility that will appear when describing the general operation of the system and the description of certain specific examples. .
- the purpose of the filtering mechanism is to allow the user to configure the system according to his own wishes, on the one hand, and to take advantage of the flexibility offered, on the other hand.
- the filtering of a musical event EM takes place each time such an EM has to be played by the system, either because an actuator has triggered this EM, or because a running time sequence has provoked.
- the user can himself filter through a dedicated interface.
- the user can choose possibly different filtering for each track.
- the user may wish a single actuator A1 and then selects an operating mode such as "used only A1 actuator” or "only plays with the right hand”.
- Another choice may concern the management of the stopping of notes that the user decides to perform himself or entrust to the system.
- these choices could also be stored in the memory MM of the events EM and would then be detected during the reading of the EM event by a particular code, for example a negative digital header for the first of the 8 values of each EM event, and indicated "on the fly" a given filtering mode.
- a particular code for example a negative digital header for the first of the 8 values of each EM event, and indicated "on the fly" a given filtering mode.
- the user can vary the game he wishes during the game itself.
- the type of the event is extracted from the memory, generally from the first of the 8 values of a game.
- MM memory line and facing the current filter parameter for the track of the actuator concerned. For example, if the user has chosen to use two actuators A1 and A2, an event assigned to A2 will not be played when associated with track 1.
- the filtering could be done so that it is instead played by Track 1.
- the filtering can also be applied to note-off events of MIDI codes 128 to 143. When this code is met, the corresponding EM event will be played only if the user has given the system the stops. Otherwise it is ignored.
- certain EM events may have the purpose of changing the sound reproduction timbre used, in accordance with MIDI codes 192 to 207, called "program change" for, for example, switching from a piano to a harpsichord. The user can ask the system not to play EM events of this type "program change" when they are encountered and to ignore them. The stamp will not change.
- the purge mechanism is provided for the following situations. As explained above, after a user action on a given actuator, a time index sequence is generated for the purpose of making the EM events play autonomously. The speed at which these events are played is deduced from the user's speed Vl by extrapolation of his game speed between his two most recent actions on a given actuator. The system obviously can not provide for a significant change of speed on the part of the user. This is not a problem if the user slows down. If, on the other hand, it accelerates significantly, it is possible for the next action on its part to take place before the current sequence has come to an end.
- the purge mechanism is intended to avoid these situations. It allows to play certain events as a priority in case of significant acceleration.
- the purge mechanism essentially consists of a memory per track containing, at any time, the events likely to cause a problem, in particular the stopping of the note and the pedal, which have been initiated, that is to say say the beginnings of notes or pedal depression played.
- Each time a note is initiated or the pedal depressed the corresponding EM event is stored in the purge memory, with an index indicating the intended end of that note or the pedal release. If the index sequence normally arrives at the event EM containing the stopping of a note stored in the purge memory, then this EM is played, the note stopped and this note is deleted in the purge memory.
- FIG. 2 illustrates the sequence of the processes carried out in a track n of the system following the reception of an action triggered by the user, this action can be a simple action or a synchronization action. Then the operation will be explained in more detail with some examples.
- each track may be provided with a time slot function that is managed by the unit.
- the instant of appearance of this next synchronization action by the user is determined by calculating the current instantaneous speed Vl to the time index of this next synchronization action.
- An opening window whose duration can be fixed, but will be for example a percentage of the time interval between the current AS action and the next AS is placed around the calculated appearance time. If the window is activated, the next action received will only be taken into account if it takes place within the calculated window.
- This window makes it possible to eliminate unwanted actions of the user. In particular, it becomes possible for the inexperienced user to interpret a piece by rhythmically triggering actions for example at the desired speed and strength, which confers a level of expressiveness already noticeable. The execution would then be correct.
- a first step E1 of the method checks at a process step E2 if this action occurs at a time instant that is within the time window placed around the calculated appearance time of this action in the action memory MA. If at the time of the action of the user the window is not open, the system does nothing, as is symbolized by the box C1.
- step E3 by interrogating the action memory MA, if at this time index an action is provided in the memory and the status thereof. The absence of an action causes a value 0 that does not result in any response. If a synchronizing action type action is provided, it is an action of value 2 and if the action is not synchronizing, it is assigned a value of 1.
- the time sequence generator of the track of the actuator GST causes the reading at the index corresponding time of the musical event EM in the musical memory
- the time sequence generator GST performs the following operations in the box C4 in the indicated order, namely of the calculation of the instantaneous speed Vl of execution by the user, of the calculation of the parameters of the sequence time, the update of the PLMA pointer of the track of the actuator actuated by the user, the forcing of the PLMA pointers of lower priority, the activation of the purge memory PU in the case of the constation of a increasing the speed Vl and thus accelerating, updating the time window and generating the GST sequence of the time indexes until the next AS action.
- FIG. 3 is an extract from the display screen of the device, showing the possibility of processing polymelodies, here on the chorale BWV 347 from JS BACH. Notes surrounded by a solid line are to be heard simultaneously and have start and end time indexes all different from each other. The system allows you to interpret this musical passage in many ways. Three possibilities are described below.
- the first is a method of intermediate difficulty. It is a first approach easy enough but expressively already rich. It consists of playing from an A1 actuator consecutively the two notes surrounded by the frame in solid lines and from the actuator A2 the two notes surrounded by dashed lines and to let the system apply at the exact times according to the speed Vl desirable stopping points.
- notes N1 EM event triggering notes surrounded by a solid line frame, hereafter called notes N1 are encoded as AS1, but the stops corresponding to these notes are not associated with any action in the memory MA .
- the system then supports them through the sequences generated by GST1.
- the triggering of the notes surrounded by dashed lines, hereafter called notes N2 is in turn encoded in AS.
- the system supports the stopping of these notes, however giving priority to the execution speed determined from the actuator A1. If the person, to train for example, wishes to play only notes N2, the system will exploit the sequences generated by GST2 to play events not associated with an action, for example the stopping of notes.
- a second possibility of easier interpretation is to play only the N1 notes, the system supporting not only the notes N2 but also all the stops of notes required.
- the triggering of the notes N2 is no longer associated with an actuator, but this trigger is coded so as not to be filtered during the play of the GST1 sequences.
- the only triggering actions of the notes N1 will then be enough to correctly generate the triggering of the notes N2 and the end of all the notes.
- a third possibility is the richest in terms of expressiveness but requires a greater ability of the user. Nevertheless, this approach is much more affordable than the traditional game for such a passage, while offering rigorously the same possibilities in term of expressive richness.
- the actuator A1 for example an area of an electronic keyboard, will be used to trigger the notes N2. But A1 will also be used to control the stopping of these notes.
- a second actuator A2, for example another zone of a keyboard, will be used for the control of triggering and stopping of the notes N2.
- Such a possibility requires a specialized unit within the system. The operation of this unit is described in the following paragraph referring to Figure 5.
- the two notes framed by a continuous ellipse are for example synchronization events related to the actuator A1. They will be coded for example by the value 1 1 144 at the top of the list of 8 values of the corresponding EM, the first 1 indicating the synchronization, the second 1 the actuator 1, and the value 144 a beginning of note on the MIDI channel 1.
- the two notes surrounded by the dotted ellipse are for example assigned to the A2 actuator, but must not be used for synchronization. They will be for example coded by the value 2145, meaning a lack of synchronization, actuator 2, MIDI channel 2.
- the events 11144 are played when there is action on A1. Moreover the tempo is calculated from the time elapsed between the last two synchronization actions AS received. The EMs 1 144 are played and GST1 sends a sequence of time indexes starting at the current time index and ending just before the next expected timing action. Thus, the EM 2145 will be played, namely immediately the notes surrounded by a dotted ellipse and, at the desired moment, the note encircled by a dotted rectangle. Then the system waits for a new action on A1.
- the purge mechanism removes that note that will not be played because the user has accelerated a lot. If the user uses two actuators A1, A2, for example right hand and left hand, the fact of receiving the action A1 corresponding to the notes encircled by the continuous ellipse triggers the game of these notes, but not the game of notes surrounded by the dotted ellipse. These notes will be played by the next action received on A2, unless the next action A1 for the note framed by the continuous rectangle intervenes before. In this case, they will be omitted.
- a second example of use of the system according to the invention concerns the management of note off and polymelodies.
- the left column contains the times indicated in the number of time resolution steps at which the events take place.
- the temporal resolution is 384 steps per quarter.
- EM musical events are groups of 8 consecutive values, in which xO, yO, x1, y1 denote the locations on the score.
- the first value of each line indicates how the event is handled.
- the value of 1114 in the first line indicates a time synchronization event, expected from the actuator A1, the remainder 144 a start of note on the MIDI channel 1.
- the first value of 1128 of the second line will be not taken into account for the temporal synchronization since the division of 1 128 by 10000 gives 0, but it concerns the track 1 related to A1, since 1 128/1000 gives 1.
- the MIDI compliant code indicates a note stop on MIDI channel 1. It should be noted that 129 would indicate a stop on MIDI channel 2 and so on up to 143 which would be a stop on channel 16. Thus at the instant 384 of the second line, the first EM designates the stopping of the pitch note 72 which is the second item in the list of 8 values. It should be emphasized that in a list of EM events, the MSs concerning a note stop must imperatively appear before the note triggering MSs. Otherwise, a repeated note that is to say stopped and re-triggered will not be played correctly.
- the sequence of the operations carried out on receipt of the action A1 triggering the fourth note Fa at time 1 152 is described below: the first musical event EM is played, it is the stopping of the note 76 (Mi). The second EM is played, it is triggering the note 77 (Fa). The event EM corresponding to this last note trigger is stored in the purge mechanism PU1 of the track 1.
- the time resolution step PRT [t (1 152) -t (768)] / (1 152- 768), where t (768) represents the actual time at which the event of the time index 768 was played, with a precision of the order of a millisecond (ms).
- the system also makes it possible to play continuous data which has the particularity that they take place at closely spaced time intervals, for example at each successive step of time.
- This may be for example the volume control defined in the MIDI standard by a status of between 176 and 191 for respective channels 1 to 16.
- the memory MM of the events EM will contain events in the identical form of 8 values.
- the first value could for example be 11176, that is, defining a synchronization event on track 1 triggering a MIDI control. If the following two values are for example 7 and 100, according to the MIDI standard, it would be a volume control and the volume is set to 100.
- a first value of 1,176 or 3176 would relate to a non-synchronizing event concerning track 1 and track 3, respectively.
- the sequence of time indexes triggered by the GST of a track will successively address the consecutive indexes at which the so-called continuous data are stored, and these data will therefore be played. at the current rate derived from the user's game.
- the system according to the invention could include other characteristics in order to better take into account certain specificities of the musical game. This is the appropriate management of note-offs or note offs and interpretation events that induce “locally”, that is to say only for the event considered and possibly its immediate neighbors, variations with respect to in the normal mode of processing events as described so far.
- the arpeggio leads to not play the notes concerned as represented on the score, that is to say simultaneously, but in sequence. It is important to be able to control the timing of the sequence.
- the system performs the following operations: it reads the number of notes concerned, plays the first note encountered and only reads the following when a new one appears. primary action. It calculates the new temporal parameter from the primary action that played the first note in the arpeggio.
- An action resulting in the play of an appoggiature is not subject to the time window.
- Two primary actions are locally allowed very close in time and without taking into account the current speed Vl.
- EM events whose type encodes a mordant or a etto are followed by a series of numerical values indicating the offset offset of the note relative to the main note. Calculated scores from these offsets are then played in a mode identical to the arpeggio mode.
- the accent mode indicates to modify the play force of the actuator concerned by the attached value, generally an additive offset.
- the accent information is encoded within the velocity stored in the corresponding EM event.
- An EM event whose type encodes a trill indicates the note pitch modulating the trill note, most often the main note plus one half-one or a whole beat.
- Several numeric values indicate a trill across multiple notes.
- the calculation of the current speed Vl and the time window are disabled during the duration of the trill that is fit for libitums. As long as the executing user alternately plays the same two commands on the actuator that causes the trill, it is extended. As soon as the performer activates a new command, for example pushes a third key on the keyboard, the trill output note is played and the system resumes normal operation.
- the system according to the invention also provides an edition of the hierarchy of events.
- EM events are initially associated to an actuator from MIDI channels generally assigned to the game, for example right (channel 1) and left (channel 2) in most music data files. MIDDAY.
- the system therefore automatically initializes the assignment of events from these channels.
- the editing functions of these assignments are global, for example to entrust the system with the control of all note stop events with the left hand. , or local by means of an on-screen edition.
- Each event is displayed on the screen with a color code corresponding to the actuator to which it is assigned, as shown in Figure 2 where the note frames are not made by color but by continuous or interrupted lines.
- the user selects one or more events and modifies if necessary the actuator number assigned to him. This will result in a modification of the type of the event EM assigned to it in the memory MM.
- the invention also provides the possibility of a floating separation point keyboard.
- a floating separation point keyboard In a preferred mode of use of the system, uses a separate keyboard in two play zones around a fixed point. Any note pressed to the right of the separation point will for example be an A1 action and any note pressed to the left of the same point will be an A2 action.
- the fixity of the separation point can be the cause of game error and also be a brake on free expression.
- the invention provides several solutions, including the dynamic assignment of the actions according to the time course. In this case, the system knows, considering the contents of the memory MA for the time index of the next action, which events are preferentially expected at a given moment.
- the system decides whether it is an A1 or A2 action based on what is likely at the moment. If both types of action were expected at this time, the system would choose to assign the actions A1 and A2 according to the respective position of the received identifiers, that is to say the note number of the keyboard.
- Another solution is the use of an additional sensor such as an accelerometer placed on the moving parts of the performers or, for example on the left and right handles. The system analyzes the simultaneity of signals received from game actuators and sensors that will display a peak signal when a key is pressed. The temporal concordance makes it possible to determine the precise manner which is the source of action at any moment. Obviously such a system is essentially useful in addition to traditional MIDI actuators such as keyboards.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
The invention relates to a system for the computer-assisted interpretation of pre-recorded music. The system essentially includes at least one musical actuator (A1, A2) actuated by a user-performer, memory means for storing musical information (MM) concerning the score of a piece of music to be played by the user, and means for transmitting the musical information to an electronic/computer device (A4) adapted for generating audio signals from the received musical information. The system is characterised in that it further comprises a memory (MM) for musical data defining the totality of the musical events (EM) that form the piece of music to be played. The invention can be used for playing pre-recorded music.
Description
SYSTEME D'INTERPRETATION DE MUSIQUE PRE-ENREGISTREE ASSISTEE PAR ORDINATEUR COMPUTER-ASSISTED PRE-RECORDED MUSIC INTERPRETATION SYSTEM
L'invention concerne un système d'interprétation de musique préenregistré assisté par ordinateur, du type comprenant essentiellement au moins un actionneur musical actionnable par un utilisateur interprète, des moyens de mémoire de stockage d'informations musicales relatives à la partition d'un morceau de musique à interpréter par l'utilisateur et des moyens de transmission des informations musicales à un dispositif électronique/informatique adapté pour produire des signaux audio à partir des informations musicales reçues.The invention relates to a pre-recorded computer-assisted music interpretation system of the type comprising essentially at least one musical actuator operable by a user interpreter, memory means for storing musical information relating to the partition of a piece of music. music to be interpreted by the user and means for transmitting the musical information to a suitable electronic / computer device for producing audio signals from the received musical information.
On sait que l'interprétation des morceaux de musique, par exemple du répertoire classique, exige une maîtrise que ne possède pas la majorité des personnes que aimeraient jouer ces morceaux. On connaît déjà des systèmes d'interprétation de musique, assistés par l'ordinateur du type énoncé plus haut, qui permettent à ces personnes interprètes insuffisamment qualifiées, d'aborder l'interprétation de morceaux de musique qui exige un haut niveau technique. Mais, les systèmes connus présentent l'inconvénient majeur de limiter les possibilités de personnaliser la musique lors de l'exécution d'un morceau de musique. On constate notamment que l'information musicale contrôlée par l'exécutant grâce à un actionneur est une information limitée de deux façons. Seul le déclenchement de notes musicales est prise en compte par le système d'assistance à l'interprétation, et de façon univoque pour chaque actionneur concerné. En fait, seule une note ou un groupe de notes peut être jouée à un instant donné. Cela n'autorise pas au sein du jeu sur l'actionneur donné, par exemple la zone de clavier associée à la mélodie, la tenue de notes pendant que d'autres notes sont jouées, ce qui est pourtant une situation élémentaire. L'arrêt des notes par ailleurs ne bénéficie pas du contrôle nécessaire pour être effectué de façon parfaitement fidèle à la partition musicale. Par exemple, l'arrêt des notes est provoqué par un gesteWe know that the interpretation of pieces of music, for example the classical repertoire, requires a mastery that does not have the majority of the people that would like to play these pieces. Computer-assisted music interpretation systems of the type mentioned above are already known, which enable these poorly qualified performers to approach the performance of musical pieces that require a high technical level. But the known systems have the major disadvantage of limiting the possibilities of customizing the music during the performance of a piece of music. It is found in particular that the musical information controlled by the performer through an actuator is limited information in two ways. Only the triggering of musical notes is taken into account by the interpretation assistance system, and unequivocally for each actuator concerned. In fact, only a note or group of notes can be played at a given moment. This does not allow within the game on the given actuator, for example the keyboard area associated with the melody, the holding of notes while other notes are played, which is nevertheless a basic situation. Stopping the notes also does not have the necessary control to be performed perfectly faithful to the musical score. For example, stopping of notes is caused by a gesture
« stop » de l'exécutant. D'une part, cela n'autorise pas le jeu de notes imbriquées multiples telles que mentionnées ci-dessus, d'autre part, cela ne permet pas de confier le contrôle de l'arrêt de notes au système plutôt qu'à l'utilisateur. Par delà le déclenchement et l'arrêt des notes en elles-mêmes, l'interprétation d'un morceau requiert d'autres types d'information afin de magnifier l'interprétation. On pourrait citer à ce titre l'utilisation de la pédale de tenue sur les claviers, mais également des contrôles continus, par exemple la
variation de volume d'un instrument à vent, l'apparition d'un vibrato au cours de la vie de la note jouée, l'évolution de timbre d'un instrument de la famille des cuivre depuis un son feutré vers un son brillant et riche. La prise en compte de ces évolutions sonores requiert un contrôle temporel continu à tout instant de tous ces paramètres, réactualisâmes à tout instant par l'exécutant en fonction de l'interprétation qu'il souhaite. Or, les systèmes connus ne sont pas capables de satisfaire à ces exigences."Stop" of the performer. On the one hand, this does not allow the set of multiple nested notes as mentioned above, on the other hand, it does not allow to entrust the control of the stopping of notes to the system rather than the user. Beyond the triggering and stopping of the notes themselves, the interpretation of a piece requires other types of information in order to magnify the interpretation. One could cite in this respect the use of the pedal of holding on the keyboards, but also of the continuous controls, for example the volume variation of a wind instrument, the appearance of a vibrato during the life of the note played, the timbre evolution of a copper family instrument from a felted sound to a brilliant sound and rich. The taking into account of these evolutions sound requires a continuous temporal control at all times of all these parameters, updated at all times by the performer according to the interpretation which it wishes. However, known systems are not able to meet these requirements.
La présente invention a pour but de proposer un système d'interprétation de musique préenregistré assisté par ordinateur, qui pallie les inconvénients susmentionnés des systèmes de l'état de la technique.It is an object of the present invention to provide a computer-assisted pre-recorded music interpretation system which overcomes the aforementioned drawbacks of prior art systems.
Pour atteindre ce but, le système selon l'invention est caractérisé en ce qu'il comprend une mémoire MM des données musicales, qui définissent la totalité des événements musicaux EM constituant le morceau de musique à interpréter. Selon une caractéristique de l'invention, le système est caractérisé en ce qu'il comprend une mémoire MA de la séquence des actions nécessaires pour la reproduction des événements musicaux EM stockés.To achieve this goal, the system according to the invention is characterized in that it comprises a memory MM musical data, which define the totality of musical events EM constituting the piece of music to be interpreted. According to one characteristic of the invention, the system is characterized in that it comprises a memory MA of the sequence of actions necessary for the reproduction of stored EM musical events.
Selon une autre caractéristique de l'invention, le système est caractérisé en ce que la mémoire MM est structurée de façon qu'à chaque événement musical EM à reproduire est associé un index temporels désignant le nombre de pas de résolution existant entre le début du morceau à reproduire et cet événement, à un index temporels pouvant être associés plusieurs événements musicaux EM.According to another characteristic of the invention, the system is characterized in that the memory MM is structured so that for each musical event EM to be reproduced is associated a temporal index designating the number of steps of resolution existing between the beginning of the piece to reproduce and this event, at a time index that can be associated several musical events EM.
Selon encore une autre caractéristiques de l'invention, le système est caractérisé en ce que chaque événement musical est constitué par une série d'un nombre de valeurs numériques prédéterminées, relatives notamment l'affectation de l'événement EM à l'actionneur correspondant, à l'exécution de l'événement.According to yet another characteristic of the invention, the system is characterized in that each musical event is constituted by a series of a number of predetermined numerical values, in particular relating to the assignment of the event EM to the corresponding actuator, at the execution of the event.
Selon une caractéristique de l'invention, le système est caractérisé en ce que la mémoire MA contient, associée à des index temporels pour lesquels existe un événement musical EM, la liste des actions attendues de l'actionneur correspondant ainsi que la façon dont doit être traitée chacune de ces actions.According to one characteristic of the invention, the system is characterized in that the memory MA contains, associated with time indexes for which there exists a musical event EM, the list of the expected actions of the corresponding actuator as well as the manner in which it must be treated each of these actions.
Selon une autre caractéristique de l'invention, le système est caractérisé en ce que la mémoire MA contient le numéro de l'actionneur ayant produit l'action et le statut de l'action qui pourrait être une action de synchronisation AS ou non.
Selon encore une autre caractéristique de l'invention, le système est caractérisé en ce que la mémoire MA comporte, associés à chaque index temporels pour lesquels existe un événement musical, pour chaque actionneur présent dans le système, l'instant de la prochaine action de synchronisation ainsi que l'information sur le statut de l'action attendue qui peut prendre trois valeurs respectivement représentatives de l'absence d'une action attendue, d'une action de synchronisation AS et d'une action non synchronisante.According to another characteristic of the invention, the system is characterized in that the memory MA contains the number of the actuator having produced the action and the status of the action which could be an AS synchronization action or not. According to yet another characteristic of the invention, the system is characterized in that the memory MA comprises, associated with each time index for which there is a musical event, for each actuator present in the system, the instant of the next action of synchronization and information on the status of the expected action that can take three values respectively representative of the absence of an expected action, an AS synchronization action and a non-synchronizing action.
Selon une caractéristique de l'invention, le système est caractérisé en ce qu'il comprend, dans chaque piste dont fait partie un actionneur un générateur de séquence temporelle GST, qui est adapté pour vérifier si dans la mémoire MA une action est prévue et, dans l'affirmative, si cette action est une action simple ou une action synchronisante AS.According to one characteristic of the invention, the system is characterized in that it comprises, in each track of which an actuator is part, a time sequence generator GST, which is adapted to check whether in the memory MA an action is provided and, if so, whether this action is a simple action or an AS synchronizing action.
Selon une autre caractéristique de l'invention, le système est caractérisé en ce que le générateur de séquence temporelle GST est adapté pour ignorer une action en provenance de l'actionneur si aucune action n'était attendue à cet instant selon la mémoire MA, ou, si une action non synchronisante est attendue, pour provoquer la lecture de l'événement musical dans la mémoire MM, et pour faire jouer l'événement par l'unité de synthèse audio AU ou, dans le cas où à cet instant une action de type de synchronisation AS est présente dans la mémoire MM pour déterminer par calcul la vitesse instantanée d'exécution du morceau par la personne interprète et le nombre de pas de résolution temporelle jusqu'à la prochaine action de synchronisation attendue selon la mémoire MA et la génération de la séquence rythmique d'index temporels à une cadence correspondant à la vitesse calculée.According to another characteristic of the invention, the system is characterized in that the time sequence generator GST is adapted to ignore an action coming from the actuator if no action was expected at this time according to the memory MA, or , if a non-synchronizing action is expected, to cause the playing of the musical event in the memory MM, and to play the event by the audio synthesis unit AU or, in the case where at this moment an action of synchronization type AS is present in the memory MM to determine by calculation the instantaneous speed of execution of the piece by the interpreter and the number of time resolution steps until the next synchronization action expected according to the memory MA and the generation the rhythmic sequence of temporal indexes at a rate corresponding to the calculated speed.
Selon encore une autre caractéristique de l'invention, le système est caractérisé en ce qu'il comprend un mécanisme de purge PU permettant à l'utilisateur de jouer certains événements musicaux EM de façon prioritaire dans le cas d'accélération importante de son jeu.According to yet another characteristic of the invention, the system is characterized in that it comprises a PU purge mechanism allowing the user to play certain musical events EM as a priority in the case of significant acceleration of his game.
Selon une caractéristique de l'invention, le système est caractérisé en ce que le mécanisme de purge est constitué d'une mémoire par piste contenant, à tout instant, les événements musicaux EM tels que des débuts de note ou l'enfoncement de pédale et, pour chaque note initiée ou pédale enfoncée l'index indiquant la fin prévue de cette note ou le relâchement de pédale.
Selon une autre caractéristique de l'invention, le système est caractérisé en ce que lorsque la séquence d'index temporels parvient normalement à l'événement EM contenant l'arrêt d'une note stockée dans la mémoire de purge, cet événement EM est joué et la note arrêtée et supprimée dans la mémoire.According to one characteristic of the invention, the system is characterized in that the purge mechanism consists of a memory per track containing, at any moment, EM music events such as note starts or pedal depression and , for each note initiated or pedal pressed the index indicating the end of this note or the release of pedal. According to another characteristic of the invention, the system is characterized in that when the temporal index sequence normally arrives at the event EM containing the stopping of a note stored in the purge memory, this event EM is played and the note stopped and deleted in the memory.
Selon encore une autre caractéristique de l'invention, le système est caractérisé en ce que le mécanisme de purge est adapté pour être entièrement parcouru à la réception de toute nouvelle action et lorsqu'il y a des événements EM tels qu'une note ou une pédale dont l'index temporel est inférieur à celui de l'action en cours de traitement, la note est arrêtée ou la pédale relâchée et retirée de la mémoire de purge.According to yet another characteristic of the invention, the system is characterized in that the purge mechanism is adapted to be fully traversed upon receipt of any new action and when there are EM events such as a note or a pedal whose time index is lower than that of the action being processed, the note is stopped or the pedal is released and removed from the purge memory.
Selon une caractéristique de l'invention, le système est caractérisé en ce qu'il comporte un mécanisme de filtrage d'un événement musical EM lorsqu'un tel événement doit être joué par le système soit parce qu'un actionneur a déclenché cet événement soit parce qu'une séquence temporelle en cours d'exécution l'a provoqué.According to one characteristic of the invention, the system is characterized in that it comprises a filter mechanism of a musical event EM when such an event must be played by the system either because an actuator has triggered this event or because a running time sequence caused it.
Selon une autre caractéristique de l'invention, le système est caractérisé en ce que le mécanisme de filtrage comporte une interface dédiée permettant à l'utilisateur d'instaurer un filtrage lui-même. L'invention sera mieux comprise, et d'autres buts, caractéristiques, détails et avantages de celle-ci apparaîtront plus clairement au cours de la description explicative qui va suivre faite en référence aux dessins schématiques annexés donnés uniquement à titre d'exemple illustrant un mode de réalisation de l'invention et dans lesquels : - la figure 1 représente, schématiquement, le système selon l'invention ;According to another characteristic of the invention, the system is characterized in that the filtering mechanism comprises a dedicated interface enabling the user to set up a filtering itself. The invention will be better understood, and other objects, features, details and advantages thereof will appear more clearly in the following explanatory description made with reference to the accompanying schematic drawings given solely by way of example illustrating a embodiment of the invention and in which: - Figure 1 shows schematically the system according to the invention;
- la figure 2 illustre, sous forme d'un organigramme, le fonctionnement du système selon l'invention ;FIG. 2 illustrates, in the form of a flowchart, the operation of the system according to the invention;
- la figure 3 illustre une possibilité selon l'invention de traiter des polymélodies sur le choral BWV347 de JS BACH ;FIG. 3 illustrates a possibility according to the invention of treating polymelodies on the BWV347 chorale of JS BACH;
- la figure 4 illustre un exemple de traitement de polymélodie selon l'invention ;FIG. 4 illustrates an example of a polymelody treatment according to the invention;
- la figure 5 illustre une partie d'une partition pour expliquer le fonctionnement de la mémoire d'action MA selon l'invention ; et - la figure 6 illustre le fonctionnement du mécanisme d'arrêt automatique de notes selon l'invention.
Comme le montre la figure 1 , un système d'interprétation de musique préenregistré assisté par ordinateur, selon l'invention, comprend au moins une piste, mais en général, une pluralité de pistes P dont deux P1 , P2 sont représentées, qui comportent chacune un actionneur musical A1 , A2, une mémoire MA de la séquence des actions qu'un interprète utilisateur peut effectuer, un pointeur temporel PT (non représenté) qui détermine, en nombre de pas de résolution temporelle, où on est dans le morceau joué, un générateur de séquences temporelles par piste GST1 , GST2, une unité de purge des événements périmés, notés PU1 , PU2, une mémoire des données musicales MM, un sélecteur d'événements S1 , S2, un gestionnaire d'arrêt de notes par piste NOF1 , NOF2, une unité de synthèse et production sonore AU et une unité de calcul et d'affichage de partitions communes UCA. Les mémoires MA et MM, l'unité de synthèse et production sonore AU et l'unité de calcul et d'affichage UCA sont communes aux différentes pistes. Le système comporte en outre un haut-parleur HP et un écran de visualisation EV. Les lignes fléchées symbolisent les actions des différents composants du système.FIG. 5 illustrates part of a partition to explain the operation of the action memory MA according to the invention; and FIG. 6 illustrates the operation of the automatic note stopping mechanism according to the invention. As shown in FIG. 1, a pre-recorded computer-assisted music interpretation system according to the invention comprises at least one track, but in general a plurality of tracks P, two of which P1, P2 are represented, each of which comprises a musical actuator A1, A2, a memory MA of the sequence of actions that a user interpreter can perform, a temporal pointer PT (not shown) which determines, in number of steps of time resolution, where one is in the piece played, a time sequence generator per track GST1, GST2, a purge unit of expired events, denoted PU1, PU2, a memory of the musical data MM, an event selector S1, S2, a note stopping manager per track NOF1 , NOF2, a synthesis unit and AU sound production and a unit for calculating and displaying UCA common partitions. The memories MA and MM, the unit of synthesis and sound production AU and the unit of calculation and display UCA are common to the different tracks. The system further includes an HP speaker and an EV display screen. The arrow lines symbolize the actions of the different components of the system.
Les actionneurs musicaux sont des instruments du type connus sous la dénomination MIDI (Musical Interface Digital Instruments), c'est-à-dire des instruments pourvus d'une interface numérique musicale. L'invention concerne les actionneurs musicaux MIDI tels que des claviers, systèmes de capture des mouvements à base de vidéo ou de capteurs produisant des informations soit discrètes telles que des notes présentes, absentes, la hauteur et la vélocité des notes, des pédales actionnées ou non, des basculements entre états logiques, soit continues tels que des contrôles MIDI comme le volume, la pression, le souffle ou la position/orientation d'un mouvement, soit les deux types d'information.The musical actuators are instruments of the type known under the name MIDI (Musical Interface Digital Instruments), that is to say instruments equipped with a digital musical interface. MIDI musical actuators such as keyboards, video-based motion capture systems or sensors that produce discrete information such as present, absent notes, pitch and velocity of notes, actuated pedals, or no, switching between logical states, either continuous such as MIDI controls such as volume, pressure, breath or position / orientation of a movement, or both types of information.
Les systèmes selon l'invention sont fondés sur l'utilisation du protocole de communication et de commande MIDI et de la norme MIDI permettant l'échange de données entre instruments de musique électroniques dont un ou plusieurs peuvent être des ordinateurs.The systems according to the invention are based on the use of the MIDI communication and control protocol and the MIDI standard for exchanging data between electronic musical instruments, one or more of which may be computers.
La norme MIDI est une norme international permettant à des instruments électroniques de fabricants différents de communiquer entre eux. Cette norme repose en résumé sur des séquences de 3 valeurs, à savoir : - un code de statut, compris entre 128 et 255. La division de ce code par 16 indique le type d'événement musical, par exemple le chiffre 9 indique un déclenchement de note, 8 indique un arrêt de note, 11 un contrôle continu.
Le reste de cette même division indique un canal MIDI entre 1 et 16, permettant à un appareil configuré pour recevoir un canal donné, de ne retenir que les événements qui le concernent ;MIDI is an international standard that allows electronic instruments from different manufacturers to communicate with each other. This standard is based in summary on sequences of 3 values, namely: - a status code, between 128 and 255. The division of this code by 16 indicates the type of musical event, for example the number 9 indicates a trigger of note, 8 indicates a note stop, 11 a continuous check. The rest of this same division indicates a MIDI channel between 1 and 16, allowing a device configured to receive a given channel, to retain only the events that concern it;
- une valeur comprise entre 0 et 127, précisant les données liées au statut ci-dessus, par exemple pour un déclenchement de note la hauteur de la note, le code 60 étant attribué au Do central des claviers à 88 touches, ou encore pour un contrôle continu le type de contrôleur, par exemple 7 pour le volume, et 2 pour le contrôle dit de souffle ;a value between 0 and 127, specifying the data related to the above status, for example for a note triggering the pitch of the note, the code 60 being assigned to the central C key 88 keyboards, or for a continuous control the type of controller, for example 7 for the volume, and 2 for the so-called breath control;
- une valeur comprise entre 0 et 127, par exemple la vélocité d'enfoncement de la touche dans le cas d'un déclenchement de note, qui va déterminer à quelle force va être jouée la note.a value between 0 and 127, for example the velocity of depression of the key in the case of a note trigger, which will determine at which strength the note will be played.
La norme MIDI est complétée par une norme appelée MIDIFILE ou fichier MIDI, définissant un format d'enregistrement d'événements MIDI. En particulier, cette norme prévoit la notion de piste. La notion de pistes MIDIFILE vise à faciliter l'organisation des données par l'utilisateur. Des pistes différentes sont stockées successivement dans un fichier MIDI, ne permettant pas le fonctionnement décrit ci-dessous.The MIDI standard is complemented by a standard called MIDIFILE or MIDI file, defining a MIDI event recording format. In particular, this standard provides the notion of a runway. The notion of MIDIFILE tracks aims to facilitate the organization of data by the user. Different tracks are stored successively in a MIDI file, not allowing the operation described below.
On décrira ci-après les composants énoncés plus haut du système selon l'invention.The components listed above of the system according to the invention will be described below.
Mémoire de données musicales MMMM Music Data Memory
Un composant fondamental de ce système est la mémoire des données musicales MM partagées par toutes les pistes. Ce mémoire contient la totalité des événements musicaux EM constituant le morceau à interpréter.A fundamental component of this system is the memory of the MM musical data shared by all tracks. This memory contains all the musical events EM constituting the piece to be interpreted.
Un événement EM peut être n'importe quel événement de la partition de ce morceau, issue de la norme MIDI, notamment des notes de la partition et un événement spécifique du système relatif à la structure du morceau, tels que par exemple un début de mesure ou une fin de répétition, ou un événement d'interprétation tel qu'une note accentuée, appoggiature, arpège ou trille.An event EM can be any event of the partition of this piece, resulting from the MIDI standard, notably notes of the score and a specific event of the system relating to the structure of the piece, such as for example a beginning of measurement or a repetition end, or an interpretation event such as an accented note, appoggiature, arpeggio or trill.
Les événements EM sont affectés à un actionneur A1 , A2 dont disposent l'utilisateur. Le numéro d'actionneur correspondant est encodé et fait partie des données désignant le type de l'événement et est modifiable. Cela signifie que ces événements seront traités et joués par la piste correspondant à cet actionneur. Il existe trois types d'association d'un événement à un actionneur :
- un événement EM ne sera déclenché qu'à réception en temps voulu d'un actionnement de l'actionneur concerné, effectué par l'interprète utilisateur de l'instrument ;EM events are assigned to an A1, A2 actuator available to the user. The corresponding actuator number is encoded and is part of the data designating the type of the event and is modifiable. This means that these events will be processed and played by the track corresponding to this actuator. There are three types of association of an event to an actuator: - An EM event will not be triggered until timely receipt of an actuation of the actuator concerned, performed by the user interpreter of the instrument;
- un événement EM sera déclenché comme ci-dessus, mais cet EM est, de plus, marqué comme étant associé à une action dite de synchronisation AS. Un événement de ce type est par exemple une note de la partition qui est observée par ce qu'elle sert de référence temporelle. La séquence des événements AS permet d'estimer la vitesse de jeux de l'utilisateur. L'intervalle de temps entre deux actions AS consécutives reçues d'un actionneur donné est utilisée pour le calcul de la vitesse d'exécution des morceaux par l'utilisateur ;an EM event will be triggered as above, but this EM is, moreover, marked as being associated with an action called synchronization AS. An event of this type is for example a score of the score which is observed by what it serves as a time reference. The sequence of AS events makes it possible to estimate the game speed of the user. The time interval between two consecutive AS actions received from a given actuator is used for calculating the execution speed of the pieces by the user;
- un événement EM sera joué de façon automatique et en temps voulu par la piste concernée sans qu'une action de l'utilisateur ne soit requise.- an EM event will be played automatically and in a timely manner by the affected track without the need for user action.
Il est à noter qu'il est possible d'affecter un événement EM « blanc » à une action. Cet EM est en tous points identiques aux autres, la seule différence étant qu'il ne se déclenche aucune action audible. Il peut être utilisé par contre en temps qu'associé à une AS. Cette possibilité est surtout utile pour les non musiciens n'ayant pas encore acquis la maîtrise du rythme exact d'un morceau. Lors de la réception par une des pistes d'une action de synchronisation AS, le générateur de séquence temporel de cette piste GST1 , GST2 calcule la vitesse instantanée actuelle d'exécution, puis génère une séquence d'index à la vitesse appropriée. Cette séquence est utilisable en entrée de la mémoire MM des événements EM qui sont alors joués comme cela sera décrite plus loin plus en détail. La séquence s'arrête de deux façons possibles :It should be noted that it is possible to assign a "white" EM event to an action. This EM is in all respects identical to the others, the only difference being that it does not trigger any audible action. It can be used by cons as associated with an AS. This possibility is especially useful for non-musicians who have not yet mastered the exact rhythm of a piece. Upon receiving by one of the tracks of an AS timing action, the time sequence generator of this track GST1, GST2 calculates the current instantaneous execution speed, and then generates an index sequence at the appropriate speed. This sequence can be used as an input of the memory MM of the events EM which are then played as will be described later in more detail. The sequence stops in two possible ways:
- soit dans le cas d'un ralentissement du jeu de l'utilisateur interprète, parce que la séquence est parvenue à un nouvel événement de type AS pour lesquelles aucune action n'a été reçue. Le système est alors en attente ; - soit, dans le cas d'une accélération du jeu de l'utilisateur, parce qu'une action AS est reçue avant qu'elle ne parvienne à terme. La séquence est alors interrompue et les événements correspondants à l'intervalle de temps supprimé sont traités.or in the case of a slowdown of the game of the interpreting user, because the sequence has reached a new event of type AS for which no action has been received. The system is then waiting; or, in the case of an acceleration of the game of the user, because an AS action is received before it reaches its term. The sequence is then interrupted and the events corresponding to the deleted time interval are processed.
Un exemple de contenu de la mémoire MM est donné au tableau 1 qui suit et montre le format des données dans cette mémoire.
An example of the content of the memory MM is given in Table 1 which follows and shows the format of the data in this memory.
Tableau 1Table 1
On constate que la structure des données est organisée en un tableau de lignes, chaque ligne étant accessible à partir de son index temporel indiqué dans la colonne de gauche. L'index temporel d'un événement désigne le nombre de pas de résolution existant entre le début du morceau et cet événement. En effet, le temps est mesuré par le système par le nombre de pas de résolution temporelle écoulés depuis le début du morceau. Par exemple, les données musicales sont souvent codées temporellement avec une résolution temporelle de 384 pas par noire. Dans ce cas, le pas vaudra 1/384θmθ de seconde si le tempo est de 60 noires par seconde. Si le pointeur temporel PT vaut 1536, 4 secondes sont écoulées. II y a donc une ligne dans le tableau pour chaque index temporel où existe un événement musical pour le morceau considéré. Chaque ligne contient un ou plusieurs événements musicaux EM. Chaque événement musical est lui-même constitué d'une série de 8 valeurs numériques, à savoir :It can be seen that the data structure is organized into an array of lines, each line being accessible from its time index indicated in the left column. The time index of an event is the number of steps of resolution between the beginning of the song and this event. Indeed, the time is measured by the system by the number of time resolution steps elapsed since the beginning of the piece. For example, music data is often time-coded with a temporal resolution of 384 steps per quarter note. In this case, the step will be worth 1/384 θmθ of a second if the tempo is 60 black per second. If the time pointer PT is 1536, 4 seconds have elapsed. There is therefore a row in the table for each time index where there is a musical event for the piece in question. Each line contains one or more EM music events. Each musical event is itself made up of a series of 8 numerical values, namely:
- type de l'événement : il s'agit d'une extension de la norme MIDI. Cette norme définit le type de l'événement tel que note-on (début de note), note-off (fin de note), changement de commande, changement de programme. La valeur numérique du type code simultanément un canal parmi les seize canaux MIDI, permettant ainsi de définir seize voies de production
sonores. Le type MIDI se traduit par un nombre entier compris entre 128 et 225. Selon l'invention on y ajoute un préfixe codant.- type of event: this is an extension of the MIDI standard. This standard defines the type of the event such as note-on, note-off, change of command, change of program. The numeric value of the type simultaneously codes for one of the sixteen MIDI channels, thus defining sixteen channels of production sound. The MIDI type results in an integer between 128 and 225. According to the invention, there is added a coding prefix.
* la piste d'actionneur auquel est attribué l'événement. Par exemple, on ajoute au type MIDI le numéro d'actionneur multiplié par 1 000. * le caractère AS ou non de l'action associé à cet événement. Par exemple, on ajoute 10 000 au type MIDI. * the actuator track to which the event is assigned. For example, the actuator number multiplied by 1000 is added to the MIDI type. * The AS character or not of the action associated with this event. For example, we add 10,000 to the MIDI type.
- seconde donnée habituelle, par exemple, la hauteur (pitch) pour une note ;- second usual data, for example, the pitch for a note;
- troisième donnée MIDI, par exemple, la vélocité ; - index temporel de fin de l'événement, par exemple note-off pour une note, ou pédale-off pour une information de pédale. Cette information est utilisée pour le mécanisme de purge PUthird MIDI data, for example, velocity; - End time index of the event, for example note-off for a note, or pedal-off for a pedal information. This information is used for the PU purge mechanism
- Xmin du rectangle d'encadrement de l'événement sur la partition- X m i n of the frame of the event on the score
- Ymin du rectangle d'encadrement de l'événement sur la partition - Xmax du rectangle d'encadrement de l'événement sur la partition- Y min of the event framing rectangle on the partition - X max of the event framing rectangle on the partition
- Ymax du rectangle d'encadrement de l'événement sur la partition. Pour faciliter la lecture du tableau, on explique ci-après la première ligne concernant l'index temporel 768. Pour une résolution temporelle de 384 pas par noire, on est donc au second temps du morceau. La ligne contient 32 valeurs et définit donc quatre événements musicaux EM puisque chaque événement est codé par 8 valeurs. Les 8 premières valeurs allant de 2145 à 252 concernent un premier EM. La première valeur 2145 permet de connaître le type d'événement, c'est-à-dire de synchronisation AS ou non. Comme il a été indiqué plus haut, la division de la première valeur 2145 par 10000 donne le type d'événement. Le résultat de la division étant 0, il ne s'agit pas d'un événement de synchronisation AS. La division par 1000 donne 2, ce qui signifie qu'il s'agit d'un EM concernant la piste 2. Le reste de la division par 1000 donne 145, d'où il ressort que l'événement EM est attribué selon les codes MIDI au canal MIDI n° 2. Les deuxième et troisième valeurs de la ligne, à savoir les valeurs 43 et 127, désignent respectivement la hauteur, 43 étant la bémol, et la force de jeu, 127 étant le maximum possible. La quatrième valeur 1 152 indique la durée, qui est de 1 152 pas de résolution, c'est-à-dire quatre noires. Cette note est donc une ronde. Les quatre valeurs qui suivent permettent de positionner l'événement sur la partition, c'est-à-dire elle donne IeS indications Xmin, Ymin, Xmax, Ymax-- Y max of the bounding box of the event on the partition. To facilitate the reading of the table, we explain below the first line concerning the temporal index 768. For a temporal resolution of 384 steps per quarter, we are therefore at the second beat of the piece. The line contains 32 values and therefore defines four musical events EM since each event is encoded by 8 values. The first 8 values ranging from 2145 to 252 concern a first EM. The first value 2145 makes it possible to know the type of event, that is to say of synchronization AS or not. As mentioned above, dividing the first value 2145 by 10000 gives the type of event. Since the division result is 0, it is not an AS synchronization event. The division by 1000 gives 2, which means that it is an EM on track 2. The rest of the division per 1000 gives 145, from which it emerges that the event EM is assigned according to the codes MIDI to MIDI channel # 2. The second and third values of the line, namely the values 43 and 127, respectively denote the pitch, 43 being the flat, and the playing force, 127 being the maximum possible. The fourth value 1,152 indicates the duration, which is 1,152 steps of resolution, that is to say four blacks. This note is therefore a round. The four values that follow make it possible to position the event on the score, that is to say it gives the indications X min , Ymin, Xmax, Ymax-
La seconde EM allant de 2145 à 230, analysée de la manière qui précède n'est également pas un événement de synchronisation.
Par contre, le troisième EM défini par le troisième groupe de 8 valeurs allant de 1 1 144 à 195 est un événement de synchronisation puisque la division de la valeur 1 1 144 par 1000 donne 1. La division de 1 144, à savoir le reste de la division par 10000, par 1000 donne 1 , ce qui signifie que cet événement de synchronisation AS concerne la piste 1. Le reste 144 indique qu'il s'agit, selon les codes MIDI, d'un début de note à attribuer au canal MIDI 1.The second EM ranging from 2145 to 230, analyzed in the above manner is also not a synchronization event. On the other hand, the third EM defined by the third group of 8 values ranging from 1114 to 195 is a synchronization event since the division of the value 1 1 144 by 1000 gives 1. The division of 1 144, namely the rest of the division by 10000, by 1000 gives 1, which means that this synchronization event AS relates to the track 1. The remainder 144 indicates that it is, according to the MIDI codes, a beginning of note to be attributed to the MIDI channel 1.
Le quatrième EM commençant par la valeur 1 1 144 est un événement de synchronisation AS concernant la piste 1. Il s'agit d'un début de note attribué au canal MIDI 1.The fourth EM starting with the value 1 1 144 is an AS sync event for track 1. This is a start of a note assigned to MIDI channel 1.
Après l'interprétation des quatre événements musicaux EM de la ligne d'index temporaire 768, il faut décider de les jouer ou non. Cette fonction est accomplie par un mécanisme de filtrage qui confère à l'utilisateur des possibilités variées. Ces possibilités seront décrites, à titre d'exemple, plus loin. En bref, si l'utilisateur utilise deux actionneurs, par exemple la main droite et la main gauche, et si la lecture de la ligne d'index temporaire 768 a été effectuée suite à une action sur l'actionneur A1 , alors seuls les EM dont les pistes sont 1 seront jouées, à savoir les troisième et quatrième EM. Si la lecture concerne la liste affectée à l'actionneur A2, alors seuls les premier et second EM sont joués. Si l'utilisateur utilise seulement l'actionneur A1 , le filtre laisse passer les événements de la piste 2 qui sont alors joués de façon automatique et synchrone avec le jeu sur A1.After the interpretation of the four musical events EM of the temporary index line 768, it is necessary to decide whether to play them or not. This function is accomplished by a filtering mechanism that gives the user varied possibilities. These possibilities will be described, for example, later. In short, if the user uses two actuators, for example the right hand and the left hand, and if the reading of the temporary index line 768 was performed following an action on the actuator A1, then only the EM whose tracks are 1 will be played, namely the third and fourth EM. If the reading relates to the list assigned to the actuator A2, then only the first and second EM are played. If the user only uses the actuator A1, the filter passes the events of the track 2 which are then played automatically and synchronously with the game on A1.
Mémoire de la séquence des actions MAMemory of the action sequence MA
La mémoire MA de la séquence des actions constitue une autre caractéristique essentielle et innovante de l'invention. Cette mémoire est le cœur de l'invention car elle contient, associée à chaque pas de temps concerné, la liste des actions attendues en provenance de chaque contrôleur ainsi que la façon dont doit être traitée chacune de ces actions. Le traitement en question dépend essentiellement de deux facteurs, à savoir le numéro de l'actionneur ayant produit l'action et le statut de l'action qui pourrait être une action de synchronisation AS ou non. A chaque index temporels pour lequel existe un événement musical EM on trouve dans la mémoire MA pour chaque actionneur présent dans le système l'instant de la prochaine action du type AS ainsi que le statut de l'action attendue qui peut prendre trois valeurs : - pas d'action attendue de cet actionneur à l'instant considéré ;
- action de type AS attendue ;The MA memory of the sequence of actions is another essential and innovative feature of the invention. This memory is the heart of the invention because it contains, associated with each time step concerned, the list of expected actions from each controller and how each of these actions should be treated. The processing in question depends essentially on two factors, namely the number of the actuator having produced the action and the status of the action which could be an AS synchronization action or not. At each time index for which there exists a musical event EM, there is in the memory MA for each actuator present in the system the instant of the next action of the type AS as well as the status of the expected action which can take three values: no action expected of this actuator at the moment considered; - AS type action expected;
- action attendue non AS.- expected action no AS.
Lorsqu'une action est reçue en provenance d'un actionneur A1 , A2, le générateur de séquence temporelle GST1 , GST2 associé à la piste dont fait partie l'actionneur vérifie si dans la mémoire MA une action est prévue et, dans l'affirmative, si cette action est une action simple ou une action synchronisante AS. Le générateur GST1 , GST2 effectue les opérations suivantes :When an action is received from an actuator A1, A2, the time sequence generator GST1, GST2 associated with the track of which the actuator is part verifies if in the memory MA an action is provided and, if so , if this action is a simple action or an AS synchronizing action. The generator GST1, GST2 performs the following operations:
- si aucune action n'était attendue à cet instant selon la mémoire MA, l'action est ignorée ;- if no action was expected at this time according to the memory MA, the action is ignored;
- si une action simple, c'est-à-dire non AS, est attendue, l'événement musical est lu dans la mémoire MM des événements musicaux EM, joué par l'unité de synthèse audio AU et affiché à l'écran si nécessaire ;if a simple action, that is to say no AS, is expected, the musical event is read in the memory MM of the musical events EM, played by the audio synthesis unit AU and displayed on the screen if necessary ;
- si l'action est reçue alors qu'une action de type AS est présent pour cet instant dans la mémoire MM, la séquence des opérations suivantes est déclenchée :if the action is received while an action of type AS is present for the moment in the memory MM, the sequence of the following operations is triggered:
* calcul de la vitesse instantanée Vl d'exécution par la personne interprète à partir du rapport de la différence temporelle réelle entre l'action présente et l'action précédente reçue sur le même actionneur divisé par la différence temporelle en pas de résolution de données musicales des événements musicaux déclenchés par les deux actions. A titre d'exemple, si la note mémorisée à l'index temporels 1 152 a été jouée sur une action relevée à l'instant t1 et si l'action actuelle qui a lieu à t2 déclenche une note mémorisée à l'index 2304, la vitesse instantanée correspond à un pas de résolution temporelle dont la durée est [(t2-t1 )/(2304-1 152)]. Autrement dit, on calcule la durée dans le temps d'un pas de résolution temporelle. * Calculation of the instantaneous speed VI execution by the interpreter person from the ratio of the actual time difference between the present action and the previous action on the same actuator received divided by the time difference in resolution no music data musical events triggered by both actions. For example, if the note stored at time index 1 152 has been played on an action recorded at time t1 and if the current action that takes place at t2 triggers a note stored at index 2304, the instantaneous speed corresponds to a time resolution step whose duration is [(t2-t1) / (2304-1152)]. In other words, the duration in time of a temporal resolution step is calculated.
* calcul du nombre de pas NP prévu jusqu'à la prochaine action de type AS attendu selon la mémoire MA, obtenu par la différence entre l'index temporels actuel et l'index temporel du prochain événement AS, mémorisé dans MA. * calculation of the number of NP steps provided until the next AS type action expected according to the memory MA, obtained by the difference between the current time index and the time index of the next event AS, stored in MA.
* Le pointeur de lecteur PLMA1 , PLMA2 de la mémoire d'action MA est incrémenté de façon à pointer sur la prochaine action attendue de l'actionneur A1 , A2. Il est à noter que chaque générateur GST1 , GST2 tient à jour un pointeur PLMA. * déclenchement du mécanisme de purge PU1 , PU2 des événements obsolètes, comme il sera explicité plus loin.
* génération de la séquence rythmique d'index temporels PT, PT+1 , PT+2 jusqu'à PT+NP, à une cadence correspondant à la vitesse calculée. * The pointer PLMA1 player, PLMA2 AD action memory is incremented to point to the next expected action of the actuator A1, A2. It should be noted that each generator GST1, GST2 maintains a PLMA pointer. * triggering the purging mechanism PU1, PU2 obsolete events, as will be explained later. * Generating the rhythm sequence of time index PT, PT + 1, PT to PT + 2 + NP at a rate corresponding to the calculated speed.
En fonction de la séquence ainsi générée, la mémoire MM des événements EM est interrogée. Si à ce pas rien n'est mémorisé dans la mémoire MM, rien n'est effectué. Si des événements musicaux sont mémorisés, ils sont fournis par la mémoire MM sous forme d'une liste d'événements musicaux EM. Cette liste est filtrée afin de n'exploiter pour le rendu sonore et visuel que certains des événements qu'elle contient, ce qui offre une flexibilité totale d'exécution à travers de multiples choix d'adaptation du système, en particulier :Depending on the sequence thus generated, the memory MM of the events EM is interrogated. If nothing is stored in the memory MM, nothing is done. If musical events are stored, they are provided by the memory MM as a list of musical events EM. This list is filtered so that only some of the events that it contains can be used for audio and visual rendering, which offers a total flexibility of execution through multiple choices of adaptation of the system, in particular:
- comme il a été expliqué plus haut, chaque événement musical EM contient une valeur appelée marqueur qui indique par quel actionneur il doit être déclenché. Il n'est joué que si son marqueur correspond à l'actionneur qui a déclenché le traitement en cours, sinon il n'est pas joué.as explained above, each musical event EM contains a value called marker which indicates by which actuator it must be triggered. It is only played if its marker corresponds to the actuator that triggered the current process, otherwise it is not played.
- on peut choisir de demander au système par exemple de filtrer les informations d'arrêt de notes qui doivent donc alors être joué par l'utilisateur à partir de l'actionneur, ou au contraire de ne pas les filtrer afin que le système se charge d'arrêter les notes aux instants exacts mémorisés dans la mémoire MM.- we can choose to ask the system for example to filter the note stop information which must then be played by the user from the actuator, or conversely not to filter them so that the system is loaded to stop the notes at the exact moments memorized in the memory MM.
- on peut choisir de filtrer les informations de volume, par exemple le contrôle 7 de la norme MIDI, ou des informations de changements de sons tel que le programme connu sous le terme « program change » de la norme MIDI. Les événements retenus sont envoyés, d'une part, au générateur sonore, et, d'autre part, à l'unité d'affichage de la partition à l'écran.- We can choose to filter the volume information, for example the control 7 of the MIDI standard, or information of sound changes such as the program known as the "program change" of the MIDI standard. The selected events are sent, on the one hand, to the sound generator, and, on the other hand, to the display unit of the score on the screen.
Dans le cas où la mémoire MM contient à un index temporels donné une séquence audio (fichier WAV, AIFF...), deux cas sont possibles. Soit le fichier est lu tel quel, soit il est lu avec un procédé d'étirement/compression temporelle classique ajustée à la vitesse Vl. Le choix d'une des deux options à appliquer est intégrer dans à l'événement dans la mémoire MM.In the case where the memory MM contains at a given time index an audio sequence (WAV file, AIFF ...), two cases are possible. Either the file is read as is, or it is read with a conventional time stretching / compression method adjusted to the speed Vl. The choice of one of the two options to be applied is integrated in the event in the memory MM.
En résumé, lorsqu'une action de synchronisation AS est reçue d'un actionneur A1 , A2, la séquence d'index temporels allant de l'index correspondant à l'action AS reçue jusqu'à l'index de la prochaine action AS est générée à une vitesse déterminée à partir des deux dernières AS reçues.In summary, when an AS synchronization action is received from an actuator A1, A2, the temporal index sequence from the index corresponding to the received AS action to the index of the next AS action is generated at a speed determined from the last two AS received.
Deux cas se présentent alors :
- soit la séquence se déroule jusqu'à son terme avant que le système ne reçoive l'action de l'utilisateur qui correspond à l'action de synchronisation suivante. Cela signifie que l'utilisateur exécutant a ralenti. Lorsque la séquence, dans ce cas, est arrivée à son terme, plus rien ne se passe sur la piste considérée tant que l'action de l'utilisateur n'est arrivée ;Two cases then arise: or the sequence proceeds to completion before the system receives the action of the user corresponding to the next synchronization action. This means that the executing user has slowed down. When the sequence, in this case, has come to an end, nothing happens on the track as long as the action of the user has not arrived;
- soit une nouvelle action de l'utilisateur survient alors que la séquence n'est pas terminée. Cela signifie que l'utilisateur accélère. Dans ce cas intervient l'unité de purge PU de la piste concernée. En effet, à l'arrivée de la nouvelle action de l'utilisateur, qui correspond à une action de synchronisation AS dans la mémoire MM, l'index du générateur de séquence qui, à cet instant de temps, n'a pas encore atteint l'index de l'action AS dans la mémoire « sauté» cet index. En particulier, si des événements d'arrêt de notes sont stockés à certains des index temporels intermédiaires sautés, il faut s'assurer que le système arrête correctement ces notes. A cette fin toutes les notes générées sur une piste, qui ne sont pas terminées, sont stockées dans une mémoire temporaire, qui est la mémoire de purge PU, accompagnées par l'index de fin de la note considérée. La mémoire de purge est entièrement lue et sélectionne les notes en cours dont la fin est attendue à un des index sautés, puis envoie les commandes d'arrêt de note correspondants à l'unité de synthèse sonore AU. L'explication ci-dessus décrit le fonctionnement de la mémoire de purge PU sur un arrêt de note, mais s'applique aussi bien à un événement de relâchement de pédale par exemple.- or a new action of the user occurs while the sequence is not completed. This means that the user is accelerating. In this case, the purge unit PU of the track concerned is involved. Indeed, at the arrival of the new action of the user, which corresponds to an AS synchronization action in the memory MM, the sequence generator index which, at this moment of time, has not yet reached the index of the action AS in the memory "skipped" this index. In particular, if note stopping events are stored at some of the skipped intermediate time indexes, it must be ensured that the system stops these notes correctly. For this purpose all the notes generated on a track, which are not completed, are stored in a temporary memory, which is the purge memory PU, accompanied by the end index of the note considered. The purge memory is fully read and selects the current notes whose end is expected at one of the jumped indexes, and then sends the corresponding note stop commands to the audio synthesis unit AU. The explanation above describes the operation of the PU purge memory on a note stop, but applies equally to a pedal release event for example.
Il est expliqué ci-après comment est prise en compte le numéro de l'actionneur dans le traitement des données d'action mémorisées dans la mémoire MA. Comme il a été écrit, chaque générateur de séquence temporelle par piste GST maintient à jour un pointeur PLMA vers la mémoire MA. Ceci est nécessaire afin que l'utilisateur puisse « dérouler » progressivement les données déclenchées successivement par l'actionneur considéré. Il existe ainsi dans le cas où plus d'un actionneur est utilisé un risque de décalage significatif entre les différents pointeurs PLMA, pouvant se traduire par la perte de la cohérence d'ensemble du morceau. Un niveau hiérarchique est donc attribué à chaque actionneur, depuis le plus élevé, par exemple l'actionneur 1 , jusqu'au plus faible. Chaque fois qu'une action de synchronisation AS est traitée, les pointeurs PLMA d'une priorité plus basse sont forcés à la nouvelle valeur résultant du traitement de l'action de synchronisation. En particulier, toute action de type AS sur l'actionneur le plus élevé s'impose au pointeur de tous les autres actionneurs. Cette
caractéristique est symbolisée sur la figure 1 par une flèche en pointillé allant de GST1 à GST2.It is explained hereinafter how is taken into account the number of the actuator in the processing of the action data stored in the memory MA. As has been written, each GST track time sequence generator maintains a PLMA pointer to the MA memory. This is necessary so that the user can progressively "unroll" the data triggered successively by the actuator considered. Thus, in the case where more than one actuator is used, there is a significant risk of lag between the different PLMA pointers, which may result in the loss of the overall coherence of the piece. A hierarchical level is therefore assigned to each actuator, from the highest, for example the actuator 1, to the lowest. Whenever an AS synchronization action is processed, PLMA pointers of a lower priority are forced to the new value resulting from the processing of the synchronization action. In particular, any action of AS type on the highest actuator is required to the pointer of all other actuators. This characteristic is symbolized in Figure 1 by a dotted arrow from GST1 to GST2.
Après cette description générale de la mémoire d'action MA, le tableau 2 qui suit donne, à titre d'exemple, la structure des données dans cette mémoire.After this general description of the action memory MA, Table 2 which follows gives, by way of example, the structure of the data in this memory.
Tableau 2Table 2
On constate qu'à chaque index temporel dans la colonne de gauche pour lequel existe un événement musical EM dans le morceau considéré, on trouve dans la mémoire MA :It can be seen that at each time index in the left column for which a musical event EM exists in the piece considered, the memory MA
- autant de couple de valeurs qu'il est utilisé d'actionneurs. La première valeur indique par une valeur 0,1 ou 2 la façon dont doit être traitée l'action pour cet index et cet actionneur, 0 signifiant aucune action, 1 une action de déclenchement mais sans synchronisation, 2 une action de déclenchement de synchronisation AS avec mise à jour de la vitesse Vl ;- as many values that are used as actuators. The first value indicates by a value of 0.1 or 2 the way in which the action for this index and this actuator must be treated, 0 meaning no action, 1 a trigger action but without synchronization, 2 an AS synchronization trigger action with update of the speed Vl;
- la seconde valeur du couple est l'index temporel de la prochaine action attendue sur cet actionneur ; Suivent finalement ci-dessus trois valeurs numériques indiquant respectivement l'emplacement de l'événement EM sur la partition affichée à l'écran en terme de numéro de page, numéro de système, numéro de mesure.the second value of the torque is the temporal index of the next action expected on this actuator; Finally, three numerical values are shown above, respectively indicating the location of the EM event on the partition displayed on the screen in terms of page number, system number, measurement number.
Pour une compréhension plus détaillée du format des données dans la mémoire MA, on commentera ci-après la dernière ligne du tableau, à savoir de l'index temporel 1920.For a more detailed understanding of the format of the data in the MA memory, the last line of the table, that is, the time index 1920, will be commented below.
Les trois dernières valeurs définissent l'emplacement sur la partition.The last three values define the location on the partition.
Le premier couple de valeurs 1 2304 concerne toujours la piste 1. La valeur 1 indique qu'au pas de temps considéré 1920 existe en piste 1 des données musicales à jouer, qui ne sont pas des événements de synchronisation. La seconde valeur 2304 du couple indique l'index temporel du prochain événement EM existant sur la piste considérée, donc du prochain EM attribué à l'actionneur A1.
Le second couple de valeurs 2 21 12 concerne toujours la piste 2 à laquelle appartient l'actionneur 2. La valeur 2 du couple indique qu'à l'actionnement par l'utilisateur d'une action sur A2 correspond un événement ME de synchronisation et qu'il faut resynchroniser le déroulement de cette piste à la réception de l'action de l'utilisateur. Le système va donc calculer, de la manière décrite plus haut, la vitesse Vl et généré une séquence d'index temporels à cette vitesse jusqu'au prochain événement de synchronisation EM existant sur cette piste, qui est précisément la seconde valeur du couple, c'est-à-dire la valeur 21 12. Le troisième couple de valeurs, ici 0 21 120, concerne toujours la pisteThe first pair of values 1 2304 always relates to the track 1. The value 1 indicates that at the time step considered 1920 exists in track 1 of the musical data to be played, which are not synchronization events. The second value 2304 of the pair indicates the time index of the next EM event existing on the track in question, therefore the next EM assigned to the actuator A1. The second pair of values 2 21 12 still relates to the track 2 to which the actuator 2 belongs. The value 2 of the pair indicates that, when the user actuates an action on A2, corresponds to an event ME of synchronization and that it is necessary to resynchronize the course of this track at the reception of the action of the user. The system will thus calculate, in the manner described above, the speed Vl and generated a sequence of time indexes at this speed until the next EM synchronization event existing on this track, which is precisely the second value of the pair, c ie the value 21 12. The third pair of values, here 0 21 120, still concerns the track
3. La valeur 0 indique qu'il n'y a rien à faire sur la piste. La valeur 21 120 qui suit indique le prochain index temporel où on trouve un événement musical EM à jouer sur la piste 3. Si l'utilisateur ne dispose que de deux actionneurs alors cette valeur est fixe et égale à l'index temporel de fin du morceau, c'est- à-dire l'index temporel du dernier événement, en général arrêt de la dernière note.3. The value 0 indicates that there is nothing to do on the track. The value 21 120 that follows indicates the next time index where there is a musical event EM to play on the track 3. If the user has only two actuators then this value is fixed and equal to the time index of the end of piece, that is the temporal index of the last event, usually stopping the last note.
Mécanismes de filtrage et de purgeFiltering and purging mechanisms
Le système selon l'invention comporte en outre un mécanisme de filtrage et un mécanisme de purge qui permet au système d'offrir à l'utilisateur la souplesse qui apparaîtra lors de la description du fonctionnement général du système et de la description de certains exemples spécifiques.The system according to the invention furthermore comprises a filtering mechanism and a purge mechanism which enables the system to offer the user the flexibility that will appear when describing the general operation of the system and the description of certain specific examples. .
Le mécanisme de filtrage a pour but de permettre à l'utilisateur de configurer le système en fonction de ses propres souhaits, d'une part, et de tirer partie de la flexibilité offerte, d'autre part.The purpose of the filtering mechanism is to allow the user to configure the system according to his own wishes, on the one hand, and to take advantage of the flexibility offered, on the other hand.
Le filtrage d'un événement musical EM a lieu chaque fois qu'un tel EM doit être joué par le système, soit parce qu'un actionneur a déclenché cet EM, soit parce qu'une séquence temporelle en cours d'exécution l'a provoqué. L'utilisateur peut lui-même instaurer un filtrage grâce à une interface dédié. L'utilisateur peut choisir des filtrages éventuellement différents pour chaque piste. Ainsi, l'utilisateur peut souhaiter un seul actionneur A1 et sélectionne alors un mode de fonctionnement tel que « utilisé seulement actionneur A1 » ou « joue seulement de la main droite ». Un autre choix peut concerner la gestion des arrêts de notes que l'utilisateur décide d'effectuer lui- même ou de confier au système. Enfin, ces choix pourraient également être mémorisés dans la mémoire MM des événements EM et seraient alors
détectés lors de la lecture de l'événement EM par un code particulier, par exemple un en-tête numérique négatif pour la première des 8 valeurs de chaque événement EM, et indiqués « à la volée » un mode de filtrage donné. Ainsi l'utilisateur peut faire varier de jeu qu'il souhaite au cours même du jeu. Lors du jeu d'un événement, le type de l'événement est extrait de la mémoire, en général de la première des 8 valeurs d'une ligne de la mémoire MM et confronté au paramètre de filtrage en cours pour la piste de l'actionneur concerné. Par exemple, si l'utilisateur a choisi d'utiliser deux actionneurs A1 et A2, un événement attribué à A2 ne sera pas joué lorsqu'il est associé à la piste 1. Si l'utilisateur a choisi de faire jouer les EM de la piste 2 par le système, le filtrage pourrait être fait de sorte qu'il soit au contraire joué par la piste 1. Le filtrage peut également s'appliquer aux événements d'arrêt de notes des codes MIDI 128 à 143. Lorsque ce code est rencontré, l'événement EM correspondant ne sera joué que si l'utilisateur a confié les arrêts de note au système. Sinon il est ignoré. Selon un autre exemple, certains événements EM peuvent avoir pour objet de faire changer le timbre de restitution sonore utilisé, conformément aux codes MIDI 192 à 207, dit de « program change » pour, par exemple, passer d'un piano à un clavecin. L'utilisateur peut demander au système de ne pas jouer les événements EM de ce type « programm change » lorsqu'ils sont rencontrés et de les ignorer. Le timbre ne changera donc pas.The filtering of a musical event EM takes place each time such an EM has to be played by the system, either because an actuator has triggered this EM, or because a running time sequence has provoked. The user can himself filter through a dedicated interface. The user can choose possibly different filtering for each track. Thus, the user may wish a single actuator A1 and then selects an operating mode such as "used only A1 actuator" or "only plays with the right hand". Another choice may concern the management of the stopping of notes that the user decides to perform himself or entrust to the system. Finally, these choices could also be stored in the memory MM of the events EM and would then be detected during the reading of the EM event by a particular code, for example a negative digital header for the first of the 8 values of each EM event, and indicated "on the fly" a given filtering mode. Thus, the user can vary the game he wishes during the game itself. When an event is played, the type of the event is extracted from the memory, generally from the first of the 8 values of a game. MM memory line and facing the current filter parameter for the track of the actuator concerned. For example, if the user has chosen to use two actuators A1 and A2, an event assigned to A2 will not be played when associated with track 1. If the user has chosen to play the EM of the Track 2 by the system, the filtering could be done so that it is instead played by Track 1. The filtering can also be applied to note-off events of MIDI codes 128 to 143. When this code is met, the corresponding EM event will be played only if the user has given the system the stops. Otherwise it is ignored. According to another example, certain EM events may have the purpose of changing the sound reproduction timbre used, in accordance with MIDI codes 192 to 207, called "program change" for, for example, switching from a piano to a harpsichord. The user can ask the system not to play EM events of this type "program change" when they are encountered and to ignore them. The stamp will not change.
Le mécanisme de purge est prévu pour des situations suivantes. Comme il a été expliqué plus haut, après une action de l'utilisateur sur un actionneur donné, une séquence d'index temporels est généré dans le but de faire jouer par le système les événements EM de façon autonome. La vitesse à laquelle sont joués ces événements est déduite de la vitesse Vl de l'utilisateur par extrapolation de sa vitesse de jeu entre ses deux plus récentes actions sur un actionneur donné. Le système ne peut évidemment pas prévoir un changement de vitesse important de la part de l'utilisateur. Cela ne pose aucun problème si l'utilisateur ralentit. Si, par contre, il accélère de façon significative, il est possible que l'action suivante de sa part intervienne avant que la séquence en cours ne soit parvenue à son terme. Cela peut poser problème pour certains types d'événements EM dont par exemple les arrêts de note : si une note a été initiée par la séquence d'index, mais que celle-ci est interrompue par l'action suivante en provenance d'un actionneur, l'événement EM correspondant à l'arrêt de cette note ne sera pas joué puisque l'index temporel va « sauter » à la valeur correspondante à l'action
nouvelle. D'autre part, problématiques sont également certains types de contrôle, en particulier le message « pedal on » correspond à l'enfoncement d'une pédale de piano et le message de relâchement non joué du fait de l'accélération. Toutes les notes en cours seront alors maintenues da façon permanente.The purge mechanism is provided for the following situations. As explained above, after a user action on a given actuator, a time index sequence is generated for the purpose of making the EM events play autonomously. The speed at which these events are played is deduced from the user's speed Vl by extrapolation of his game speed between his two most recent actions on a given actuator. The system obviously can not provide for a significant change of speed on the part of the user. This is not a problem if the user slows down. If, on the other hand, it accelerates significantly, it is possible for the next action on its part to take place before the current sequence has come to an end. This can be problematic for some types of EM events, such as note stops: if a note was triggered by the index sequence, but it was interrupted by the next action from an actuator , the event EM corresponding to the stop of this note will not be played since the temporal index will "jump" to the value corresponding to the action news. On the other hand, problematic are also certain types of control, in particular the message "pedal on" corresponds to the depression of a piano pedal and the release message not played due to acceleration. All current notes will be kept permanently.
Le mécanisme de purge est prévu pour éviter ces situations. Il permet de pouvoir jouer certains événements de façon prioritaire en cas d'accélération importante. Le mécanisme de purge est en fait essentiellement constitué d'une mémoire par piste contenant, à tout instant, les événements susceptibles de causer un problème, en particulier les arrêts de note et la pédale, et qui ont été initiés, c'est-à-dire les débuts de notes ou l'enfoncement de pédale joué. Chaque fois qu'une note est initiée ou la pédale enfoncée, l'événement EM correspondant est stocké dans la mémoire de purge, avec un index indiquant la fin prévue de cette note ou le relâchement de pédale. Si la séquence d'index parvient normalement à l'événement EM contenant l'arrêt d'une note mémorisée dans la mémoire de purge, alors cet EM est joué, la note arrêtée et cette note est supprimée dans la mémoire de purge.The purge mechanism is intended to avoid these situations. It allows to play certain events as a priority in case of significant acceleration. The purge mechanism essentially consists of a memory per track containing, at any time, the events likely to cause a problem, in particular the stopping of the note and the pedal, which have been initiated, that is to say say the beginnings of notes or pedal depression played. Each time a note is initiated or the pedal depressed, the corresponding EM event is stored in the purge memory, with an index indicating the intended end of that note or the pedal release. If the index sequence normally arrives at the event EM containing the stopping of a note stored in the purge memory, then this EM is played, the note stopped and this note is deleted in the purge memory.
Enfin, à la réception de toute nouvelle action, la mémoire de purge correspondante est entièrement parcourue. Si le système y trouve des EM, par exemple une note ou une pédale dont l'index est inférieur à celui de l'action en cours de traitement, alors la note est arrêtée ou la pédale relâchée, et retirée de la mémoire de purge. Sinon rien n'est effectué.Finally, upon receipt of any new action, the corresponding purge memory is fully traveled. If the system finds EMs there, for example a note or a pedal whose index is lower than that of the action being processed, then the note is stopped or the pedal released, and removed from the purge memory. Otherwise nothing is done.
Fonctionnement du système selon l'inventionOperation of the system according to the invention
On décrira ci-après tout d'abord le fonctionnement général du système selon l'invention en se référant à la figure 2 qui illustre la séquence des traitements effectuée dans une piste n du système suite à la réception d'une action déclenchée par l'utilisateur, cette action pouvant être une action simple ou une action de synchronisation. Ensuite le fonctionnement sera exposé plus en détail à l'aide de quelques exemples.The general operation of the system according to the invention will be described below with reference to FIG. 2, which illustrates the sequence of the processes carried out in a track n of the system following the reception of an action triggered by the user, this action can be a simple action or a synchronization action. Then the operation will be explained in more detail with some examples.
Supplémentairement à qui est représenté sur la figure 1 , chaque piste peut être pourvue d'une fonction de fenêtre temporelle qui est gérée par l'unité. Comme il a été expliqué plus haut, à la réception d'une action de la part de l'utilisateur, qui correspond à un événement de synchronisation AS sur cette piste, l'instant d'apparition de cette prochaine action de synchronisation
par l'utilisateur est déterminé en établissant par calcul la vitesse instantanée Vl actuelle jusqu'à l'index temporel de cette prochaine action de synchronisation. Une fenêtre d'ouverture dont la durée peut être fixée, mais sera par exemple un pourcentage de l'intervalle de temps entre l'action AS actuelle et la prochaine AS est placée autour de l'instant d'apparition calculé. Si la fenêtre est activée, la prochaine action reçue ne sera prise en compte que si elle a lieu à l'intérieur de la fenêtre calculée. Cette fenêtre permet d'éliminer des actions intempestives de l'utilisateur. En particulier, il devient possible pour l'utilisateur non expérimenté d'interpréter un morceau en déclenchant rythmiquement des actions par exemple à la vitesse et la force désirées, ce qui confère un niveau d'expressivité déjà notable. L'exécution serait alors correcte.Additionally to which is shown in Figure 1, each track may be provided with a time slot function that is managed by the unit. As explained above, upon receipt of an action on the part of the user, which corresponds to an AS synchronization event on this track, the instant of appearance of this next synchronization action by the user is determined by calculating the current instantaneous speed Vl to the time index of this next synchronization action. An opening window whose duration can be fixed, but will be for example a percentage of the time interval between the current AS action and the next AS is placed around the calculated appearance time. If the window is activated, the next action received will only be taken into account if it takes place within the calculated window. This window makes it possible to eliminate unwanted actions of the user. In particular, it becomes possible for the inexperienced user to interpret a piece by rhythmically triggering actions for example at the desired speed and strength, which confers a level of expressiveness already noticeable. The execution would then be correct.
En se reportant à la figure 2, on constate que le système selon l'invention, suite à une action de l'utilisateur sur un actionneur A appartenant à une piste P constituant sur la figure 2 une première étape E1 du procédé, vérifie à une étape de procédé E2 si cette action intervient à un instant de temps qui se trouve à l'intérieur de la fenêtre temporelle placée autour de l'instant d'apparition calculé de cette action dans la mémoire d'action MA. Si au moment de l'action de l'utilisateur la fenêtre n'est pas ouverte, le système ne fait rien, comme cela est symbolisé par la case C1.Referring to FIG. 2, it can be seen that the system according to the invention, following an action of the user on an actuator A belonging to a track P constituting in FIG. 2 a first step E1 of the method, checks at a process step E2 if this action occurs at a time instant that is within the time window placed around the calculated appearance time of this action in the action memory MA. If at the time of the action of the user the window is not open, the system does nothing, as is symbolized by the box C1.
Dans l'affirmative, on détermine, à l'étape E3, en interrogeant la mémoire d'action MA, si à cet index temporel une action est prévue dans la mémoire et le statut de celui-ci. L'absence d'une action provoque une valeur 0 qui n'entraîne aucune réponse. Si une action de type action synchronisante est prévue, il s'agit d'une action de la valeur 2 et si l'action n'est pas synchronisante, on lui attribue la valeur 1.If so, it is determined, in step E3, by interrogating the action memory MA, if at this time index an action is provided in the memory and the status thereof. The absence of an action causes a value 0 that does not result in any response. If a synchronizing action type action is provided, it is an action of value 2 and if the action is not synchronizing, it is assigned a value of 1.
Suite à la constation de la présence d'une action non synchronisante, c'est-à-dire de la valeur 1 dans la mémoire MA, le générateur de séquence temporelle de la piste de l'actionneur GST provoque la lecture à l'index de temps correspondant de l'événement musical EM dans la mémoire musicaleFollowing the finding of the presence of a non-synchronizing action, that is to say of the value 1 in the memory MA, the time sequence generator of the track of the actuator GST causes the reading at the index corresponding time of the musical event EM in the musical memory
MM, fait jouer cet événement par l'unité de synthèse audio et fait afficher l'événement à l'écran si nécessaire. L'exécution de ces opérations est illustrée par les cases C2 et C3. Si l'action identifiée dans la mémoire MA est une action de synchronisation AS, c'est-à-dire de la valeur 2, le générateur de séquence temporelle GST effectue les opérations suivantes dans la case C4 dans l'ordre indiqué, à savoir du calcul de la vitesse instantanée Vl d'exécution par l'utilisateur, du calcul des paramètres de la séquence
temporelle, de la mise à jour du pointeur PLMA de la piste de l'actionneur actionné par l'utilisateur, le forçage des pointeurs PLMA de priorité inférieure, l'activation de la mémoire de purge PU dans le cas de la constation d'une augmentation de la vitesse Vl et ainsi d'une accélération, de la mise à jour de la fenêtre temporelle et de la génération de la séquence GST des index temporels jusqu'à la prochaine action de type AS. Puis l'événement musical se trouvant dans la mémoire d'événement musical MM à l'index temporel correspondante est lu et envoyé vers l'unité de production sonore AU et, le cas échéant, vers l'unité d'affichage sur écran. Un premier exemple d'utilisation du système selon l'invention sera décrit en se reportant à la figure 3. Cette figure est un extrait de l'écran de visualisation du dispositif, montrant la possibilité de traiter des polymélodies, ici sur le choral BWV 347 de JS BACH. Les notes entourées d'un carré en trait continu doivent être entendues simultanément et ont des index temporels de début et de fin tous différents les uns des autres. Le système permet d'interpréter ce passage musical de multiples façons. On décrira ci après trois possibilités.MM, play this event by the audio synthesis unit and display the event on the screen if necessary. The execution of these operations is illustrated by boxes C2 and C3. If the action identified in the memory MA is an AS synchronization action, i.e., the value 2, the time sequence generator GST performs the following operations in the box C4 in the indicated order, namely of the calculation of the instantaneous speed Vl of execution by the user, of the calculation of the parameters of the sequence time, the update of the PLMA pointer of the track of the actuator actuated by the user, the forcing of the PLMA pointers of lower priority, the activation of the purge memory PU in the case of the constation of a increasing the speed Vl and thus accelerating, updating the time window and generating the GST sequence of the time indexes until the next AS action. Then the musical event in the musical event memory MM at the corresponding time index is read and sent to the audio production unit AU and, if applicable, to the on-screen display unit. A first example of use of the system according to the invention will be described with reference to FIG. 3. This figure is an extract from the display screen of the device, showing the possibility of processing polymelodies, here on the chorale BWV 347 from JS BACH. Notes surrounded by a solid line are to be heard simultaneously and have start and end time indexes all different from each other. The system allows you to interpret this musical passage in many ways. Three possibilities are described below.
La première est une méthode de difficulté intermédiaire. C'est une première approche assez facile mais expressivement déjà riche. Elle consiste à jouer à partir d'un actionneur A1 consécutivement les deux notes entourées du cadre en trait plein et à partir de l'actionneur A2 les deux notes entourées de traits interrompus et à laisser le système appliquer aux instants exacts en fonction de la vitesse Vl les arrêts de notes souhaitables.The first is a method of intermediate difficulty. It is a first approach easy enough but expressively already rich. It consists of playing from an A1 actuator consecutively the two notes surrounded by the frame in solid lines and from the actuator A2 the two notes surrounded by dashed lines and to let the system apply at the exact times according to the speed Vl desirable stopping points.
Pour ce faire, les événements EM de déclenchement des notes entourées d'un cadre à trait plein, appelées ci-après notes N1 sont codées en tant que AS1 , mais les arrêts correspondant à ces notes ne sont associés à aucune action dans la mémoire MA. Le système les prend alors en charge par l'intermédiaire des séquences générées par GST1. Le déclenchement des notes entourées de traits interrompus, appelées ci-après notes N2, est quant à lui codé en AS. Ainsi le système prend en charge l'arrêt de ces notes, en accordant toutefois la priorité à la vitesse d'exécution déterminée à partir de l'actionneur A1. Si la personne, pour s'entraîner par exemple, souhaite ne jouer que les notes N2, le système exploitera les séquences générées par GST2 pour jouer les événements non associés à une action, par exemple l'arrêt des notes.To do this, EM event triggering notes surrounded by a solid line frame, hereafter called notes N1 are encoded as AS1, but the stops corresponding to these notes are not associated with any action in the memory MA . The system then supports them through the sequences generated by GST1. The triggering of the notes surrounded by dashed lines, hereafter called notes N2, is in turn encoded in AS. Thus the system supports the stopping of these notes, however giving priority to the execution speed determined from the actuator A1. If the person, to train for example, wishes to play only notes N2, the system will exploit the sequences generated by GST2 to play events not associated with an action, for example the stopping of notes.
Une deuxième possibilité d'interprétation plus facile consiste à ne jouer que les notes N1 , le système prenant en charge non seulement les
notes N2 mais également tous les arrêts de notes requis. Dans ce cas, le déclenchement des notes N2 n'est plus associé à un actionneur, mais ce déclenchement est codé pour ne pas être filtrés lors du jeu des séquences GST1. Les seules actions de déclenchement des notes N1 suffiront alors à générer correctement le déclenchement des notes N2 ainsi que la fin de toutes les notes.A second possibility of easier interpretation is to play only the N1 notes, the system supporting not only the notes N2 but also all the stops of notes required. In this case, the triggering of the notes N2 is no longer associated with an actuator, but this trigger is coded so as not to be filtered during the play of the GST1 sequences. The only triggering actions of the notes N1 will then be enough to correctly generate the triggering of the notes N2 and the end of all the notes.
Une troisième possibilité est la plus riche en terme d'expressivité mais requiert une habilité plus grande de l'utilisateur. Néanmoins, cette approche est beaucoup plus abordable que le jeu traditionnel pour un tel passage, tout en offrant rigoureusement les mêmes possibilités en terme de richesse expressive. Dans cette approche, l'actionneur A1 , par exemple une zone d'un clavier électronique, sera utilisé pour déclencher les notes N2. Mais A1 sera également utilisé pour contrôler l'arrêt de ces notes. Un second actionneur A2, par exemple une autre zone d'un clavier, sera utilisé pour le contrôle de déclenchement et d'arrêt des notes N2. Une telle possibilité nécessite une unité spécialisée au sein du système. Le fonctionnement de cette unité est décrit dans le paragraphe suivant se référant à la figure 5.A third possibility is the richest in terms of expressiveness but requires a greater ability of the user. Nevertheless, this approach is much more affordable than the traditional game for such a passage, while offering rigorously the same possibilities in term of expressive richness. In this approach, the actuator A1, for example an area of an electronic keyboard, will be used to trigger the notes N2. But A1 will also be used to control the stopping of these notes. A second actuator A2, for example another zone of a keyboard, will be used for the control of triggering and stopping of the notes N2. Such a possibility requires a specialized unit within the system. The operation of this unit is described in the following paragraph referring to Figure 5.
Sur cette figure 5 présentant un extrait du morceau déjà vu plus haut, on a encadré différentes notes en fonction de la façon dont elles sont traitées par le système. Les deux notes encadrées par une ellipse continue, sont par exemple des événements de synchronisation liés à l'actionneur A1. Elles seront codées par exemple par la valeur 1 1 144 en tête de la liste de 8 valeurs de l'EM correspondant, le premier 1 indiquant la synchronisation, le second 1 l'actionneur 1 , et la valeur 144 un début de note sur le canal MIDI 1. Les deux notes entourées par l'ellipse en pointillé sont par exemple affectées à l'actionneur A2, mais ne doivent pas être utilisées pour la synchronisation. Elles seront par exemple codées par la valeur 2145, signifiant une absence de synchronisation, actionneur 2, canal MIDI 2. Il en est de même pour la note encadrée par un rectangle en pointillé. Si l'utilisateur n'utilise qu'un actionneur, par exemple s'il ne joue que la main droite, les événements 1 1 144 sont joués lorsqu'il y a action sur A1. De plus le tempo est calculé à partir du temps écoulé entre les deux dernières actions de synchronisation AS reçues. Les EM 1 144 sont joués et GST1 envoie une séquence d'index temporels débutant à l'index temporel actuel et se terminant juste avant la prochaine action de synchronisation attendue. Ainsi, les EM 2145 seront joués, à savoir immédiatement les notes entourées par une ellipse pointillée et, à l'instant voulu, la note encerclée par un
rectangle pointillé. Puis le système attend une nouvelle action sur A1. Si cette nouvelle action attendue a lieu avant que ne soit jouée la note au rectangle pointillé, alors le mécanisme de purge supprime cette note qui ne sera pas jouée car l'utilisateur a beaucoup accéléré. Si l'utilisateur utilise deux actionneurs A1 , A2, par exemple main droite et main gauche, le fait de recevoir l'action A1 correspondant aux notes encerclées par l'ellipse continue déclenche le jeu de ces notes, mais non pas le jeu des notes entourées par l'ellipse pointillée. Ces notes seront jouées par la prochaine action reçue sur A2, sauf si l'action suivante A1 destinée à la note encadrée par le rectangle continu intervient avant. Dans ce cas, elles seront omises.In this figure 5 presenting an extract of the piece already seen above, we have framed different notes depending on how they are processed by the system. The two notes framed by a continuous ellipse, are for example synchronization events related to the actuator A1. They will be coded for example by the value 1 1 144 at the top of the list of 8 values of the corresponding EM, the first 1 indicating the synchronization, the second 1 the actuator 1, and the value 144 a beginning of note on the MIDI channel 1. The two notes surrounded by the dotted ellipse are for example assigned to the A2 actuator, but must not be used for synchronization. They will be for example coded by the value 2145, meaning a lack of synchronization, actuator 2, MIDI channel 2. It is the same for the note framed by a dotted rectangle. If the user only uses one actuator, for example if he plays only the right hand, the events 11144 are played when there is action on A1. Moreover the tempo is calculated from the time elapsed between the last two synchronization actions AS received. The EMs 1 144 are played and GST1 sends a sequence of time indexes starting at the current time index and ending just before the next expected timing action. Thus, the EM 2145 will be played, namely immediately the notes surrounded by a dotted ellipse and, at the desired moment, the note encircled by a dotted rectangle. Then the system waits for a new action on A1. If this new expected action takes place before the dotted rectangle is played, then the purge mechanism removes that note that will not be played because the user has accelerated a lot. If the user uses two actuators A1, A2, for example right hand and left hand, the fact of receiving the action A1 corresponding to the notes encircled by the continuous ellipse triggers the game of these notes, but not the game of notes surrounded by the dotted ellipse. These notes will be played by the next action received on A2, unless the next action A1 for the note framed by the continuous rectangle intervenes before. In this case, they will be omitted.
Un deuxième exemple d'utilisation du système selon l'invention concerne la gestion des note off et polymélodies.A second example of use of the system according to the invention concerns the management of note off and polymelodies.
Pour l'explication, on a représenté de façon schématique sur une portée musicale à la figure 4 une situation courante dans laquelle des notes longues, en gras continu, doivent être maintenues et auxquelles sont superposées des notes plus courtes en gras pointillé. Lorsqu'une note est jouée, le système retient dans une mémoire dédiée, dite mémoire de note off, dont une est prévue par piste d'actionneur, un identifiant de l'action utilisée, de façon typique le numéro de 1 à 127 de la note MIDI enfoncée sur le clavier, et en regard de cet identifiant, l'ensemble des événements musicaux EM ayant été déclenchés lors de cette action, tels que type, hauteur, force, index de fin et position à l'écran des événements jouées. Lors du relâchement de l'actionneur, la mémoire de note off est relue à l'adresse correspondant à l'identifiant reçue et les événements contenus à cette adresse sont modifiés afin de provoquer l'arrêt des notes ou d'une information de pédale, déclenchées initialement par l'identifiant. Cette technique permet d'associer autant de voies de polyphonies à des identifiants différents, et de les déclencher et stopper de façon indépendante, même à partir d'un seul actionneur. On accède ainsi au jeu de plusieurs mélodies simultanées.For the explanation, there is shown diagrammatically a musical range in Figure 4 a current situation in which long notes, in bold continuous, must be maintained and which are superimposed shorter notes dotted bold. When a note is played, the system retains in a dedicated memory, said note off memory, one of which is provided by actuator track, an identifier of the action used, typically the number from 1 to 127 of the MIDI note pressed on the keyboard, and next to this identifier, all EM musical events that were triggered during this action, such as type, height, strength, end index and screen position of the events played. When the actuator is released, the note off memory is read back to the address corresponding to the received identifier and the events contained in this address are modified in order to cause the stopping of the notes or of a pedal information, triggered initially by the identifier. This technique makes it possible to associate as many polyphonic channels with different identifiers, and to trigger and stop them independently, even from a single actuator. We thus access the game of several simultaneous melodies.
A titre d'illustration du mécanisme d'arrêt de notes, une séquence de cinq notes « do ré mi fa sol » est donnée à la figure 6. Le tableau 3 reproduit ci-après donne le contenu de la mémoire d'événements pour cette séquence de notes :As an illustration of the note stopping mechanism, a sequence of five notes "do re mi fa sol" is given in Figure 6. Table 3 reproduced below gives the contents of the event memory for this sequence of notes:
1 1 144 72 127 384 x0 y0 x1 y1
1 1 144 72 127 384 x0 y0 x1 y1
Tableau 3Table 3
La colonne de gauche contient les instants indiqués en nombre de pas de résolution temporelle, auxquels ont lieu les événements. La résolution temporelle est de 384 pas par noire. Les événements musicaux EM sont les groupes de 8 valeurs consécutives, dans lesquels xO, yO, x1 , y1 désignent les emplacements sur la partition. Comme il a été indiqué plus haut, lors de l'explication du tableau 1 du mémoire MM, la première valeur de chaque ligne indique la façon dont est traité l'événement. Ainsi la valeur de 1 1 144 dans la première ligne indique un événement de synchronisation temporel, attendu de l'actionneur A1 , le reste 144 un début de note sur le canal MIDI 1. La première valeur de 1 128 de la seconde ligne ne sera pas prise en compte pour la synchronisation temporel puisque la division de 1 128 par 10000 donne 0, mais elle concerne la piste 1 liée à A1 , puisque 1 128/1000 donne 1. Enfin, le reste de la division 1 128 par 1000 vaut 128. Le code conforme à la norme MIDI indique un arrêt de note sur le canal MIDI 1. Il est à noter que 129 indiquerait un arrêt sur le canal MIDI 2 et ainsi de suite jusqu'à 143 qui serait un arrêt sur le canal 16. Ainsi à l'instant 384 de la seconde ligne, le premier EM désigne l'arrêt de la note de hauteur 72 qui est le second item de la liste de 8 valeurs. Il est à souligner que dans une liste d'événements EM, les EM concernant un arrêt de note doivent impérativement figurer avant les EM de déclenchement de note. A défaut, une note répétée c'est-à-dire arrêtée puis re-déclenchée ne sera pas jouée correctement. Plus précisément, on décrit ci-après la séquence des opérations effectuées à la réception de l'action A1 déclenchant la quatrième note Fa à l'instant 1 152 : le premier événement musical EM est joué, il s'agit de l'arrêt de la note 76 (Mi). Le second EM est joué, il s'agit du déclenchement de la note 77 (Fa). L'événement EM correspondant à ce dernier déclenchement de note est stocké dans le mécanisme de purge PU1 de la piste 1. On calcule le pas de résolution temporelle PRT=[t(1 152)-t(768)]/(1 152-768), où t(768)
représente l'instant réel auquel a été joué l'événement de l'index temporels 768, avec une précision de l'ordre de la milliseconde (ms). Le générateur de séquence temporelle GST1 génère une séquence de (1536-1 152-1 )=382 valeurs allant de 1 152 à 1535, à des intervalles de temps successifs de PRT ms. Cette séquence adresse la mémoire musical MM des événements musicaux EM à des intervalles PRT. Si rien n'existe dans la mémoire MM à l'index temporels d'interrogation, rien ne se passe. Si un des des événements EM figurent à un index temporels d'interrogation, il est joué. Ainsi, lorsque l'index 1344 est atteint, il déclenche la lecture de l'événement EM inscrite dans la mémoire à cet index. Si le système d'arrêt automatique de note est activé sur la piste 1 , l'EM d'arrêt de la note Fa est envoyé. S'il n'est pas activé, l'EM est filtré, c'est-à-dire ignoré. En lieu et place de cet EM, le relâchement de la touche enfoncée sur A1 qui a déclenché ce Fa sera utilisé pour arrêter la note. Dans les deux cas, l'EM d'arrêt de note correspondant est retiré dans le mécanisme de purge PU1 de la piste.The left column contains the times indicated in the number of time resolution steps at which the events take place. The temporal resolution is 384 steps per quarter. EM musical events are groups of 8 consecutive values, in which xO, yO, x1, y1 denote the locations on the score. As noted above, when explaining Table 1 of the MM, the first value of each line indicates how the event is handled. Thus, the value of 1114 in the first line indicates a time synchronization event, expected from the actuator A1, the remainder 144 a start of note on the MIDI channel 1. The first value of 1128 of the second line will be not taken into account for the temporal synchronization since the division of 1 128 by 10000 gives 0, but it concerns the track 1 related to A1, since 1 128/1000 gives 1. Finally, the rest of the division 1 128 by 1000 is worth 128 The MIDI compliant code indicates a note stop on MIDI channel 1. It should be noted that 129 would indicate a stop on MIDI channel 2 and so on up to 143 which would be a stop on channel 16. Thus at the instant 384 of the second line, the first EM designates the stopping of the pitch note 72 which is the second item in the list of 8 values. It should be emphasized that in a list of EM events, the MSs concerning a note stop must imperatively appear before the note triggering MSs. Otherwise, a repeated note that is to say stopped and re-triggered will not be played correctly. More precisely, the sequence of the operations carried out on receipt of the action A1 triggering the fourth note Fa at time 1 152 is described below: the first musical event EM is played, it is the stopping of the note 76 (Mi). The second EM is played, it is triggering the note 77 (Fa). The event EM corresponding to this last note trigger is stored in the purge mechanism PU1 of the track 1. The time resolution step PRT = [t (1 152) -t (768)] / (1 152- 768), where t (768) represents the actual time at which the event of the time index 768 was played, with a precision of the order of a millisecond (ms). Time sequence generator GST1 generates a sequence of (1536-1 152-1) = 382 values ranging from 1152 to 1535, at successive time intervals of PRT ms. This sequence addresses the musical memory MM of the musical events EM at intervals PRT. If nothing exists in the memory MM at the query time index, nothing happens. If any of the EM events are at a time query index, it is played. Thus, when the index 1344 is reached, it triggers the reading of the EM event recorded in the memory at this index. If the automatic note stop system is activated on track 1, the stop FM of the note Fa is sent. If it is not activated, the EM is filtered, that is to say ignored. In place of this EM, releasing the key on A1 that triggered this Fa will be used to stop the note. In both cases, the corresponding note stop EM is removed in the PU1 purge mechanism of the track.
La séquence continue son déroulement : soit jusqu'à atteindre l'instant 1535 où l'action A1 suivante est attendue, soit si une action A1 est reçue avant que 1535 ne soit atteint. Dans le cas où l'utilisateur accélère, GST1 est stoppée et le cycle décrit ci-dessus redémarre à partir de l'instant 1536. Enfin, si l'utilisateur a beaucoup accéléré, il pourrait envoyé l'action A1 de déclenchement de la note de l'instant 1536 avant que la séquence n'ait atteint la valeur 1344. On saute donc directement à l'événement EM de l'instant 1536, mais auparavant les arrêts de note stockés dans le mécanisme de purge dont les dates sont inférieures à 1536 sont joués. Ci-dessus on a décrit, à titre d'exemple, le fonctionnement du système selon l'invention pour des événements EM stockés dans la mémoire MM à des intervalles d'index temporels relativement importantes. Bien entendu, le système permet également de jouer des données continues qui ont pour particularité qu'elles ont lieu à des intervalles temporelles rapprochées, par exemple à chaque pas successif de temps. Il peut s'agir par exemple du contrôle de volume défini dans la norme MIDI par un statut compris entre 176 et 191 pour des canaux respectifs 1 à 16. Dans ce cas, la mémoire MM des événements EM contiendra des événements sous la forme identique de 8 valeurs. La première valeur pourrait par exemple être de 1 1 176, c'est-à-dire définissant un événement de synchronisation sur la piste 1 déclenchant un contrôle MIDI. Si les deux valeurs qui suivent sont par exemple 7 et 100, en se conformant à la norme MIDI, il s'agirait d'un contrôle de volume et le
volume est mis à 100. Une première valeur 1 176 ou de 3176 concernerait un événement non synchronisant concernant respectivement la piste 1 et la piste 3.The sequence continues its course: until reaching the instant 1535 where the next action A1 is expected, or if an action A1 is received before 1535 is reached. In the case where the user accelerates, GST1 is stopped and the cycle described above restarts from the moment 1536. Finally, if the user has accelerated a lot, he could sent the action A1 triggering the note from the instant 1536 before the sequence has reached the value 1344. So we jump directly to the EM event of the instant 1536, but before the note stops stored in the purge mechanism whose dates are less than 1536 are played. Above, the operation of the system according to the invention for EM events stored in the memory MM at relatively large time index intervals has been described by way of example. Of course, the system also makes it possible to play continuous data which has the particularity that they take place at closely spaced time intervals, for example at each successive step of time. This may be for example the volume control defined in the MIDI standard by a status of between 176 and 191 for respective channels 1 to 16. In this case, the memory MM of the events EM will contain events in the identical form of 8 values. The first value could for example be 11176, that is, defining a synchronization event on track 1 triggering a MIDI control. If the following two values are for example 7 and 100, according to the MIDI standard, it would be a volume control and the volume is set to 100. A first value of 1,176 or 3176 would relate to a non-synchronizing event concerning track 1 and track 3, respectively.
De façon identique à ce qui est décrit plus haut pour les arrêts de note, la séquence d'index temporels déclenchée par le GST d'une piste va successivement adresser les index consécutifs auxquels sont stockés les données dites continues, et ces données seront donc jouées au rythme courant déduit du jeu de l'utilisateur.In the same way as described above for note stops, the sequence of time indexes triggered by the GST of a track will successively address the consecutive indexes at which the so-called continuous data are stored, and these data will therefore be played. at the current rate derived from the user's game.
Certains modes spécifiques du jeu musicalSome specific modes of the musical game
Le système selon l'invention pourrait comporter d'autres caractéristiques afin de mieux prendre en compte certaines spécificités du jeu musical. Il s'agit de la gestion appropriée des arrêts de note ou note off et des événements d'interprétation qui induisent « localement », c'est-à-dire uniquement pour l'événement considéré et éventuellement ses voisins immédiat, des variations par rapport au mode normal des traitements des événements tels que décrits jusqu'ici.The system according to the invention could include other characteristics in order to better take into account certain specificities of the musical game. This is the appropriate management of note-offs or note offs and interpretation events that induce "locally", that is to say only for the event considered and possibly its immediate neighbors, variations with respect to in the normal mode of processing events as described so far.
Parmi ces spécificités, on nommera, à titre d'exemple, la fenêtre temporelle qui a déjà été décrite plus haut, et ceux désignés par des termes arpeggio, appoggiature, mordant ou grupetto, accent ou trille.Among these specificities, we will name, by way of example, the time window that has already been described above, and those designated by terms arpeggio, appoggiature, mordant or grupetto, accent or trill.
Concernant le terme arpeggio, l'arpège conduit à ne pas jouer les notes concernées telles que représentées sur la partition, c'est-à-dire simultanément, mais en séquence. Il est important de pouvoir maîtriser le déroulement temporel de la séquence. Lors de l'indication arpeggio codée dans le type de l'EM, le système effectue les opérations suivantes : il lit le nombre de notes concernées, joue la première note rencontrée et ne lit les suivantes qu'à l'apparition d'une nouvelle action primaire. Pus il calcule le nouveau paramètre temporel à partir de l'action primaire ayant jouée la première note de l'arpège.Regarding the term arpeggio, the arpeggio leads to not play the notes concerned as represented on the score, that is to say simultaneously, but in sequence. It is important to be able to control the timing of the sequence. During the arpeggio indication encoded in the type of the EM, the system performs the following operations: it reads the number of notes concerned, plays the first note encountered and only reads the following when a new one appears. primary action. It calculates the new temporal parameter from the primary action that played the first note in the arpeggio.
Une action se traduisant par le jeu d'une appoggiature n'est pas soumise à la fenêtre temporelle. On autorise localement deux actions primaires très rapprochées dans le temps et sans prise en compte de la vitesse Vl actuelle. Les événements EM dont le type encode un mordant ou un grupetto sont suivis d'une série de valeurs numériques indiquant le décalage en hauteur « offset » de note par rapport à la note principale. Les notes calculées
à partir de ces décalages sont ensuite jouées dans un mode identique au mode arpeggio.An action resulting in the play of an appoggiature is not subject to the time window. Two primary actions are locally allowed very close in time and without taking into account the current speed Vl. EM events whose type encodes a mordant or a grupetto are followed by a series of numerical values indicating the offset offset of the note relative to the main note. Calculated scores from these offsets are then played in a mode identical to the arpeggio mode.
Le mode accent indique de modifier la force de jeu de l'actionneur concerné par la valeur jointe, en général un offset additif. En pratique, les informations d'accent sont codées au sein de la vélocité mémorisée dans l'événement EM correspondant.The accent mode indicates to modify the play force of the actuator concerned by the attached value, generally an additive offset. In practice, the accent information is encoded within the velocity stored in the corresponding EM event.
Un événement EM dont le type encode un trille indique la hauteur de note modulant la note trille, le plus souvent la note principale plus un demi-on ou un temps entier. Plusieurs valeurs numériques indiquent un trille sur plusieurs notes. Le calcul de la vitesse actuelle Vl et la fenêtre temporelle sont désactivés pendant la durée du trille qui est apte à des libitum. Tant que l'utilisateur exécutant joue alternativement les deux mêmes commandes sur l'actionneur qui provoque le trille, celui-ci est prolongé. Dès que l'exécutant active une nouvelle commande, par exemple enfonce une troisième touche sur le clavier, la note de sortie de trille est jouée et le système reprend le fonctionnement normal.An EM event whose type encodes a trill indicates the note pitch modulating the trill note, most often the main note plus one half-one or a whole beat. Several numeric values indicate a trill across multiple notes. The calculation of the current speed Vl and the time window are disabled during the duration of the trill that is fit for libitums. As long as the executing user alternately plays the same two commands on the actuator that causes the trill, it is extended. As soon as the performer activates a new command, for example pushes a third key on the keyboard, the trill output note is played and the system resumes normal operation.
D'autres modes pourront être ajoutés, tels que crescendo ou décrescendo ayant un effet graduel sur la force de jeu produite.Other modes may be added, such as crescendo or decrescendo having a gradual effect on the game force produced.
Le système selon l'invention prévoit également une édition de la hiérarchie des événements. Dans la plupart des cas, on associe dès le début les événements EM à un actionneur à partir de canaux MIDI affectés en général au jeu par exemple des mains droite (canal 1 ) et gauche (canal 2) dans la plupart des fichiers de données musicales MIDI. Le système initialise donc automatiquement l'affectation des événements à partir de ces canaux. Afin de pouvoir ensuite faire évoluer le jeu des mains droite et gauche, il est prévu que des fonctions d'édition de ces affectations soit globales, par exemple de confier au système le contrôle de tous les événements d'arrêt de note de la main gauche, soit locales au moyen d'une édition à l'écran. Chaque événement est affiché à l'écran avec un code couleur correspondant à l'actionneur auquel il est affecté, comme cela est montré à la figure 2 où les encadrements de notes ne sont pas faits par couleur mais par des traits continus ou interrompus. L'utilisateur sélectionne un ou plusieurs événements et modifie si nécessaire le numéro d'actionneur qui lui est attribué. Cela se traduira par une modification du type de l'événement EM qui lui est affecté dans la mémoire MM.The system according to the invention also provides an edition of the hierarchy of events. In most cases, EM events are initially associated to an actuator from MIDI channels generally assigned to the game, for example right (channel 1) and left (channel 2) in most music data files. MIDDAY. The system therefore automatically initializes the assignment of events from these channels. In order to then be able to change the game of the right and left hands, it is expected that the editing functions of these assignments are global, for example to entrust the system with the control of all note stop events with the left hand. , or local by means of an on-screen edition. Each event is displayed on the screen with a color code corresponding to the actuator to which it is assigned, as shown in Figure 2 where the note frames are not made by color but by continuous or interrupted lines. The user selects one or more events and modifies if necessary the actuator number assigned to him. This will result in a modification of the type of the event EM assigned to it in the memory MM.
L'invention prévoit également la possibilité d'un clavier à point de séparation flottant. Dans un mode d'utilisation préférentiel du système, on
utilise un clavier séparé en deux zones de jeu autour d'un point fixe. Toute note enfoncée à droite du point de séparation sera par exemple une action A1 et toute note enfoncée à gauche du même point sera une action A2. La fixité du point de séparation peut être la cause d'erreur de jeu et également être un frein à la libre expression. Afin de remédier à ces inconvénients, l'invention prévoit plusieurs solutions dont l'affectation dynamique des actions en fonction du déroulement temporel. Dans ce cas, le système sait, en considérant le contenu de la mémoire MA pour l'index temporel de la prochaine action, quels événements sont préférentiellement attendus à un instant donné. Lorsque survient l'action en question, le système décide s'il s'agit d'une action A1 ou A2 en fonction de ce qui est probable à l'instant considéré. Si les deux types d'action étaient attendus à cet instant, le système choisirait d'affecter les actions A1 et A2 en fonction de la position respective des identifiants reçus, c'est-à-dire du numéro de notes du clavier. Une autre solution réside dans le recours à un capteur supplémentaire tel qu'un accéléromètre placé sur les parties mobiles du ou des exécutants, par exemple sur les poignées gauche et droit. Le système analyse la simultanéité des signaux reçus des actionneurs de jeu et des capteurs qui afficheront un pic de signal lorsqu'une touche est enfoncée. La concordance temporelle permet de déterminer la façon précise quelle est la source d'action à tout instant. Evidemment un tel système trouve essentiellement son utilité en complément des actionneurs MIDI traditionnels tels que les claviers.
The invention also provides the possibility of a floating separation point keyboard. In a preferred mode of use of the system, uses a separate keyboard in two play zones around a fixed point. Any note pressed to the right of the separation point will for example be an A1 action and any note pressed to the left of the same point will be an A2 action. The fixity of the separation point can be the cause of game error and also be a brake on free expression. In order to overcome these drawbacks, the invention provides several solutions, including the dynamic assignment of the actions according to the time course. In this case, the system knows, considering the contents of the memory MA for the time index of the next action, which events are preferentially expected at a given moment. When the action in question occurs, the system decides whether it is an A1 or A2 action based on what is likely at the moment. If both types of action were expected at this time, the system would choose to assign the actions A1 and A2 according to the respective position of the received identifiers, that is to say the note number of the keyboard. Another solution is the use of an additional sensor such as an accelerometer placed on the moving parts of the performers or, for example on the left and right handles. The system analyzes the simultaneity of signals received from game actuators and sensors that will display a peak signal when a key is pressed. The temporal concordance makes it possible to determine the precise manner which is the source of action at any moment. Obviously such a system is essentially useful in addition to traditional MIDI actuators such as keyboards.
Claims
1. Système d'interprétation de musique préenregistré assisté par ordinateur, du type comprenant essentiellement au moins un actionneur musical actionnable par un utilisateur interprète, des moyens de mémoire de stockage d'informations musicales relatives à la partition d'un morceau de musique à interpréter par l'utilisateur et des moyens de transmission des informations musicales à un dispositif électronique/informatique adapté pour produire des signaux audio à partir des informations musicales reçues, caractérisé en ce qu'il comprend une mémoire (MM) des données musicales, qui définissent la totalité des événements musicaux (EM) constituant le morceau de musique à interpréter et une mémoire (MA) de la séquence des actions nécessaires pour la reproduction des événements musicaux (EM) stockés ainsi que des moyens d'établissement desdites informations musicales par comparaison des données stockées dans la mémoire des données musicales (MM) et la mémoire de la séquence des actions (MA).Computer-aided pre-recorded music interpretation system of the type comprising essentially at least one musical actuator operable by an interpreter user, memory means for storing musical information relating to the score of a piece of music to be interpreted by the user and means for transmitting the musical information to an electronic / computer device adapted to produce audio signals from the received musical information, characterized in that it comprises a memory (MM) of the musical data, which defines the all the musical events (EM) constituting the piece of music to be interpreted and a memory (MA) of the sequence of actions necessary for the reproduction of the stored musical events (EM) as well as means for establishing said musical information by comparison of the data stored in the memory of the musical data (MM) and the memory re of the sequence of actions (MA).
2. Système selon la revendication 1 , caractérisé en ce que la mémoire (MM) est structurée de façon qu'à chaque événement musical (EM) à reproduire est associé un index temporel désignant le nombre de pas de résolution existant entre le début du morceau à reproduire et cet événement, et en ce qu'à un index temporel peuvent être associés plusieurs événements musicaux (EM).2. System according to claim 1, characterized in that the memory (MM) is structured so that each musical event (EM) to be reproduced is associated with a time index designating the number of steps of resolution existing between the beginning of the piece to reproduce and this event, and in that at a time index can be associated several musical events (EM).
3. Système selon la revendication 2, caractérisé en ce que chaque événement musical est constitué par une série d'un nombre de valeurs numériques prédéterminées, relatives notamment à l'affectation de l'événement EM à l'actionneur correspondant et à l'exécution de l'événement.3. System according to claim 2, characterized in that each musical event is constituted by a series of a number of predetermined numerical values, relating in particular to the assignment of the event EM to the corresponding actuator and the execution of the event.
4. Système selon l'une des revendications 1 à 3, caractérisé en ce que la mémoire (MA) contient, associée à des index temporels pour lesquels existe un événement musical (EM), la liste des actions attendues de l'actionneur correspondant ainsi que la façon dont doit être traitée chacune de ces actions.4. System according to one of claims 1 to 3, characterized in that the memory (MA) contains, associated with time indexes for which there is a musical event (EM), the list of expected actions of the corresponding actuator and than how each of these actions should be handled.
5. Système selon la revendication 4, caractérisé en ce que, si une action est attendue, la mémoire (MA) contient le numéro du ou des actionneurs devant produire la dite action à l'index temporel correspondant et le statut de l'action qui peut être une action de synchronisation (AS) ou non.5. System according to claim 4, characterized in that, if an action is expected, the memory (MA) contains the number of the actuator (s) to produce said action at the corresponding time index and the status of the action that can be a synchronization action (AS) or not.
6. Système selon la revendication 5, caractérisé en ce que la mémoire (MA) comporte, associés à chaque index temporels pour lesquels existe un événement musical, pour chaque actionneur présent dans le système, l'instant de la prochaine action de synchronisation ainsi que l'information sur le statut de l'action attendue qui peut prendre trois valeurs respectivement représentatives de l'absence d'une action attendue, d'une action de synchronisation (AS) et d'une action non synchronisante.6. System according to claim 5, characterized in that the memory (MA) comprises, associated with each time index for which there is a musical event, for each actuator present in the system, the instant of the next synchronization action as well as information on the status of the expected action that can take three values respectively representative of the absence of an expected action, a synchronization action (AS) and a non-synchronizing action.
7. Système selon la revendication 6, caractérisé en ce qu'il comprend, dans chaque piste dont fait partie un actionneur un générateur de séquence temporelle (GST), qui est adapté pour vérifier si dans la mémoire (MA) une action est prévue et, dans l'affirmative, si cette action est une action simple ou une action synchronisante (AS).7. System according to claim 6, characterized in that it comprises, in each track including an actuator a time sequence generator (GST), which is adapted to check if in the memory (MA) an action is provided and if so, whether this action is a single action or a synchronizing action (AS).
8. Système selon la revendication 7, caractérisé en ce que le générateur de séquence temporelle (GST) est adapté pour ignorer une action en provenance de l'actionneur si aucune action n'était attendue à cet instant selon la mémoire (MA), ou, si une action non synchronisante est attendue, pour provoquer la lecture de l'événement musical dans la mémoire (MM), et pour faire jouer l'événement par l'unité de synthèse audio (AU) ou, dans le cas où à cet instant une action de synchronisation (AS) est présente dans la mémoire (MM), pour déterminer par calcul la vitesse instantanée d'exécution du morceau par la personne interprète et le nombre de pas de résolution temporelle jusqu'à la prochaine action de synchronisation attendue selon la mémoire (MA) et la génération de la séquence rythmique d'index temporels à une cadence correspondant à la vitesse calculée.8. System according to claim 7, characterized in that the time sequence generator (GST) is adapted to ignore an action from the actuator if no action was expected at this time according to the memory (MA), or , if a non-synchronizing action is expected, to cause the playback of the musical event in the memory (MM), and to play the event by the audio synthesis unit (AU) or, in case moment a synchronization action (AS) is present in the memory (MM), to determine by calculation the instantaneous speed of execution of the piece by the interpreter and the number of steps of temporal resolution until the next synchronization action expected according to the memory (MA) and the generation of the rhythmic sequence of time indexes at a rate corresponding to the calculated speed.
9. Système selon l'une des revendications 1 à 8, caractérisé en ce qu'il comprend un mécanisme de purge (PU) permettant à l'utilisateur de jouer certains événements musicaux (EM) de façon prioritaire dans le cas d'accélération importante de son jeu.9. System according to one of claims 1 to 8, characterized in that it comprises a purge mechanism (PU) allowing the user to play certain musical events (EM) as a priority in the case of significant acceleration of his game
10. Système selon la revendication 9, caractérisé en ce que le mécanisme de purge est constitué d'une mémoire par piste contenant, à tout instant, les événements musicaux (EM) tels que des débuts de note ou l'enfoncement de pédale et, pour chaque note initiée ou pédale enfoncée l'index indiquant la fin prévue de cette note ou le relâchement de pédale.10. System according to claim 9, characterized in that the purge mechanism consists of a memory per track containing, at any moment, the musical events (EM) such as beginnings of note or depression pedal and, for each note initiated or pedal pressed the index indicating the end of this note or the release of pedal.
1 1. Système selon la revendication 10, caractérisé en ce que lorsque la séquence d'index temporels parvient normalement à l'événement (EM) contenant l'arrêt d'une note stockée dans la mémoire de purge, cet événement (EM) est joué et la note arrêtée et supprimée dans la mémoire.A system according to claim 10, characterized in that when the temporal index sequence normally arrives at the event (EM) containing the stopping of a note stored in the purge memory, this event (EM) is played and the note stopped and deleted in the memory.
12. Système selon l'une des revendications 9 à 1 1 , caractérisé en ce que le mécanisme de purge est adapté pour être entièrement parcouru à la réception de toute nouvelle action et lorsqu'il y a des événements (EM) tels qu'une note ou une pédale dont l'index temporel est inférieur à celui de l'action en cours de traitement, la note est arrêtée ou la pédale relâchée et retirée de la mémoire de purge. 12. System according to one of claims 9 to 1 1, characterized in that the purge mechanism is adapted to be fully traveled to the receiving any new action and when there are events (EM) such as a note or pedal whose time index is lower than that of the action being processed, the note is stopped or the pedal is released and removed from the purge memory.
13. Système selon l'une des revendications 1 à 12, caractérisé en ce qu'il comporte un mécanisme de filtrage d'un événement musical (EM) lorsqu'un tel événement doit être joué par le système soit parce qu'un actionneur a déclenché cet événement soit parce qu'une séquence temporelle en cours d'exécution l'a provoqué. 13. System according to one of claims 1 to 12, characterized in that it comprises a filtering mechanism of a musical event (EM) when such an event must be played by the system or because an actuator has triggered this event either because a running time sequence caused it.
14. Système selon la revendication 13, caractérisé en ce que le mécanisme de filtrage comporte une interface dédiée permettant à l'utilisateur d'instaurer un filtrage lui-même.14. System according to claim 13, characterized in that the filtering mechanism comprises a dedicated interface allowing the user to set up a filtering itself.
15. Système selon l'une des revendications 1 à 14, caractérisé en ce qu'il comporte des moyens d'une gestion avancée des arrêts de notes permettant le jeu de polymélodie.15. System according to one of claims 1 to 14, characterized in that it comprises means for an advanced management of note stops allowing the game polymelodie.
16. Système selon l'une des revendications 1 à 15, caractérisé en ce qu'il comporte un mécanisme de séparation de clavier à point flottant. 16. System according to one of claims 1 to 15, characterized in that it comprises a floating point keyboard separation mechanism.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2008/066087 WO2010057537A1 (en) | 2008-11-24 | 2008-11-24 | System for computer-assisted interpretation of pre-recorded music |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2368242A1 true EP2368242A1 (en) | 2011-09-28 |
Family
ID=40975837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP08875357A Withdrawn EP2368242A1 (en) | 2008-11-24 | 2008-11-24 | System for computer-assisted interpretation of pre-recorded music |
Country Status (3)
Country | Link |
---|---|
US (1) | US8907194B2 (en) |
EP (1) | EP2368242A1 (en) |
WO (1) | WO2010057537A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177715B (en) * | 2012-06-29 | 2016-06-08 | 黄继杰 | It digital piano |
US10311844B1 (en) * | 2018-05-04 | 2019-06-04 | Peter T. Godart | Musical instrument recording system |
CN110955786B (en) * | 2019-11-29 | 2023-10-27 | 网易(杭州)网络有限公司 | Dance action data generation method and device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5521323A (en) * | 1993-05-21 | 1996-05-28 | Coda Music Technologies, Inc. | Real-time performance score matching |
US6166314A (en) * | 1997-06-19 | 2000-12-26 | Time Warp Technologies, Ltd. | Method and apparatus for real-time correlation of a performance to a musical score |
US5902947A (en) * | 1998-09-16 | 1999-05-11 | Microsoft Corporation | System and method for arranging and invoking music event processors |
JP2001125568A (en) * | 1999-10-28 | 2001-05-11 | Roland Corp | Electronic musical instrument |
US6417439B2 (en) * | 2000-01-12 | 2002-07-09 | Yamaha Corporation | Electronic synchronizer for musical instrument and other kind of instrument and method for synchronizing auxiliary equipment with musical instrument |
US7663044B2 (en) * | 2002-09-04 | 2010-02-16 | Kabushiki Kaisha Kawai Gakki Seisakusho | Musical performance self-training apparatus |
JP4186851B2 (en) * | 2004-03-18 | 2008-11-26 | ヤマハ株式会社 | Performance information display device and program |
US8076564B2 (en) * | 2009-05-29 | 2011-12-13 | Harmonix Music Systems, Inc. | Scoring a musical performance after a period of ambiguity |
-
2008
- 2008-11-24 WO PCT/EP2008/066087 patent/WO2010057537A1/en active Application Filing
- 2008-11-24 EP EP08875357A patent/EP2368242A1/en not_active Withdrawn
- 2008-11-24 US US13/131,009 patent/US8907194B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
See references of WO2010057537A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2010057537A1 (en) | 2010-05-27 |
US20110232462A1 (en) | 2011-09-29 |
US8907194B2 (en) | 2014-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11114074B2 (en) | Media-media augmentation system and method of composing a media product | |
EP2396711A2 (en) | Device and process interpreting musical gestures | |
JP2002510403A (en) | Method and apparatus for real-time correlation of performance with music score | |
JP6776788B2 (en) | Performance control method, performance control device and program | |
FR2903804A1 (en) | Multimedia sequence i.e. musical sequence, automatic or semi-automatic composition method for musical space, involves associating sub-homologous components to each of sub-base components, and automatically composing new multimedia sequence | |
WO2010057537A1 (en) | System for computer-assisted interpretation of pre-recorded music | |
FR2916566A1 (en) | Prerecorded music interpretation system, has unit transmitting musical information to electronic/computer system for producing audio signals, and memory storing musical data that defines musical event totality constituting music chunk | |
JP5338312B2 (en) | Automatic performance synchronization device, automatic performance keyboard instrument and program | |
FR2830666A1 (en) | Broadcasting/storage/telephone queuing music automatic music generation having note series formed with two successive notes providing note pitch sixth/seventh group diatonic side with notes near first group. | |
FR2903803A1 (en) | Multimedia e.g. audio, sequence composing method, involves decomposing structure of reference multimedia sequence into tracks, where each track is decomposed into contents, and associating set of similar sub-components to contents | |
FR2912823A1 (en) | MPEG-1 audio layer-3 audio file audition practicing device, has player with microprocessor that interrupts data, where data provides instructions concerning updation of display from screen and consequences of button activation/de-activation | |
Wright | Transvaluing Adam Clayton | |
CN1155138A (en) | Kara OK device | |
FR2830664A1 (en) | Automatic music generation whereby pointers are used to allow non-sequential reading of note sequences, so that music can be generated in real-time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20110530 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20160720 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20170425 |