CN1159637A - 产生乐音的方法和装置 - Google Patents

产生乐音的方法和装置 Download PDF

Info

Publication number
CN1159637A
CN1159637A CN96123141.6A CN96123141A CN1159637A CN 1159637 A CN1159637 A CN 1159637A CN 96123141 A CN96123141 A CN 96123141A CN 1159637 A CN1159637 A CN 1159637A
Authority
CN
China
Prior art keywords
musical sound
waveform
look
sampling data
produces
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.)
Granted
Application number
CN96123141.6A
Other languages
English (en)
Other versions
CN1141695C (zh
Inventor
向佑弘
神谷了
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=18401130&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1159637(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Yamaha Corp filed Critical Yamaha Corp
Publication of CN1159637A publication Critical patent/CN1159637A/zh
Application granted granted Critical
Publication of CN1141695C publication Critical patent/CN1141695C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

在乐音波形采样数据由软件在运算上形成的情形下,在操作系统的虚拟装置驱动器程序内安装用于转换所接收的MIDI事件为乐音产生器控制数据的MIDI处理程序和用于在运算上形成一帧的乐音波形采样数据的波形形成处理程序。该MIDI处理程序是由响应从诸如定序器软件程序等应用软件程序所产生的MIDI事件而产生的软件中断信号被触发的,而波形形成处理程序是由在完成一帧的乐音再生时所产生的硬件中断信号触发的。

Description

产生乐音的方法和装置
本发明涉及用于通过在运算处理器上执行乐音产生程序而在运算上形成乐音波形的乐音产生方法,并涉及基于该乐音产生方法的乐音产生装置。
今天已知的乐音产生装置,其典型的例子包括MIDI(乐器数字化接口),用于通过键盘或者定序器输入演奏信息的演奏输入部分,用于产生乐音波形的乐音产生部分,以及用于根据输入的演奏信息控制乐音产生部分的中央处理器(CPU)。该CPU根据所输入的演奏信息执行各种乐音产生器驱动器的处理,诸如频道分配和参数转换,并与乐音产生开始(开始符)指令一同提供带有转换参数的指定频道。乐音产生器部分基于所提供的参数形成乐音波形并由诸如电子电路等硬件实现。于是,传统的乐音产生装置只是作为乐音产生的专用装置操作,并且当要产生人工乐音时总是必须使用这种专用装置。
近来已经提出了一种乐音产生方法,其中使用基于计算机程序(软件乐音产生器)处理的乐音产生器代替传统的硬件乐音产生器,并且演奏处理和乐音产生器处理均由CPU执行。类似于上述的乐音产生器驱动器处理,演奏处理基于接收的MIDI信息或者其它演奏信息而生成乐音控制信息。另一方面,乐音产生器处理基于由演奏处理所生成的控制信息而形成乐音波形采样数据。利于这种乐音产生方法,不需要任何专用的乐音产生装置而仅装设一个CPU,软件程序和数模(D/A)转换器即可产生乐音。
为了产生乐音必须在每一个采样周期即D/A转换器的每一转换定时向D/A转换器提供波形采样数据。根据上述传统的乐音产生方法,CPU通常执行演奏处理,诸如检测被按动的键。但是为了对于多个乐音产生频道在运算上形成一个波形采样数据,每一采样周期CPU中断演奏处理以便执行乐音产生器处理,并然后在采样数据形成之后返回演奏处理。
然而在以上传统的乐音产生方法中,在每一采样周期对于频道实际执行波形形成计算之前,CPU必须把用来对每一频道进行先行计算的各种数据从存储器向预定的寄存器转移;在完成了计算之后,CPU必须保存寄存器的内容到存储器供执行下一次计算。即,由于在传统的乐音产生方法中对于每一频道乐音波形采样数据在运算上是逐个采样形成的,故大量的时间要花费在准备操作上而不是乐音形成本身,其结果是计算效率和响应不好并使得乐音产生处理明显滞后。结果是不能向波形形成计算分配足够的时间。
诸如MIDI定序器软件或者游戏软件,用于以MIDI事件信息或者其它演奏信息提供这种软件乐音产生器的应用程序,是设计在普通的操作系统(OS)之下操作的。当软件乐音产生器要由MIDI定序器软件所生成的MIDI事件信息驱动时,定序器软件本身除非有OS运行,否则是不能被激活的;然而,这种情形下必须以稳定的方式与OS同时操作该软件。于是,在普通的OS之下实时操作上述的软件乐音产生器是困难的。
例如,使用基于非完全的(非抢先的)多任务模式的OS,除非正在被执行的特定任务返回控制给OS,否则任何其它任务不能执行。于是软件乐音产生器有时不能在预定的时间区间执行,于是乐音波形采样数据可能不能在每一采样周期稳定地输出。
而且,演奏信息(MIDI事件信息)是由演奏者的演奏操作或者由定序器通过事件的再生产生的,而所产生的演奏信息由上述演奏处理进行处理。即,每当产生演奏信息时,CPU除了正常的乐音产生器处理之外还必须执行演奏处理;于是,由于非周期地产生的演奏信息,要执行的计算量暂时增加到相当的程度。然而,由于乐音产生器处理不论演奏信息出现/不出现而提前于演奏处理周期地执行的,故演奏处理在某些情形下可能显著地被延迟。
避免上述演奏处理时间延迟的一个方法可以是向演奏处理而不是乐音产生器处理给出较高的提前量。但是这一方法的结果会是乐音产生器处理不稳定的操作,诸如所产生的乐音数暂时降低或者所形成的乐音波形中的不必要的暂时断开。特别地,这种不稳定的乐音产生器处理的操作将在实时演奏中变为严重问题。
此外,传统的软件乐音产生器在实际使用之前需要各种设置操作,因为使用传统的硬件产生器的软件乐音产生器不能仅运行应用软件程序即对应用程序不作出任何具体的改变而被驱动。
于是本发明的一个目的是提供一种能够以有效而稳定的方式执行波形形成计算的乐音产生方法和装置。
本发明的另一目的是即使当处理量暂时增加也允许稳定的乐音产生器处理。
本发明的又一目的是提供一种而无需对应用程序作出改变而能够运行应用传统的硬件产生器的应用软件程序的软件乐音产生器。
为了实现上述目的,本发明提供了用于以基于预定的操作系统的运算处理装置而执行的乐音产生方法,该方法包括:一个第一步骤,该步骤响应当演奏信息从应用程序输出时所产生的第一中断信号而产生对应于演奏信息的乐音控制信息;一个第二步骤,该步骤响应在检测到存储在缓冲存储器中的乐音波形采样数据的数目降低时所产生的第二中断信号共同而形成多个乐音波形采样数据并向缓冲存储器存储所形成的乐音波形采样数据;以及一个第三步骤,该步骤在每一采样周期从缓冲存储器读出乐音波形采样数据之一以便向数/模转换器顺序地发送读出的乐音波形采样数据。
上述的第一和第二步骤是作为预定操作系统的虚拟装置驱动器而实现的。第二步骤中断信号在检测到预定数目的波形乐音采样数据已经向数/模转换器发送时产生的。
本发明还提供了乐音产生装置,该装置包括:一个存储装置用于在其中存储预定的操作系统和应用程序;一个缓冲存储器用于在其中存储运算形成的乐音波形采样数据;一个输出电路用于在每一采样周期从缓冲存储器读出乐音波形采样数据之一以便顺序地发送读出的乐音波形采样数据;一个第一中断产生部分用于当演奏信息从应用程序输出时产生第一中断信号;一个第二中断产生部分用于在检测到存储在缓冲存储器中的乐音波形采样数据的数目降低时产生一个第二中断信号;一个控制信息产生部分,用于响应第一中断信号而产生对应于从应用程序输出的演奏信息的乐音控制信息;以及一个乐音波形形成部分,用于响应第二中断信号共同形成多个乐音波形采样数据并存储所形成的乐音波形采样数据到缓冲存储器。
以上的控制信息产生部分和乐音波形形成部分包含在预定的操作系统的虚拟装置驱动器之中。
为了更好地理解本发明的上述和其它特点,以下将参照附图详细说明本发明的较佳实施例,其中:
图1是一框图说明用来实现本发明的乐音产生方法的乐音产生装置的示例性结构;
图2的图示说明用于实现图1中所示的乐音产装置的软件模块构成;
图3是一流程图表示使用本发明的乐音产生方法的软件乐音产生器中所执行的各种处理;
图4是一框图表示本发明示例性的处理流程;
图5是一框图表示运算上形成的乐音波形数据的示例性的流程;
图6A是表示DMAC操作的流程图;
图6B的图示表示DMA缓冲器结构的一例;
图7A是一框图说明MIDI处理和波形形成处理的操作时序;
图7B以例子的方式说明如何删除波形形成;
图8A的图示说明本发明的一个修改形式;以及
图8B的图示说明本发明的另一个修改形式。
图1是一框图说明用来实现本发明乐音产生方法的乐音产生装置17的实施例。
图1所示的乐音产生装置17包括:一个诸如微处理器的中央处理器(CPU)1,该CPU执行应用程序和各种运算操作以便在运算上形成乐音波形采样数据等;一个在其中已经存储了预置的音色数据等等的只读存储器(ROM)2;一个具有用于CPU1的工作存储区,和诸如音色数据存储区域,频道寄存器区域及输出缓冲区域的随机访问存储器(RAM)3;一个用于指示当前时间并向CPU1指定定时器中断时序的定时器4;一个MIDI接口5,通过该接口MIDI事件信息向装置17输入,并且响应MIDI事件信息所生成的MIDI事件从装置17输出;以及一个类似于普通个人计算机的,具有英文和日文字母键,数字键,符号键等的键盘6。如业内所知,MIDI是MusicalInstrument Digital Interface(乐器数字化接口)的缩写。
乐音产生装置17还包括:一个显示器(监视器)7,用户通过该显示器可以与装置17对话;一个硬盘(HDD)8,在其中安装了各种应用程序,诸如用于产生乐音的定序器软件程序和游戏软件程序,还有预先存储在其中用来在运算上形成乐音波形采样数据的乐音波形数据;以及直接存储访问控制器(DMAC)10,该控制器无需CPU1的任何干预而允许从由CPU1指定的RAM3的区域(DMA缓冲器)之一以预定的采样频率(例如48kHz)直接转移乐音波形采样数据到声音输入/输出电路(CODEC)11的数字-模拟(D/A)转换器(DAC)。
称为CODEC的声音输入/输出电路11包含D/A转换器,一个模拟到数字的转换器A/D,一个连接到该A/D转换器的输入FIFO(先入先出)缓存器,以及一个连接到该D/A转换器的输出FIFO缓存器。在声音输入/输出电路(CODEC)11中,输入FIFO缓存器响应从采样时钟产生器12所馈送的频率Fs的采样时钟脉冲通过外部音频信号输入电路13接收由A/D转换器所转换的音频输入信号。而且,输入/输出电路11响应采样时钟脉冲从DMAC10读出写入的波形采样数据到输出FIFO缓存器,并逐个采样地(每次一个采样)供给读出的波形采样数据到D/A转换器。当任何数据出现在输入FIFO缓存器并在输出FIFO缓存器中有任何空间时,声音输入/输出电路11操作向DMAC10输出数据处理请求信号。
采样时钟产生器12如上所述向声音输入/输出电路11供给频率Fs的采样时钟脉冲。外部音频信号输入电路13的输出连接到声音输入/输出电路11的A/D转换器。声音系统14连接到输入/输出电路11的D/A转换器输出,并每一采样周期可听到地再生或者发声从D/A转换器供给的模拟乐音信号。进而,标号15是用于驱动软盘的软盘装置,而16是用于在上述的装置组件之间转移数据的总线。
在硬盘8中,可能存储有各种数据,诸如自动演奏数据与和声进行数据,以及用于实施本发明的操作程序。通过在硬盘8中而不是在ROM2中预存操作程序并加载该操作程序到RAM3,CPU1可按照操作程序如同存储在ROM2中完全相同的方式操作。这大大方便了操作程序的版本更新,操作程序的补充等等。CD-ROM(小型盘)可用作为可拆装的外部记录媒体用于记录各种数据诸如自动演奏数据,和声进行数据和乐音波形数据与可选操作或者应用程序。这种存储在CD-ROM中的操作程序和数据可由CD-ROM驱动器18读出以便转换为硬盘8中的存储。这方便了操作程序的安装和版本更新。可拆装外部记录媒体可以是CD-ROM以外的记录媒体诸如软盘和磁光盘(MO)。
通信接口19可连接到总线16使得装置17能够通过接口19连接到通信网络28诸如LAN(局域网),国际互联网和电话线网络,并通过通信网络28还可连接到适当的服务器计算机29。这样,在操作程序和各种数据不包含在硬盘8中的情形下,这些操作程序和数据可从服务器计算机29接收并下载到硬盘8。这种情形下,作为“客户机”工作的乐音产生装置17通过通信接口19和通信网络28发送命令请求服务器计算机29下载操作程序和各种数据。对此命令响应,服务器计算机29通过通信网络28向乐音产生装置17传送所请求的操作程序和数据。乐音产生装置17通过通信网络19接收操作程序和数据并存储这些到硬盘8而完成必要的下载。
还应当理解,这里的乐音产生装置17可通过在市售的个人计算机中安装对应于本发明的操作程序和各种数据而实现。这种情形下,对应于本发明的操作程序和各种数据可由个人计算机可读取的记录媒体诸如CD-ROM或者软盘记录形式提供给用户。在个人计算机连接到通信网络诸如LAN,则操作程序和各种数据可通过类似于上述的通信网络提供给个人计算机。
一些情形下,除了CD-ROM驱动器18之外的一个或者多个用于驱动记录媒体的外部驱动器可以与乐音产生装置17连接,诸如MO(磁光盘)驱动器。
以上述方式设置的乐音产生装置17可使用诸如个人计算机或者工作站等通用计算机以实现本发明的乐音产生方法。
图2是表示用于实现图1中所示的乐音产生装置17的软件模块构成的一例的图示。图2中的示例在以下是假设“Windows95”(“Windows95”是美国微软公司的注册商标)作为操作系统而进行说明的。这一操作系统中,每一应用程序是在对应于操作系统的虚拟机(VMs)环境下运行的。这里所使用的Windows虚拟机(Windows VMs)是指运行应用程序的上下文,而Windows的上下文包括应用程序可寻址的存储映射,硬件寄存器的内容,及分配给应用程序的Windows资源。该示例包括两个Windows VMs,系统VM 20和MS-DOS VM 30。
在图2的示例中,系统VM 20和MS-DOS VM 30是环3的组件。如所示,应用程序21,23和24在系统VM 20中提供,而应用程序21是Windows95可以32位代码操作的程序(Win 32应用程序),这里假设该程序已经安装在表计算程序中。在地址空间22中,提供了作为Windows应用程序的定序器程序23和字处理器软件24。在系统VM 20中,还提供了对于Windows的系统服务组件25,它包括各种驱动器软件26和硬件I/O寄存器27。
进而,在MS-DOS VM 30中,安装了MS-DOS的应用程序诸如for MS-DOS的游戏应用程序,并准备了MS-DOS环境诸如for MS-DOS的驱动器软件32和硬件I/O 33。游戏应用程序31设计为通过MIDI产生乐音,诸如效果声音。
在环0中,提供了包括文件管理系统的for Windows95的基本系统部分40,这包括OS核心部分41,虚拟装置驱动器42和管理软件47。
虚拟装置驱动器42包括多个虚拟装置驱动器程序,诸如在43到45所示的支持程序1-支持程序n,和软件乐音产生器(T.G.)支持程序46。这些虚拟装置驱动器程序为32位保护模式的程序模块提供对应于各种软件和硬件中断信号各种服务并以处理器的优先级Ring0操作。
响应来自各种虚拟机(VMs)的各种软件中断信号和来自各种硬件组件的各种硬件中断信号的每一个,核心部分41运行对应于该中断信号的任何虚拟装置驱动器程序。
进而在图2中,标号50表示各种硬件组件诸如上述的声音输入/输出电路(CODEC)11和MIDI接口5。来自这些硬件组件的每一个中断信号由核心部分41接收,使得对应的处理由对应于所接收的中断信号的任何支持软件43到45及软件乐音产生器支持程序46执行。
通常提供虚拟装置驱动器(VxD)以便使得多个虚拟计算机(VM)共享装设在个人计算机中的硬件资源,并且它们进行管理以至于应当允许哪个(一个或者多个)虚拟机使用硬件资源。在这结束时,在虚拟机与硬件组件之间提供虚拟装置驱动器,以便检测何时任何虚拟机中的装置驱动器之一正在访问对应于硬件组件的地址,由此其作用是作为访问硬件组件的中介。虚拟装置驱动器VxD还向在对应的虚拟机中的装置驱动器传送来自任何硬件组件的输出。
正如前面所述,虚拟装置驱动器42包括软件乐音产生器支持程序46,该程序包含稍后所述的MIDI处理程序和波形形成处理程序。这一软件乐音产生器支持程序46设计成模拟实际上并不存在的乐音产生器硬件,而不是作为上述访问的中介。通过这样作,可以获得这种情形,其中虚拟机不能识别个人计算机是否实际上装有硬件乐音产生器。即,像硬件乐音产生器操作那样允许每一虚拟机使用软件乐音产生器。
图3是表示使用本发明的乐音产生方法的软件乐音产生器中所执行的主程序的流程图。
在软件乐音产生器启动时,在步骤S1执行各种初始化处理,诸如用于保证RAM3中的各种缓存区域,向虚拟装置驱动器部分42加载软件乐音产生器支持程序46(包括MIDI处理程序和波形形成处理程序),设定由直接存储器访问控制器DMAC10进行的数据转移,并设定来自诸如声音输入/输出电路(CODEC)11的硬件组件的中断。在下一步骤S2,为软件乐音产生器准备显示屏幕。然后,主程序进行到步骤S3检验任何预定的触发因素在步骤S3是否已经出现并在步骤S4判定触发因素是否存在。如果任何触发因素已经出现,则主程序进到步骤S5;否则主程序返回到步骤S3重复步骤S3和S4的操作。
在步骤S5,判定哪一个触发因素已经出现,并在以下步骤中,根据所识别的触发因素执行不同的操作。根据本实施例,被识别的预定的触发因素为:
(1)来自定序器软件等的MIDI事件的输出;
(2)完成一帧的波形采样数据的再生(即向D/A转换器的输出);
(3)通过操作面板的输入,命令输入或者等等所作的请求;以及
(4)通过终止命令输入等等所作的终止请求。
如稍后所述,来自以上项目(1)(触发因素1)的定序器软件等的MIDI事件的输出是作为软件中断信号被通知的,而对于在项目(2)一帧波形采样数据再生完成(触发因素2)是作为来自声音输入/输出电路11或者DMAC10的硬件中断信号而通知的。通过键盘6,操作面板或者显示器7的窗口屏幕由用户输入的项目(3)和(4)(触发因素3和4)的请求受到由Windows系统服务组件25中程序的服务。对应于触发因素1和触发因素2的操作以优先于对应于触发因素3和触发因素4的操作被执行。
当在步骤S5判定来自定序器软件等的(触发因素1)的MIDI事件的输出已经出现时,MIDI处理(MIDI解释处理)在步骤S10作为虚拟装置驱动器执行。在这一MIDI处理中,响应来自诸如定序器或游戏软件的乐音产生应用程序的MIDI事件输出而执行音符接通,音符断开,程序变化,控制变化,系统排斥或其它操作。
如果所产生的MIDI事件是音符接通事件,向波形形成处理操作的乐音产生频道之一指定一个新乐音的产生作为一个乐音产生器,并准备乐音控制数据及在指定的乐音产生频道中要使用的音符接通数据。即,接收输出的MIDI事件的音符数NN和速度数据VEL,并且音符数NN指定给乐音产生频道(CH)之一,对应于已经接收到音符接通事件的MIDI频道,根据乐音数NN和速度数据VEL的值由处理音色数据所获得的乐音产生数据被设置到用于所指定的乐音产生频道的频道寄存器。
如果产生的MIDI事件是音符断开事件,乐音产生频道之一被标识,这使得音符断开事件的音符数NN发声,并复位用于标识的频道的音符接通标志。
在完成步骤S10的MIDI处理之后,主程序进到步骤S11,其中在显示器7上作出可视的标识表示MIDI事件已经被接收。然后,主程序返回到步骤S3以等待任何触发因素的下一次的出现。
如果在步骤S5所标识的触发因素是对于一帧的波形采样数据再生的完成(触发因素2),在步骤S20作为虚拟装置驱动器正如MIDI处理那样执行波形形成处理。设计这一波形形成处理是为了模拟硬件乐音产生器的功能,并基于由MIDI处理所产生的乐音控制信息在运算上对一个单一帧周期共同地或者集体地形成乐音波形采样数据。这样形成的乐音波形采样数据暂存到输出缓存器。
在步骤S20的波形形成处理启动时,作出各种准备以便对于在计算顺序中第一位置给出的乐音产生频道(CH)之一在运算上形成第一乐音波形采样数据。这种准备(即,计算准备)涉及准备各种数据的操作,这些数据有最后读出的地址,包络波形(以下简称为“EG”),EG的状态(建立状态,释放状态等等),低频振荡器(以下简称为“LFO”)信号的数值等等,使得这些数据易于提供给乐音波形采样数据计算中使用,这种准备还涉及向CPU1的内部寄存器加载各种数据的操作。然后,对于LFO,滤波器包络波形(以下简称为“FEG”)及乐音音量包络波形(以下简称为“AEG”)进行波形计算,以便形成对于单个帧周期算术运算必要的LFO波形,FEG波形及AEG波形的采样数据。LFO波形加到“F”数,FEG波形和AEG波形以便调制各个数据。
这之后,F数反复加到最后的地址值使得在单一信号帧周期之内产生每一波形采样数据的读地址。基于所产生的读地址的整数部分从音色数据存储区域的波形存储地址单元读出波形采样数据,并在读出的波形采样数据之间基于所产生的读地址的分数部分而进行插入。如果单一帧周期对应于64个采样的时间,那么在每一单位时间共同处理64个采样数据。在对于对应于单一帧周期的多个采样数据进行处理时,基于读地址所读出的采样数据和后继的插入是作为一个单元操作而执行的,并且这一单元操作自动地反复进行,使得读地址只需向CPU寄存器一次读出,这将显著增加处理速度。
然后,进行音色滤波器处理以便对于单一帧周期基于FEG波形实现插入的采样数据的音色控制,并基于AEG和乐音音量数据进而对滤波的采样数据进行振幅控制处理。此后,进行累加写处理,其中对帧周期振幅被控制的乐音波形采样数据加到输出寄存器中已经存储在各个采样地址单元的数值(即,一个或者多个其它乐音产生频道对应的采样数据的累加数值)。本实施例中,振幅控制处理和累加写处理是顺序进行的,使得采样数据必须存储到CPU寄存器中的次数显著降低,而处理速度也显著增加。
然后上述的处理,从计算准备到累加写处理,对于其它在计算顺序上给出第二和后继位置的乐音产生频道相继地进行。
当乐音波形形成处理完成时,输出缓存器已经在其中累加了对于一帧周期在所有指定的频道中形成的乐音波形采样数据的数值(例如64个采样数据)。
如果在步骤S5标识的触发因素是通过操作面板输入,命令输入等等(触发因素3)的请求,则主程序进到步骤S30的“其它处理”,其中根据请求执行各种操作。例如,响应由用户或人工操作者通过操作面板所作的请求或命令输入,执行各种操作以设置乐音产生频道的具体数目,采样频率和在软件乐音产生器中要使用的输出缓存器的容量(这一容量对应于一帧周期)。这些设置和其它信息在步骤S31可视地表示在显示屏幕上,并然后主程序S3返回到步骤S3。
如果在步骤S5标识的触发因素为通过输入的终止命令等等所作的终止请求(触发因素4),则主程序进到步骤S40终止该处理,然后在步骤S41删除有关软件乐音产生器的可视显示的信息,并返回到步骤S3。
图4是表示当上述软件乐音产生器用来产生乐音时各种信号数据流的流程图。这里假设乐音产生软件为图2的定序器软件23并且实时演奏通过使用定序器软件执行。设计定序器软件23以便接收来自键盘6或MIDI接口5的演奏信息并响应接收的演奏信息输出对应的MIDI事件数据。
首先,定序器软件23对应于要产生的乐音向驱动软件组26中的MIDI驱动器发送MIDI事件数据。这是通过调用所述的虚拟机的乐音产生器API(应用编程接口)并产生软件中断信号而进行的。MIDI驱动器通过乐音产生器API转移MIDI消息到虚拟装置驱动器,使得作为虚拟装置驱动器加载的MIDI处理程序(步骤S10)被激活而产生对应于MIDI消息的乐音控制数据并对所述的乐音产生频道设置所产生的数据到乐音产生器寄存器。当对一帧完成了乐音再生时硬件中断信号从CODEC11产生,波形形成程序(步骤S20)被激活以便如前所述对于一帧在运算上形成波形采样数据,并且这样所产生乐音波形采样数据存储到输出缓存器。然后这样存储在输出缓存器对于一帧的波形采样数据被转移到DMA缓存器。然后,在DMAC10的控制下,波形采样数据从DMA缓存器读出,按每一采样周期一个采样,并提供给D/A转换器。从D/A转换器输出的模拟信号通过声音系统14被可听见地再生。
以下各节说明一个例子,其中在MS-DOS VM 30中的游戏软件是具有使用MIDI适配乐音产生器而产生乐音的功能的程序。首先,游戏软件31向在MS-DOS VM 30中的MIDI驱动器32发送对应于要产生的乐音的MIDI事件数据,并且MIDI驱动器32向硬件寄存器33写入MIDI事件数据。因为对于从环3的任何程序到硬件寄存器33的直接访问设置了一个陷波器,故软件中断信号是在检测到向硬件寄存器33的写访问时产生的,于是控制向环0转移以激活对应于陷波器起因的虚拟装置驱动器。
在所使用的个人计算机装有通常硬件乐音产生器的情形下,装有对应于该硬件乐音产生器的虚拟装置驱动器,并且对于该硬件乐音产生器的这一虚拟装置驱动器被激活。因为硬件乐音产生器通过虚拟装置驱动器被激活,它可在多个虚拟机中共享。
另一方面,在所使用的个人计算机没有装硬件乐音产生器的情形下,软件乐音产生器支持程序46,虚拟装置驱动器之一,被激活以便向MIDI处理程序发送MIDI事件数据(步骤S10)。此后,以上述方式进行乐音产生处理。这样,从应用程序来看,与使用的个人计算机装有硬件乐音产生器完全相同方式,乐音产生处理由软件乐音产生器执行,而不要求对程序等等的任何改变。
现在参见图5和6,将说明一个示例方式,其中由步骤S20的波形形成部分运算形成的乐音波形采样数据从D/A转换器输出供可听见地再生。
如图5所示,在上述直接存储访问控制器(DMAC)10中装有指针寄存器101,指示DMA缓存器60中的数据读地址p。在声音输入/输出电路(CODEC)11中,装有用于在其中存储从DMA缓存器60读出的乐音波形采样数据的输出FIFO缓存器111,D/A转换器112,一个用于检测在输出FIFO缓存器111中是否有任何空白空间的空白空间检测部分113,以及转移数据数目检测部分114,用于检测何时从FIFO缓存器111到D/A转换器112转移的波形采样数据的数目已经达到预定数值并向CPU1输出一硬件中断信号。虽然没有具体表示出,该DMAC10还包括音频信号从外部音频输入电路13向其输入的一个输入FIFO,一个用于转换来自输入FIFO的输出信号的A/D转换器。
采样时钟产生器12产生提供给FIFO缓存器111和转移数据数目检测部分114的频率为Fs的采样时钟脉冲。为在其中存储由步骤S20的波形形成处理运算形成的乐音波形采样数据而装设的DMA缓存器(DMAB)60包括第一和第二缓存器DMAB1和DMAB2。每一缓存器DMAB1和DMAB2具有在其中存储对应于一帧周期的乐音波形采样数据规定数目的容量,使得当乐音波形采样数据从缓存区域之一(例如DMAB1)被读出时,在步骤S20运算形成的乐音波形采样数据被存储到另外的缓存区域(例如DMAB2)。注意,DMA缓存器的数目可以是三个或者更多个而不仅是两个。
作为一个虚拟装置驱动器而装设的软件乐音产生器支持程序46包含如上所述的MIDI处理部分(步骤S10)和波形形成部分(步骤S20),并且波形形成计算是通过使用存储在波形数据存储器(波形存储器)70中的波形采样数据的波形形成部分而执行的。
如上所述,一旦MIDI事件从执行演奏处理的应用程序出现,就产生一个软件中断信号,软件乐音产生器支持程序46中的MIDI处理部分(步骤S10)对此响应而被激活,并且对应于该MIDI事件的乐音控制参数被存储到乐音产生器寄存器。另一方面,通过由来自CODEC11的硬件中断信号被激活,波形形成部分(步骤S20)运算上形成在多个乐音产生频道(最大为32频道)中对一帧周期的预定数目的(例如64个)波形采样数据。并累加这些数据以产生用于在输出缓存器中对于一帧周期的波形采样数据。在完成波形形成计算时,在输出缓存器中所产生的波形采样数据被转移到DMA缓存器区之一(在图5的例子中是DMAB2)。
乐音波形数据从DMAB 60转移到声音输入/输出电路(CODEC)11的FIFO缓存器111供暂存在此。响应以48kHz频率所产生的每一个采样时钟脉冲,乐音波形采样数据之一从FIFO缓存器111读出并转移到D/A转换器112。该D/A转换器112转换所提供的乐音波形采样数据为模拟电压信号。该模拟电压信号被送往声音系统14,在此它通过低通滤波器由一个放大器放大并被可听见地再生或通过扬声器发声。
由采样时钟产生器12所产生的采样时钟脉冲还馈送给转移数据数目检测部分114,由此该检测部分114计数从FIFO缓存器111到D/A转换器112所转移的波形采样数据的数目。一旦检测到从FIFO缓存器111到D/A转换器112所转移的波形采样数据的数目已经达到对应于一帧周期的数值,转移数据数目检测部分114向CPU1发出一个硬件中断信号。如上所述,这一硬件中断信号由环0的核心部分41接收,并且这样波形形成部分(步骤S20)在软件乐音产生器支持程序46中被激活。
一旦与FIFO缓存器111连接的空白空间检测部分113检测到用于数据存储可得到的空白空间在FIFO缓存器中已经产生,则113部分向DMAC10输出DMA请求信号DMAreq。
图6A为表示DMAC10操作的流程图。当在CODEC11中的空白空间检测部分113输出DMA请求信号DWAreq时,DMAC10进到步骤S100,在此它读出在DMA60中由指针寄存器101的当前数值p所指示的地址处所存储的乐音波形采样数据,并且转移该读出的采样数据到FIFO缓存器111。在下一步骤S110,DMAC10使得指针寄存器101的数值p增量并然后终止对应于DMA请求信号DMAreq的处理。
这样,每当在缓存器11中检测到空白空间,则乐音波形采样数据从DMAB60被转移到FIFO缓存器111。
图6B是表示DMBA60的结构的一例的图示,其中在RAM3中的从开始地址“b”到结束地址“b+n-1”范围的n-字块用作为DMAB60。该字块被分为用作为第一和第二DMA缓存器区域DMA1和DMA2的两个区域。在所表示的例子中,该n-字块被分为阴影区域和非阴影区域,使得当DMAC10从阴影区域(DMA1)读出乐音波形数据时,运算上所形成的乐音波形数据可写入以地址“a”开始的其余的n/2-字区域(DMA2)。一旦写地址“a”或者读地址“p”达到DMAB60的结束地址b+n-1时,它返回到开始地址“b”。
图7A是表示上述MIDI处理(步骤S10)和波形形成处理(步骤S20)的操作定时的图示说明,其中水平轴(横坐标)是时间轴。根据本发明,如上所述,波形形成计算是逐帧执行的。图7A中,从时间“ta”到“tb”的周期Ta,从“tb”到“tc”的周期Tb,从“tc”到“td”的周期Tc都是帧。在图的顶行中每一方向向下的箭头表示当软件中断信号是基于从一个诸如定序器软件的应用程序所产生的MIDI事件而产生时的定时;在所示的例子中,软件中断信号是在周期Ta内的时间点t1和t2处以及在周期Tb内的时间点t3处产生的。
在图7A的下一行中,表示出当执行MIDI处理(步骤S10)时的定时;如所示,每当基于MIDI事件的软件中断信号时则执行MIDI处理。在图的中间行中向下指的箭头表示当硬件中断信号由上述CODEC11产生时的定时。如底部的箭头所示,硬件中断信号与从DMAB60由DMAC10再生读出波形采样数据的周期同步地(即与帧周期同步)在时间点ta,tb,tc和td产生的。波形形成处理的执行(步骤S20)是响应每一硬件中断信号而被初始化的。在完成了波形形成计算时,在这一波形形成处理中运算上所形成的乐音波形采样数据转移到上述的DMA缓存器(DMAB)。如同在图7A中的模块画出所示,每一波形形成计算的开始部分表示紧接在硬件中断信号产生之后的一个中断禁止周期。
基于MIDI事件出现的软件中断和来自CODEC11的硬件中断被给定同样等级的优先权。这样,当在执行对应于硬件中断信号的MIDI处理或者波形形成处理期间产生软件中断信号时,该处理的执行被中断使得执行对应于软件中断信号的波形形成处理或者MIDI处理。在所示的例子中,在执行对应于时间点ta处所产生的的硬件中断信号的波形形成处理期间在时间点t1处产生软件中断信号,响应该中断信号波形形成处理被中断而执行对应于MIDI事件的MIDI处理;然后,在完成MIDI处理时,执行被中断的波形形成的其余部分。进而,在执行对应于时间点t3处所产生的软件中断信号的MIDI处理执行期间在时间点tc处产生硬件中断信号,响应该中断信号MIDI处理被中断而执行波形形成处理;然后在完成波形形成处理时,中断的MIDI处理被恢复。
对应于在周期Ta所接收的MIDI事件的波形形成计算是在周期Tb中执行的,并然后在周期Tc读出并可听见地再生由计算所形成的乐音波形采样数据。这意味着在收到MIDI事件后每一MIDI事件可听见地被再生两帧。然后,当要执行实时演奏时,希望通过减小DMA缓存器的大小而使得每一帧周期等等长度变短。根据本实施例,每一帧周期的长度被选择成对应于64个采样数据。与此相反,当要执行自动演奏时,希望通过增加DMA缓存器的大小而使得每一帧周期的长度变得比较长,以便防止所产生的乐音流不希望的断开。
本发明的实施例被设计为如上所述逐帧地执行波形形成计算,波形形成计算有时会在预定的帧内没能完成。例如,当基于例如多媒体软件请求实时计算能力而并行于其它处理执行波形形成计算时,有时由于过多的CPU计算能力耗费到其它处理这样的事实,而不能有足够的时间分配给软件乐音产生器处理。根据本实施例,对于计算不能按时间完成的帧波形形成要被删除。这就允许对应于下一个帧的波形计算处于稳定方式,虽然在所产生的乐音中可能会有暂时的间断。这暂时的间断是非常短的(如果采样频率为48kHz并在每一帧中形成64个采样数据,则帧周期将仅为1.3msec),而其影响并不重要。
图7B通过例子表示,相对于从周期T5开始到周期T7中间已经进行对应于在周期T4所接收的MIDI演奏输入的波形形成计算的情形,如何删除波形形成(虽然图中所示是作为连续执行的,但实际上波形形成计算是间歇发生的,因为CPU的控制还指向其它处理)。于是在图7B的例子中,对应于在周期T4所接收MIDI事件从周期T5到周期T7已经在运算上形成的乐音波形采样数据被删除,使得对应于周期T6,T7和T8没有从DMA的输出。这样,没有对应于在周期T5和T6所接收的MIDI事件的波形形成计算被执行,并且当正常稳定波形形成恢复时它是在对应于下一个周期T7中所接收的MIDI事件的波形形成计算之中。
图8A表示本发明的一个修改。这一修改的设置方式使得每一硬件中断信号先于一帧的再生结束点达时间Ti从CEDEC11产生,并且一旦达到启动当前波形形成计算定时,已经由前面的波形形成计算所形成的波形采样数据首先转移到DMA缓存器,并然后由当前波形形成计算形成在下一个波形形成计算中要转移的波形采样数据。这是因为波形形成计算所需要的时间要依赖于MIDI事件的数目而变化;这就是通过在较早定时产生每一硬件中断信号并把由前面的波形形成计算所形成的波形采样数据在当前计算开始时转移到DMA缓存器,该修改允许向DMA缓存器稳定的数据转移。按时间Ti先期产生硬件中断信号可通过当转移的波形采样数据的计数数目按对应于时间Ti的数值小于图7A的数目时产生中断信号的转移数据数值检测部分114来实现。
图8B表示本发明的另一个变形,根据该变形软件中断信号对硬件中断信号具有优先性。如所示,当硬件中断信号由CODEC11在对应于时间点t3处所产生的软件中断信号的MIDI处理期间在时间点tc处产生时,对应的波形形成计算在MIDI处理之后执行。
虽然在CODEC11中的转移数据数目检测部分114在以上是作为检测转移数据的数目以产生硬件中断信号而说明的,但是CPU1或者DMAC10可以检测向D/A转换器转移数据的数目。
进而,虽然所述的实施例借助于声音输入/输出电路(CODEC)11中的DMAC10向FIFO缓存器111和D/A转换器112转移波形采样数据,但是在高速总线连接到具有安装到其上的CODEC11板子上的情形波形采样数据可借助于CPU1转移,使得数据可以高速向CODEC11转移。这种情形下,CPU1转移来自FIFO缓存器111的波形采样数据到D/A转换器,每一采样周期所产生的每一硬件中断信号的一个采样,并同时CPU1计数转移的采样数目。然后每当计数的数目显示波形采样数据的转移已经对于一个帧完成时,产生软件中断信号以启动波形形成计算。
而且,虽然实施例是在使用Windows95作为操作系统进行说明的,但是本发明的乐音产生方法可使用任何其它操作系统诸如WindowsNT,MacOS或者UNIX来实现。本发明中使用的CPU可以不是x86 CPU,而是诸如PowerPC(IBM公司商标)或其它RISC处理器。
进而,本发明的乐音产生方法可基于FM,物理模型或者ADPCM技术而不是上述的波形存储技术。
本发明实现了如下各种优点:
因为本发明是在运算上逐帧地(对于每一帧)共同形成乐音波形采样数据,这可有效地提高产生乐音的计算效率和质量并还增加了能够同时产生乐音的乐音产生频道的数目。
因为虚拟装置驱动器置于更接近于硬件的水平,从而大大降低了产生中断信号的时间滞后。此外,虚拟装置驱动器以32位代码运行,故MIDI处理和波形形成处理能够以高速执行,波形形成计算能够以稳定的方式进行。另外,本发明的软件乐音产生器可在多个虚拟机之间共享。
而且,虚拟机可使用硬件乐音产生器被使用之处相同的装置驱动器,并能够提供与硬件乐音产生器兼容的软件乐音产生器。
并且,DMA缓存器可设置为任何所希望的小尺寸,使得对于实时演奏产生乐音的时间滞后可以最小。另外,由于本发明的结构对于每一帧在波形形成计算在时间上不能完成的地方删除了波形的形成,即使乐音产生操作由于某种原因被扰乱,也能易于恢复稳定的操作。

Claims (18)

1.用于基于预定的操作系统由运算处理装置执行的乐音产生方法,所述方法包括:
一个第一步骤,响应当演奏信息从一个应用程序输出时所产生的一个第一中断信号,产生对应于演奏信息的乐音控制信息;
一个第二步骤,响应在检测到存储在缓冲存储器中的乐音波形采样数据的数目减少所产生的第二中断信号,共同形成多个乐音波形采样数据并存储所形成的乐音波形采样数据到所述缓冲存储器;以及
一个第三步骤,每个采样周期从所述缓冲存储器读出乐音波形采样数据之一继而将读出的乐音波形采样数据送往数模转换器。
2.如同权利要求1中所述的乐音产生方法,其中所述第一和第二步骤是作为所述预定操作系统的虚拟装置驱动器而执行的。
3.如同权利要求1中所述的乐音产生方法,其中所述第二中断信号是当检测到波形乐音采样数据的预定数目已经被送往所述数模转换器时而产生的。
4.一种乐音产生装置,包括:
一个用于在其中已经存储预定的操作系统和应用程序的存储装置;
一个用于在其中存储运算上形成的乐音波形采样数据的缓冲存储器;
一个输出电路,用于每一采样周期从所述缓冲存储器读出乐音波形采样数据之一继而输出所读出的乐音波形采样数据;
第一中断产生装置,用于当演奏信息从应用程序输出时产生第一中断信号;
第二中断产生装置,用于在检测到存储在所述缓冲存储器中的乐音波形采样数据的数目降低时产生第二中的信号;
控制信息产生装置,响应所述第一中断信号用于产生对应于从应用程序输出的演奏信息的乐音控制信息;以及
乐音波形形成装置,响应所述第二中断信号用于共同形成多个乐音波形采样数据并存储所形成的乐音波形采样数据到所述缓冲存储器。
5.如权利要求4中所述的乐音产生装置,其中所述控制信息产生装置和乐音波形形成装置包含在所述预定的操作系统的虚拟装置驱动器之中。
6.使用计算机产生乐音的一种方法,该计算机根据所述方法以并行方式执行给定的应用程序和乐音产生处理,该应用程序包含用于当要产生乐音时输出乐音产生指令信息的处理,所述方法包括:
一个从应用程序与第一中断信号一同接收乐音产生指令信息的第一步骤;
一个响应所述第一中断信号准备对于产生对应于乐音产生指令信息所必须的控制信息的第二步骤;
一个第三步骤,响应所述第二中断信号,用于基于控制信息以快于预定的再生采样速率的速率形成多个乐音波形采样数据并暂时存储所形成的乐音波形采样数据到一个输出缓存器;
一个第四步骤,相继以预定的再生采样速率从所述输出缓存器读出乐音波形采样数据,使得可听见地产生乐音;以及
一个第五步骤,按从所述输出缓存器乐音波形采样数据读出的进程而产生所述第二中断信号,从而多个乐音波形采样数据的形成由所述第三步骤响应每一所述第二中断信号的产生而间歇地重复。
7.使用计算机产生乐音的方法,所述方法包括步骤:
接收指令乐音产生的指令信息;
响应中断信号,共同形成由指令信息指令的乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
取决于从所述输出缓存器波形采样数据的读出进程而产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
8.使用计算机产生乐音的方法,所述方法包括步骤:
接收指令产生乐音的指令信息;
响应指令信息的接收,准备对于产生由指令信息所指令的乐音必须的控制信息;
响应中断信号,基于控制信息共同形成被指令的乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
取决于从所述输出缓存器波形采样数据的读出进程而产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
9.使用计算机产生乐音的方法,所述方法包括步骤:
接收指令乐音产生的指令信息;
响应中断信号,共同形成由指令信息指令的乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
10.使用计算机产生乐音的方法,所述方法包括步骤:
接收指令乐音产生的指令信息;
响应指令信息的接收,准备对于产生由指令信息所指令的乐音必须的控制信息;
响应中断信号,基于控制信息共同形成被指令的乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
11.乐音产生装置,包括:
具有存储在其中的乐音产生程序的存储装置;
用于执行乐音产生程序的处理装置;
用于在其中存储多个波形采样数据的缓冲存储器;
用于相继从所述缓冲存储器以预定的再生采样速率读出波形采样数据的读取电路;以及
用于按照从所述缓冲存储器波形采样数据的读出进程而产生中断信号的电路,
其中所述处理装置响应中断信号而激活在乐音产生程序中的乐音产生处理,并且乐音产生处理包括共同形成要被产生的乐音的多个波形采样数据并存储所形成的波形采样数据到所述缓冲存储器。
12.乐音产生装置,包括:
具有存储在其中的应用程序和乐音产生程序的存储装置;
用于以并行的方式执行应用程序和乐音产生程序的处理装置;
用于在其中存储多个波形采样数据的缓冲存储器;
用于相继从所述缓冲存储器以预定的再生采样速率读出波形采样数据的读取电路;以及
用于按照从所述缓冲存储器波形采样数据的读出进程而产生中断信号的电路,
其中所述处理装置响应基于执行应用程序而产生的乐音产生指令信息而激活在乐音产生程序中的准备操作,并且所述准备操作包括对于产生由乐音产生指令信息所指令的乐音准备必须的控制信息,以及
其中每当收到中断信号所述处理装置激活对于指令的乐音的波形采样形成处理,并且该波形采样形成处理包括基于控制信息共同形成被指令的乐音的多个波形采样数据并存储所形成的波形采样数据到所述缓冲存储器。
13.机器可读的记录媒体,包括一组引起所述机器基于预定的操作系统用于以运算处理装置执行的实现乐音产生方法的指令,所述方法包括:
第一步骤,响应当演奏信息从一应用程序输出时所产生的第一中断信号,产生对应于该演奏信息的乐音控制信息;
第二步骤,响应在检测到缓冲存储器中存储的乐音波形采样数据的数目降低时所产生的第二中断信号,共同形成多个乐音波形采样数据并存储所形成的乐音波形采样数据到所述缓冲存储器;以及
第三步骤,每一采样周期从所述缓冲存储器读出乐音波形采样数据之一以便相继地把读出的乐音波形采样数据送往数模转换器。
14.机器可读的记录媒体,包括一组引起所述机器实现使用计算机产生乐音的方法的指令,该计算机根据所述方法以并行方式执行给定的应用程序和乐音产生处理,该应用程序包括当一个乐音要被产生时用于输出乐音产生指令信息的处理,所述方法包括:
第一步骤,从应用程序与第一中断信号一同接收乐音产生指令信息;
第二步骤,响应所述第一中断信号,准备对于产生对应于乐音产生指令信息的一个乐音所必须的控制信息;
第三步骤,响应所述第二中断信号,用于基于控制信息以快于预定的再生采样速率的速率形成多个乐音波形采样数据,并暂存所形成的乐音波形采样数据到一输出缓存器;
第四步骤,相继从所述输出缓存器以预定的再生采样速率读出乐音波形采样数据,以便可听见地产生一个乐音;以及
第五步骤,根据从所述输出缓存器乐音波形采样数据读出的进程而产生所述第二中断信号,由此多个乐音波形采样数据的形成响应每一所述第二中断信号由所述第三步骤间歇地重复。
15.机器可读的记录媒体,包括一组引起所述机器实现使用计算机产生乐音的方法的指令,所述方法包括步骤:
接收指令乐音产生的指令信息;
响应中断信号,共同形成由指令信息指令的乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
取决于从所述输出缓存器波形采样数据的读出进程而产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
16.机器可读的记录媒体,包括一组引起所述机器实现使用计算机产生乐音的方法的指令,所述方法包括步骤:
接收指令乐音产生的指令信息;
响应指令信息的接收,准备对于产生由指令信息所指令的乐音必须的控制信息;
响应中断信号,基于控制信息共同形成被指令的乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
取决于从所述输出缓存器波形采样数据的读出进程而产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
17.机器可读的记录媒体,包括一组引起所述机器实现使用计算机产生乐音的方法的指令,所述方法包括步骤:
接收指令乐音产生的指令信息;
响应中断信号,共同形成由指令信息指令的乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
18.机器可读的记录媒体,包括一组引起所述机器实现使用计算机产生乐音的方法的指令,所述方法包括步骤:
接收指令乐音产生的指令信息;
响应指令信息的接收,准备对于产生由指令信息所指令的乐音必须的控制信息;
响应中断信号,基于控制信息共同形成被指令乐音的多个波形采样数据并暂存所形成的波形采样数据于一个输出缓存器;
相继从所述输出缓存器以预定的再生采样速率读出波形采样数据;以及
产生中断信号,由此多个波形采样数据的形成响应每一所述中断信号的产生而间歇地重复。
CNB961231416A 1995-12-21 1996-12-20 产生乐音的方法和装置 Expired - Lifetime CN1141695C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP349046/95 1995-12-21
JP7349046A JP2904088B2 (ja) 1995-12-21 1995-12-21 楽音生成方法および装置
JP349046/1995 1995-12-21

Publications (2)

Publication Number Publication Date
CN1159637A true CN1159637A (zh) 1997-09-17
CN1141695C CN1141695C (zh) 2004-03-10

Family

ID=18401130

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB961231416A Expired - Lifetime CN1141695C (zh) 1995-12-21 1996-12-20 产生乐音的方法和装置

Country Status (6)

Country Link
US (2) US5973251A (zh)
EP (1) EP0780827B1 (zh)
JP (1) JP2904088B2 (zh)
CN (1) CN1141695C (zh)
DE (1) DE69613950T2 (zh)
TW (1) TW282538B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999752B2 (en) 2000-02-09 2006-02-14 Yamaha Corporation Portable telephone and music reproducing method
CN1674090B (zh) * 2004-03-26 2011-02-02 雅马哈株式会社 声音波形合成器
CN107402596A (zh) * 2017-08-08 2017-11-28 电子科技大学 一种基于指令架构的任意波形发生器

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366971B1 (en) 1998-01-09 2002-04-02 Yamaha Corporation Audio system for playback of waveform sample data
JP3409686B2 (ja) * 1998-03-17 2003-05-26 ヤマハ株式会社 複数音源ドライバの制御方法、および、複数音源ドライバの制御用プログラムが記録された記録媒体、ならびに、複数生成プログラムの制御方法
US6463390B1 (en) * 1998-07-01 2002-10-08 Yamaha Corporation Setting method and device for waveform generator with a plurality of waveform generating modules
JP3975593B2 (ja) 1999-01-21 2007-09-12 株式会社ソニー・コンピュータエンタテインメント 再生音を発生する方法、再生音を発生する電子機器及びエンターテインメント・システム
EP1196872A4 (en) * 1999-05-15 2004-04-07 John W L Ogilvie TOOLS AND TECHNIQUES FOR AUTOMATIC BROKER
JP3279304B2 (ja) * 2000-03-28 2002-04-30 ヤマハ株式会社 楽曲再生装置および楽曲再生機能を備える携帯電話装置
JP3781171B2 (ja) * 2000-06-22 2006-05-31 ヤマハ株式会社 楽音発生方法
US7274967B2 (en) * 2003-10-10 2007-09-25 Nokia Corporation Support of a wavetable based sound synthesis in a multiprocessor environment
US7437613B2 (en) * 2004-01-30 2008-10-14 Intel Corporation Protecting an operating system kernel from third party drivers
TWI252468B (en) * 2004-02-13 2006-04-01 Mediatek Inc Wavetable synthesis system with memory management according to data importance and method of the same
US7663051B2 (en) * 2007-03-22 2010-02-16 Qualcomm Incorporated Audio processing hardware elements
US7678986B2 (en) * 2007-03-22 2010-03-16 Qualcomm Incorporated Musical instrument digital interface hardware instructions
JP5200554B2 (ja) * 2008-01-21 2013-06-05 ヤマハ株式会社 電子音楽装置及び音楽コンテンツ処理プログラム
US8781613B1 (en) * 2013-06-26 2014-07-15 Applifier Oy Audio apparatus for portable devices
CN107436618B (zh) * 2017-08-08 2019-12-27 电子科技大学 一种基于指令架构的任意波形发生器
CN107422780B (zh) * 2017-08-08 2020-01-17 电子科技大学 一种基于指令架构的任意波形发生器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0278438B1 (en) * 1987-02-06 1995-11-02 Yamaha Corporation Multi-recording apparatus of an electronic musical instrument
US5020410A (en) * 1988-11-24 1991-06-04 Casio Computer Co., Ltd. Sound generation package and an electronic musical instrument connectable thereto
US5121667A (en) * 1989-11-06 1992-06-16 Emery Christopher L Electronic musical instrument with multiple voices responsive to mutually exclusive ram memory segments
US5054360A (en) * 1990-11-01 1991-10-08 International Business Machines Corporation Method and apparatus for simultaneous output of digital audio and midi synthesized music
JP2743726B2 (ja) * 1992-07-07 1998-04-22 ヤマハ株式会社 電子楽器
US5345035A (en) * 1992-07-10 1994-09-06 Yamaha Corporation Musical tone generating apparatus
JPH07146679A (ja) * 1992-11-13 1995-06-06 Internatl Business Mach Corp <Ibm> 音声データを変換する方法及びシステム
US5763801A (en) * 1996-03-25 1998-06-09 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
US5717154A (en) * 1996-03-25 1998-02-10 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999752B2 (en) 2000-02-09 2006-02-14 Yamaha Corporation Portable telephone and music reproducing method
CN1674090B (zh) * 2004-03-26 2011-02-02 雅马哈株式会社 声音波形合成器
CN107402596A (zh) * 2017-08-08 2017-11-28 电子科技大学 一种基于指令架构的任意波形发生器
CN107402596B (zh) * 2017-08-08 2020-03-24 电子科技大学 一种基于指令架构的任意波形发生器

Also Published As

Publication number Publication date
DE69613950D1 (de) 2001-08-23
DE69613950T2 (de) 2002-04-04
US6040515A (en) 2000-03-21
EP0780827A1 (en) 1997-06-25
US5973251A (en) 1999-10-26
JP2904088B2 (ja) 1999-06-14
CN1141695C (zh) 2004-03-10
TW282538B (en) 1996-08-01
EP0780827B1 (en) 2001-07-18
JPH09179556A (ja) 1997-07-11

Similar Documents

Publication Publication Date Title
CN1141695C (zh) 产生乐音的方法和装置
CN100495532C (zh) 乐音发生方法与设备
CN1038160C (zh) 多处理器数据存储器共享
US6180863B1 (en) Music apparatus integrating tone generators through sampling frequency conversion
EP1018724B1 (en) Computerized music apparatus processing waveform to create sound effect
CN1225490A (zh) 信息重放装置
US20050211070A1 (en) Sound waveform synthesizer
CN1174370C (zh) 形成音色波形的方法和装置
JP2001318671A (ja) 楽音発生装置
US5892170A (en) Musical tone generation apparatus using high-speed bus for data transfer in waveform memory
CN1612205A (zh) 音频信号处理器
CN1763838B (zh) 乐音发生方法与设备
Lowe et al. Digidesign's Sound Accelerator: Lessons Lived and Learned
CN1148717C (zh) 用于数字音乐语音合成的装置和方法以及数字处理装置
JP3460524B2 (ja) 曲データ加工方法、加工後曲データ再生方法および記憶媒体
JPH07122796B2 (ja) 処理装置
JP3632744B2 (ja) 音生成方法
JP3610759B2 (ja) ディジタル信号処理装置
JP2002006844A (ja) 楽音発生方法
JP2003241755A (ja) 音源装置
Harris A Composer's Computer Music System: Practical Considerations
JP3945393B2 (ja) 複数音源ドライバの制御方法
JP2004246145A (ja) 楽音発生装置及び楽音発生処理のプログラム
JPH02179698A (ja) 処理装置
JPH0460724A (ja) デジタルマイクロコンピュータ

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20040310

EXPY Termination of patent right or utility model