下面将对本发明的优选实施例进行详细说明,优选实施例的实例示于附图中。包含在以下说明中和示于附图中的所有内容应理解为用作说明而没有限制意义。
本发明所述的方法和装置能够在再现期间有响应地和动态地实时控制MIDI文件。有响应和动态的实时控制主要是通过配备对每个MIDI文件进行预处理的MIDI控制器实现的。此外,MIDI控制器的结构能使用户组配类似的MIDI乐器以便于MIDI控制器为由用户定义的组配基本上同时地改变用户选定的MIDI参数。
图4表示按本发明构成的记录系统400。记录系统400包括具有多个琴键404的键盘402、MIDI控制器406、音调发生器408和存储器410。MIDI控制器406可以是个人计算机或其它类型的计算机,例如,适合包含下述特征的混音板。MIDI控制器406包括预处理器412、控制过程管理器414、和数据优化器416。预处理器412对存储在存储器410中的MIDI文件418进行修正,得到修正的MIDI文件420。管理器414对经修正的MIDI文件420进行更改以实时地形成更改的MIDI文件422。数据优化器416优化已更改的MIDI文件422并形成传输给音调发生器408的优化MIDI文件424。
用户(演奏者)通过压下键盘402上的琴键404来操作记录系统。键盘402产生可按任何格式以MIDI文件418的形式存储的表示乐谱的比特流,该比特流由MIDI控制器406接收。当键盘402动作时,MIDI控制器406起管道作用,它或者把MIDI文件418存储到存储器410中,或者使比特流进入音调发生器408。MIDI控制器406允许演奏者在再现已存储的MIDI文件418时调节MIDI参数。作为另一种选择,键盘402能够产生MIDI比特流,该比特流在输入MIDI控制器406之前就作为MIDI文件418存储在存储器410中。用这种方式连接时,可以把键盘402直接与音调发生器408和/或存储器410相连。
然而,当记录系统400通过直接从存储器410中检索MIDI文件418来播放乐曲时,最好是使用MIDI控制器406。播放乐曲时,MIDI控制器406从存储器410中检索MIDI文件418,并通过预处理器412、管理器414以及数据优化器416对检索到的文件进行处理,然后把优化的MIDI文件送到音调发生器408。MIDI控制器406上设有下文中将详细说明的预处理和各种控制处理,这样可实时地调整MIDI文件以提高再现质量。
在一个优选实施例中,MIDI控制器的预处理器412、管理器414和数据优化器416分别是在由主PC机的微处理器执行的软件中实现的。在另一个实施例中,所构成的MIDI控制器406包括专用微处理器,用于执行与预处理器412、管理器414和数据优化器416各功能相应的软件。在又一个实施例中,MIDI控制器406各部分的功能是用硬件电路或硬件与软件结合实现的。
在以下的描述中,将详细阐述能构成上述任一实施例所述MIDI控制器406的各预处理器412、管理器414和数据优化器416各自的功能。最好将该系统装到以Windows为基础的操作环境的PC机上。
由MIDI控制器406完成的预处理和控制处理根据用户需要实时地修正MIDI参数进而改变MIDI文件418,从而使得由音调发生器408产生的电子音乐信号听上去多少显得自然。为了提高MIDI控制器406通过控制处理修正文件418的能力,在MIDI控制器406上配备了预处理器412。预处理器412具有把不同格式的MIDI文件从其现有格式转换成标准格式0型文件的功能。此外,预处理器412从每个MIDI文件中除去在再现时不需要的信息,从而将MIDI文件转换成修正的格式0 MIDI文件。如上所述,存储在MIDI文件418中的大部分MME在再现时无用的。这包括版权、公告文本、顺序/轨道名文本、歌词(lyric)文本,时间标记、琴键标记等。事实上,为再现而存储在MIDI文件418中的相关信息只包括定位节拍MME,块数据的第三个字(每个四分音符MIDI的时钟滴数(以下称为“NTK”)和MVE。
图5是表示预处理器412完成预处理功能的流程图500。首先,预处理器412提取存储在存储器410中的MIDI文件418(步骤502)。提取MIDI文件418之后,预处理器412确定MIDI文件418的格式(步骤504)。MIDI文件可以按格式0,1或2存储。预处理器412根据检测到的文件格式,把该格式转换成修正的格式0 MIDI文件(步骤506)。然后把修正后的MIDI文件输出到管理器414(步骤508)。
图6是表示由预处理器412完成的把以格式0存储的每个MIDI文件转换成修正的格式0 MIDI文件功能的流程图600。为达到说明图6的目的,假设MIDI文件418为格式0。首先,预处理器412从MIDI文件418中提取NTK并把NTK存储到修正的MIDI文件420(步骤602)。然后,预处理器412从MIDI文件418中提取下一个MIDI事件(步骤604)。预处理器412判断该MIDI事件是否是MVE(步骤606)。如果该MIDI事件是MVE,则将这个事件存储到修正的MIDI文件420中(步骤610)。如果该事件不是MVE而是MME,预处理器412将进一步判断这个MME是否为定时节拍事件(步骤608)。如果MME是定位节拍事件,则将其存到修正的MIDI文件420中(步骤610)。存储在修正的MIDI文件中的每个文件都包含时间差信息和MIDI事件,该事件可以是MVE或定位节拍MME。最后,预处理器412判断是否已将MIDI文件418中的所有MIDI事件全部处理完毕(步骤612)。如果还未处理完全部MIDI事件,则重复步骤604-612,否则,预处理过程结束并把修正的MIDI文件420输出到管理器414中(步骤614)。
图7是表示由预处理器412完成的把以格式1存储的每个MIDI文件转换成修正的格式0 MIDI文件的功能流程图。如上所述,格式1文件与格式0文件的区别在于,格式1文件中的MVE信息遍布多个轨道,其中用块数据表示每个轨道。然而,定位节拍MME和NTK存储在第一块中。因此,除了用存储修正的MIDI文件代替输出修正的MIDI文件之外,其它均按照与上述步骤602-614处理格式0文件相同的方式处理第一块数据(步骤702)。预处理器412从修正的MIDI文件中提取NTK数据并将其存储到临时的修正的MIDI文件中(步骤704)。对于格式1的MIDI文件来说,下一个检验的块数据和每个后续块数据文件中只包含MVE。因此,为了建立单一的以格式0格式存储的修正的MIDI文件,预处理器412把下一个块数据和修正的MIDI文件合并以得到修正的MIDI文件420。为了确保按合适的顺序存储各MVE,预处理器412从修正的MIDI文件中顺序地提取各MVE并产生修正的MIDI文件累计时间信号(步骤706)。预处理器412几乎同时地从下一个块数据中顺序地提取事件并产生下一个块数据累计时间信号(步骤708)。接下来,预处理器412判断修正的MIDI文件累计时间信号是否大于下一个块数据累计时间信号(步骤710)。如果修正的MIDI文件累计时间信号不大于下一个块数据累计时间信号,就把从修正的MIDI文件中提取的MVE存储到临时的修正的MIDI文件内而将下一个块数据MVE放回块数据中(步骤712)。否则,将下一个块数据MVE存储到临时的修正的MIDI文件中而把从修正的MIDI文件中提取的MVE放回修正的MIDI文件中(步骤714)。在把存储到修正的MIDI文件和下一个块数据中的所有MVE合并成临时的修改的MIDI文件之前,预处理器412重复步骤706-714(步骤716)。预处理器412存储临时的修正的MIDI文件作为修正的MIDI文件(步骤718)。在处理完所有块数据文件之前,预处理器重复步骤706-718(步骤720)。处理完所有文件之后,把修正的MIDI文件420输出到管理器414(步骤722)。
为了转换存储在格式2协议中的MIDI文件,采取了与转换格式1文件相似的步骤,其中只有一点区别。该区别是,在格式2的MIDI文件中,每个块数据具有独立的定位节拍和与之有关的NTK事件。这不同于格式0和格式1文件。具体地说,格式0事件是按顺序存储的,其不需要块数据的合并。格式1事件是将每个事件按顺序存储在每个块中,而每个块具有与存入第一块中的值一致的时间差值,以便于预处理器412顺序地合并事件。格式2文件与格式1文件相类似,然而,时间差值并不与每个块数据相一致。为了将文件合并,预处理器412叠加一模拟时间差,从而有利于将块数据合并成一个文件。在优选实施例中,把定位节拍定为500,000微秒而将NTK设为25,000。这些值的选择使得转换的文件和原文件之间的时间误差为最小。不象对格式1的MIDI文件那样进行简单的时间差累加,对格式2的MIDI文件来说,事件i(Ts(i))的累计时间等于(时间差(n)·Tp(n))中n=0至i的和,其中时间差(n)是第(n)个事件的时间差数值,Tp(n)是在第(n)个事件时刻块的定位节拍值。因此,第i个事件的新时间差值dt(i)可以用等于[(Ts(i)-Ts(i-1))/T]取整值的dt(i)来表示,其中Ts(-1)=0,T是定位节拍值/(NTK)(在这个实施例中T=20微秒)。
预控制器412把修正的MIDI文件420转换成修正的格式0 MIDI文件之后,修正的MIDI文件420对由管理器414的控制处理器所进行的实时调节更加敏感。图8表示管理器414的一个实施例,该管理器包括三个控制处理器。三个控制处理器包括预定控制处理器800,手工控制处理器802,和软件控制处理器804。这些处理器对修正的MIDI文件420的相对作用可由用户通过调节加权系数来控制(未示出)。用加权系数产生展现控制处理器作用的加权平均值。这些控制处理器(或控制处理器的加权平均值)更改修正的MIDI文件420中的参数以形成更改的MIDI文件422。
预定控制处理器800在执行MIDI程序之前置位,以便在播放MIDI文件时,在预定时刻改变乐器参数或组配。此外,预定控制处理器800可以改变通道组配(下文将详细描述)、通道声音信息组配(下文将详细说明)、和在再现期间由程序员在预定时刻确定的其它参数。在再现乐曲时,预置的条件是固定的而且可以使这些条件在任何时间发生。下面将说明,如何通过手动操作的手动控制处理器802的两个接口中的任一个将用户和预定控制处理器800联系起来。
手动控制处理器802设有两个手动操作的接口。每个接口都足以完成手工操作。一个接口是图形控制接口单元,它在优选实施例中相当于在主PC机(未示出)上显示的图形接口屏。另一个接口是控制面板(未示出),它在优选实施例中接到MIDI控制器406的串行口(未示出)上。通常,手工控制处理器802起现有混音板(未示出)的作用,它使得演奏者在再现期间能调节再现速度、总体音量和音调等。利用这些接口可以调节所有MIDI文件通道的参数和参数组配以及调节通道组配。用户用固定的控制旋钮调节MIDI文件参数。这些控制旋钮成组设置,每组包含可连续调节的五个控制旋钮和三个设成单触式或开/关式的开关。此外,图形控制接口单元带有字母数字接口,以供用户输入字母数字数据,例如通道组配的识别名。利用选择数据的字母数字接口和通过压下图形控制接口上的OK按钮可以输入任何字母数字数据。
软件控制处理器804可以是模糊逻辑控制处理器。模糊逻辑增强了软件控制处理器804的能力。此外,软件控制处理器804能够更改各种MIDI文件输入从而使参数例如每个MIDI信号的节拍相一致。这种控制对用实况信号和记录信号进行同时演奏是特别有用的。
更具体地说,软件控制处理器804是处理两种数据源的模糊控制器。一种数据源是转换后的模拟数据源,例如把人的声音或模拟乐器转换成必要的控制信号的数据源。另一种数据源是数字源,例如存储的MIDI文件或与MIDI兼容的数字式乐器。
在处理之前,通过提取源的参数,把模拟数据源的人的实况演出特征(例如:缓慢的或快速的,强音或弱音等)转换成MIDI控制参数。这些参数是例如音调、音量、速度、节拍等。一旦转换成MIDI控制参数,软件控制处理器804的作用就是把用户选定的参数例如数字数据源的节拍与原始(演出者的实况表演特征)模拟数据源相匹配。模糊控制处理包括用于音乐节拍和片段的参数调节模型以便于软件控制处理器804的工作。
为了便于控制处理器800、802和804工作,MIDI控制器406具备通道组配、通道声音信息组配和复合组配的功能。复合组配是将通道组配和通道声音信息组配相结合。MIDI控制器406利用来自控制处理器800、802和804的指令控制各种组配而不需要控制各个通道和通道声音信息。
一种工业标准的MIDI记录系统具有16个通道。通常每个通道一次只产生一种乐器的声音。如果把音调发生器408配置为传统的音调发生器,该音调发生器每次能产生多达16种乐器的音乐。通道声音信息是一种改变音符或个别通道发声方式的信号。换句话说,它可以是持续奏一个音符、加入混响效果等的信息。
通道组配用来调节某组乐器的参数。例如,可要求同时调节所有管乐器通道。图9是表示MIDI控制器406为进行通道组配而完成的功能的流程图。首先,选择组名(步骤902)。接着给组名指定组配到一起的通道(步骤904)。特别是,MIDI控制器406以字节串的形式存储通道组配信息。字节串中的每个逻辑“1”位表示指定给该通道组的一个特定通道。因此,如果为这一组指定了四个乐器通道,那么文件中将包含的字节串其所有位处于逻辑“0”,但是与指定通道有关的4位除外。每个逻辑“1”代表一个有关的个别通道。因此,当选择组配通道进行控制时,所有指定的各通道都接收指令。
更具体地说,将通道组配到一起可使用户只需指出通道组名和要进行的改变就可对每组乐器的特定参数进行调整,而不必分别给每个通道号指出变化。利用图形控制接口来设置通道组以输入通道组名,然后选择所需的通道,最后按下OK按钮(如图9中的流程图900所示)。例如,如果将记录系统400配置成基本上同时处理两种MIDI文件,例如MIDI源1和MIDI源2,那么每个通道组信息文件的格式是通道_组_名:字节1字节2字节3字节4,其中通道_组_名是以字符串形式输入的通道组名。四个数据字节1-4表示指定给该组的特定通道,应注意到,字节1和2控制第一MIDI文件的通道而字节3和4控制第二MIDI文件的通道。组名和通道指定之间用关闭符号“:”分开。字节1至字节4各位的定义如下:
字节1:MIDI源1的通道15-通道8,其中最高有效位(“MSB”)是通道15;
字节2:MIDI源1的通道7-通道0,其中MSB是通道7;
字节3:MIDI源2的通道15-通道8,其中MSB是通道15;和
字节4:MIDI源2的通道7-通道0,其中MSB是通道7。
对于用记录系统400进行处理的每个MIDI文件来说,通道组信息文件包括两个字节。就每个MIDI文件而言,两个字节中的每位都与该MIDI文件的一个特定通道有关。因此,如果选择某一特定通道,则把相应位设定为1,否则则将其设置为0。例如,如果一个人希望用通道组名WINDS来定义管乐乐器组,并包括下列通道:处理第一MIDI文件的MIDI源通道9、8、5、4和处理第二MIDI文件的MIDI源通道10、9、6和5,则数据格式应为WINDS:03300660。
MIDI控制器406还用与通道组配相似的方式组配通道声音信息。然而,不是将通道组配到一起,而是把通道声音信息组配到一起。这样,当将通道声音信息组送到某个通道中时,该通道几乎同时接收几个通道声音信息。利用图形控制接口单元可以把通道声音信息组配输入到MIDI控制器406中。每个通道声音信息组是两字节字串。第一字节是选定的通道声音信息,例如音符关闭、音符接通、多音键按压(polyphonic key pressure)、控制变化、程序变化、通道按压、和音调的回旋变化(pitch wheel change)。第二字节通常是由通道声音信息产生的具体音符数,虽然也允许是其它信息。通道声音信息组配结束时需要识别,在优选实施例中,组尾用控制字节0来表示。
更具体地说,通道声音信息组配能够把影响MIDI特性的某些变化组配到一起。这有利于借助控制面板和图形控制接口单元进行控制。按照与通道组配相同的方式对通道声音信息进行组配,即,输入通道声音信息组名,一一选择或输入每个通道声音信息,然后依次压下图形控制接口单元的相加键;接着,在完成设置后压下OK按钮,所经历的过程类似于图9中的流程图所示过程。一旦设置完毕,通道声音信息组配具有以下格式:通道_组_名:SBDBCBSBDBCBSBDBCB....。在这种格式中,SB是选定通道声音信息的字节1,其数字值和类目的关系为80=音符关闭,90=音符接通,A0=多音键按压,B0=控制变化,C0=程序变化,D0=通道按压,和E0=音调回旋变化。DB是选定通道语言信息的字节2,其数字值一般在00和7F之间,该值表示个别的音符。然而,对音符接通、音符关闭或多音键按压这些功能来说,数字值80表示它影响所有音符号数。控制变化的数字值是00-7F,它用于选择控制器。对通道强制和音调回旋变化来说,将数字值固定在唯一数字值0上。CB是内部控制字节。当CB为“0”时,该字节用于指示通道声音信息组的结束,否则在组中存在附加的一些SB和DB。
由于例如音乐表现力和音量经常具有内在联系,所以通道声音信息组配提高了音乐特性。通道声音信息组配的功能性使得重放能获得更有效地控制。例如,音符接通、音符关闭、呼吸控制器和表现力控制等功能之间的内在联系可以彼此结合地进行设定;然后利用下述不同的转换程序,通过调节一个控制旋钮可对这些系统参数进行同时修正。
如上所述,可以将通道和通道声音信息在复合组配中组配到一起。这样便可以用通道声音信息或通道声音信息组同时设置通道或通道组。设置的方式如下:利用图形控制接口单元输入复合组名,然后选择通道或通道组。接着,选择通道声音信息或通道声音信息组。完成这一设置后,按下OK按钮,完成与图9中的流程900相类似的过程。复合组的文件格式是:复合_组_名:CH名:CH_V_名:TAG[:CH_NAME:CH_V_NAME:TAG],其中的CH_NAME是通道组或个别通道的名称。个别通道名用SxCy定义,其中参数x等于正由MIDI控制器406处理的MIDI文件数。在优选实施例中,将记录系统400配置成处理两个MIDI文件,因此x等于1或2。参数y等于0-15范围内的值,它相当于MIDI通道数。因此,Sx表示MIDI文件源而Cy表示通道0-15。CH_V_NAME是通道声音信息组名,它的格式为SBDB,其中SBDB与上述通道声音信息组配中所述的SBDB具有相同含义。TAG等于0或1。TAG 0表示没有其它的组配串,而TAG1表示存在另一组CH_NAME:CH_V_NAME:TAG数据。
控制处理器800、802和804利用修改型或增量型控制处理来更改修正的MIDI文件402以产生经更改的MIDI文件422。增量型控制处理是这样一种处理,其中例如来自处理器800、802或804的控制信号表示从音符1到音符2的变化是滑音变化,即音符从音符1到音符2的连续渐变。因此,更改的MIDI文件422包括由管理器414加入的需要产生连续变化的附加音符。相反,根据修改型控制处理,控制信号指示的是从音符1到音符2的瞬间音符变化。在这种情况下,更改的MIDI文件422包括音符变化但不包括音符1和音符2之间的附加音符。因此,修改型控制处理并不增加MIDI文件的尺寸,而只是修改存储在文件中的MIDI事件。然而,增量型控制处理产生附加的MVE并增加了MIDI文件尺寸。
增量型控制处理可以根据几个不同的数据转换程序来进行,例如线性转换、对数转换、指数转换、和非线性变换。
线性转换程序通过控制面板或图形控制接口单元对在选定的上下范围内传输的值进行线性转换并得到输出值。线性转换设置是通过选择图形控制接口单元上的线性转换功能作为转换方法,然后手工选择上限界和下限界而完成的。随后利用外部输入值转换公式进行转换:
新_值=下_界限+(上_界限-下_界限)
V/255 (式1)其中下_界限和上_界限是输出值的预置范围,V是由控制面板或图形控制接口单元传输的值。
对数转换和指数转换程序除了它们分别使用对数和指数函数外,其它均与线性转换程序相类似。对数转换是通过下式完成的:
新_值=下_界限+(上_界限-下_限界)。
(logv/log255) (式2)指数转换是按下式进行的:
新_值=下_界限+(上_界限-下_界限)·(expv/exp255) (式3)
在公式(2)和(3)中,下_界限和上_界限是输出值的预置范围,V是由控制面板或图形控制接口单元传输的值。
非线性变换的转换对输出值和V进行一对一不规则转换。这个方法是通过选择控制面板或图形控制接口单元上的非线性变换法然后顺序输入与原始值相应的变换值0-255而输入的。这个方法最灵活,但是需要输入每个变换值。
在MIDI文件418上进行的预处理和在修正的MIDI文件420上进行的控制处理产生了经更改的MIDI文件422。由于预处理和控制处理除了提高接口系统的传输能力之外,还增加了MIDI文件的尺寸,所以用数据优化器416优化更改的MIDI文件422以便产生适合广播的优化MIDI文件424。各种优化方法都是有效的。然而,令人满意的优化方法包括广播用的运行状态优化和处理流程。
图10中示出了一个优化过程的实例。图10是运行状态优化方法的流程图1000。首先,数据优选器416重新组织更改的MIDI文件422从而使由状态字节和数据字节构成的包含相同状态字节的MVE按序排列(步骤1002)。接着,数据优化器416删除相同状态字节外的所有字节(步骤1004)。如果传输的文件尺寸不超过传输容量(步骤1006),则传输该文件(步骤1014)。然而,如果传输的文件超出传输容量(步骤1006),则从该文件中移出最后一个通道声音信息变化,而将其存储以便稍后传输(步骤1008)。如果传输的文件仍然超出传输容量(步骤1010),则存储某些MIDI事件以便秀后传输(步骤1012)。在存储连续的MIDI事件以供稍后传输的事件中,如果下一个MIDI事件与当前存储并供稍后传输的另一个MIDI事件具有相同的状态字节,那么下一个MIDI事件将改写当前存储的MIDI事件。
为了对修正的MIDI文件进行实时控制,MIDI控制器406设有MIDI输出接口电路1100。图11表示MIDI输出接口电路1100。电路1100含有包括例如石英晶体振荡器的振荡源电路1104和计数器1106的时基发生电1102。电路1104可以设置成由2MHz振荡器驱动的时钟电路以提供时钟信号CLK。由振荡源电路1104驱动的计数器1106提供计数信号CT。例如,可以将计数器1106设置成20比特的长度,每300毫秒返回到“0”和复位。电路1100还包括MIDI时间信号发生电路1108。电路1108包括:中断寄存器1110,它用于在下一次系统中断之前保持代表时间的8比特值;时钟信号SPP寄存器1112,用于存储MIDI信号源应产生同步信号的时间;滴嗒高时间(tick high time)TKH寄存器114,用于存储MIDI信号源应传输MIDI信号的时间。电路1108还包括译码器1116,该译码器接收来自相关主计算机1118中的微处理器的指令并把微处理器输出的数据写入寄存器1110、1112和1114。电路1108还包括与其他耦合的信号发生器电路1120,用于接收保持在寄存器1110、1112和1114中的电流值和作为计数器1106当前值的计数信号CT。信号发生器电路1120包括比较电路,该比较电路把保持在每个寄存器1110、1112和1114中的值与计数信号CT相比较。当寄存器1110中的值与计数器信号CT相符时,比较电路触发信号发生器1120产生信号INT;当寄存器1112的值与计数信号CT相符时,产生信号SPP,而当寄存器1114的值与当前信号相符时,产生信号TKH。
电路1100还包括含有缓冲存储器1142和MIDI信号发生器1144的MIDI信号发生电路1140。耦合的缓冲器1142用以接收来自主计算机1118中存储器1146的优化MIDI文件。MIDI信号发生电路1140完成的功能是将优化的MIDI文件和从MIDI时间信号发生电路1108输出的同步信号合并而且以MIDI输出信号串的形式传输合并的数据。
工作时,主计算机1118中的微处理器把存储在存储器1146中的优化MIDI文件传输到缓冲器1142。当时间信号发生电路1108产生TKH信号和该信号被MIDI信号发生电路1140接收时,MIDI信号发生器1144开始从缓冲器1142中检索MIDI信号并以串行的形式将其输出。MIDI信号发生器1144响应所产生的SPP信号在串行的MIDI信号中插入1字节F8H。这一字节用于使接收串行MIDI信号的MIDI声组件同步。
主计算机1118中的微处理器周期性地把代表下一次中断中计算机1118的时间值存储到中断寄存器1110中。接着,在计数信号CT等于中断寄存器1110中的值而使信号发生器1120产生INT信号时,通过向缓冲器1142传输附加的MIDI数据而使主计算机1118中的微处理器作出响应。这样便确保了MIDI信号发生器1144连续地产生串行的MIDI信号。
总之,按照本发明构成的记录系统提高了用户控制MIDI文件参数的能力。控制能力的提高主要是由能修正MIDI文件的预处理器实现的,所述MIDI文件可按三种格式中的任何一种格式存储成单一的修正格式。作为预处理的一部分,删除存储在MIDI文件中但对再现功能无用的信息。由于具有标准格式和较少额外数据的修正MIDI文件比非修正MIDI文件对预定控制处理器、手动控制处理器和软件控制处理器(这些处理器均受控制处理管理器的管理)提供的实时参数调整更敏感,所以可以获得实际的功能提高。
实时参数调整包括两种类型。一种类型可以增加MIDI文件中的数据,而另一种实时参数调整可修改MIDI文件中现有的数据。为了确保在MIDI文件中增加数据不会超出记录系统的传输能力,在记录系统中设置了数据优化器。
每个控制处理器都能逐个通道地调节MIDI文件参数;然而,根据本发明的另一个方面,通过提供由用户选择待组配通道、待组配的通道声音信息或它们的任何组合的处理,进一步提高了记录系统实时控制的能力。由于改变一组参数会影响到几个通道或通道声音信息,所以组配可提高实时控制的能力。
此外,按照本发明构成的记录系统能够几乎连续地处理MIDI文件。为了连续处理MIDI文件,记录系统配备了输出接口电路。输出接口电路产生用于协调MIDI文件传输的时序信号。
按照本发明构成的记录系统通过预处理减小了记录系统处理的数据量,又通过通道组配、通道声音信息组配、和复合组配减少了通道和通道声音信息指令的数量。由于减少了数据和指令量,所以减少了在再现MIDI文件时所需的处理时间和处理资源。
很显然,对于熟悉本领域的技术人员来说,在不脱离本发明的范围和构思的情况下,可以对本发明的方法和优选实施例的结构作出各种修改和变动。对熟悉本领域的技术人员来说,很显然,在本文所述的发明内容和实践的基础上可以得到本发明的其它实施例。本文的说明和举例只是作为例子,本发明的真正范围和构思体现在以下的权利要求中。