乐曲自动演奏器

合集下载

钢琴自动演奏系统价格

钢琴自动演奏系统价格
无线控制

×

×
×
×
×
录音功能
√(选配)
√(自带)
√(选配)
×
√(选配)
×
×视频功能√×××√
×
×
伴奏功能



×

×
×
曲库类型
施坦威签约钢琴家现场录制
MIDI制作
MIDI制作
MIDI制作
曲库数量
超1万首
180首左右
600首左右
600首左右
播放设备
移动设备、电脑、MP3播放器等
CD、U盘
移动设备、U盘
日本滨松
湖北宜昌
北京
广州
沈阳
浙江湖州
名称
PianoDisc PRODIGY
Yamaha Disklavier
PianoForce
星海
Freekey
KMI(鲍德温)
罗宾
专利技术
SilentDrive静音驱动芯片
Sostenuto踏板
×
×
×
×
×
力度分级
1024级
127级
127级
127级
127级
127级
127级
钢琴自动演奏系统是软硬件相结合的高科技产品,它可以控制琴键与钢琴踏,从而使钢琴能够非常逼真的表达情感,国产钢琴自动演奏系统安装调试好之后的价格应该是在1万左右,进口的自动演奏系统安装调试好之后的价格应该是在2万—3万元左右,具体价格是根据系统配置不同,所收费也就不同。
国家
美国
日本
捷克
中国
产地
美国加利福利亚
U盘
MP3播放器

stm32f103通用定时器pwm应用例程--蜂鸣器演奏乐曲

stm32f103通用定时器pwm应用例程--蜂鸣器演奏乐曲

stm32f103通用定时器pwm应用例程--蜂鸣器演奏乐曲STM32F103通用定时器PWM应用例程:蜂鸣器演奏乐曲一(说明:本例程是将流明LM3SLib_Timer.pdf文档中的例程9及例程10(PWM应用:蜂鸣器演奏乐曲),移植到STM32F103上。

二(流明LM3SLib_Timer.pdf例程9及例程10的拷贝:例程9( Timer PWM应用:蜂鸣器发声如图1.1所示,为EasyARM1138开发板上的蜂鸣器驱动电路。

蜂鸣器类型是交流蜂鸣器,也称无源蜂鸣器,需要输入一列方波才能鸣响,发声频率等于驱动方波的频率。

图1.1 蜂鸣器驱动电路程序清单1.9是Timer模块16位PWM模式的一个应用,可以驱动交流蜂鸣器发声,运行后蜂鸣器以不同的频率叫两声。

其中"buzzer.h"和"buzzer.c"是蜂鸣器的驱动程序,仅有3个驱动函数,用起来很简捷。

程序清单1.9 Timer PWM应用:蜂鸣器发声文件:main.c#include "systemInit.h"#include "buzzer.h"// 主函数(程序入口)int main(void) {jtagWait(); // 防止JTAG失效,重要~clockInit(); // 时钟初始化:晶振,6MHzbuzzerInit(); // 蜂鸣器初始化buzzerSound(1500); // 蜂鸣器发出1500Hz声音SysCtlDelay(400* (TheSysClock / 3000)); // 延时约400ms buzzerSound(2000); // 蜂鸣器发出2000Hz声音SysCtlDelay(800* (TheSysClock / 3000)); // 延时约800ms buzzerQuiet( ); // 蜂鸣器静音for (;;) {}}文件:buzzer.h#ifndef __BUZZER_H__#define __BUZZER_H__// 蜂鸣器初始化extern void buzzerInit(void);// 蜂鸣器发出指定频率的声音extern void buzzerSound(unsigned short usFreq); // 蜂鸣器停止发声extern void buzzerQuiet(void);1#endif // __BUZZER_H__文件:buzzer.c#include "buzzer.h"#include <hw_types.h>#include <hw_memmap.h> #include <sysctl.h>#include <gpio.h>#include <timer.h>#define PART_LM3S1138#include <pin_map.h> #define SysCtlPeriEnable SysCtlPeripheralEnable #define GPIOPinTypeOut GPIOPinTypeGPIOOutput// 声明全局的系统时钟变量extern unsigned long TheSysClock;// 蜂鸣器初始化void buzzerInit(void){SysCtlPeriEnable(SYSCTL_PERIPH_TIMER1); // 使能TIMER1模块SysCtlPeriEnable(CCP3_PERIPH); // 使能CCP3所在的GPIO端口GPIOPinTypeTimer(CCP3_PORT, CCP3_PIN); // 设置相关管脚为Timer功能TimerConfigure(TIMER1_BASE, TIMER_CFG_16_BIT_PAIR | // 配置TimerB为16位PWM TIMER_CFG_B_PWM); }// 蜂鸣器发出指定频率的声音// usFreq是发声频率,取值 (系统时钟/65536)+1 , 20000,单位:Hz void buzzerSound(unsigned short usFreq) {unsigned long ulVal;if ((usFreq <= TheSysClock / 65536UL) || (usFreq > 20000)) {buzzerQuiet( );}else {GPIOPinTypeTimer(CCP3_PORT, CCP3_PIN); // 设置相关管脚为Timer功能ulVal = TheSysClock / usFreq;TimerLoadSet(TIMER1_BASE, TIMER_B, ulVal); // 设置TimerB初值TimerMatchSet(TIMER1_BASE, TIMER_B, ulVal / 2); // 设置TimerB匹配值TimerEnable(TIMER1_BASE, TIMER_B); // 使能TimerB计数 }}// 蜂鸣器停止发声void buzzerQuiet(void){TimerDisable(TIMER1_BASE, TIMER_B); // 禁止TimerB计数GPIOPinTypeOut(CCP3_PORT, CCP3_PIN); // 配置CCP3管脚为GPIO输出GPIOPinWrite(CCP3_PORT, CCP3_PIN, 0x00); // 使CCP3管脚输出低电平 } 例程10(Timer PWM应用:蜂鸣器演奏乐曲程序清单1.10是Timer模块16位PWM模式的一个应用,能驱动交流蜂鸣器演奏一首动听的乐曲《化蝶》(乐谱参见图1.2)。

电子课程设计EDA课程设计乐曲硬件演奏电路

电子课程设计EDA课程设计乐曲硬件演奏电路

电子课程设计——乐曲硬件演奏电路设计学院太原科技大学华科学院专业、班级电子信息工程姓名学号指导教师2011年12月目录一、设计任务与要求 (3)二、总框体图 (3)三、选择器件 (4)四、功能模块 (4)一、音乐数据模块 (4)二、音符控制输出模块 (7)3、音符译码模块 (8)4、数控分频器模块 (11)五、分频器模块 (12)六、译码模块 (13)五、整体设计电路图 (15)一、整体电路原理图……………………………15二、管脚分派图……………………………153、电路仿真结果 (15)4、硬件验证 (16)六、设计心得 (17)七、附录 (19)乐曲硬件演奏电路设计一、设计任务与要求:一、实验内容利用可编程逻辑器件FPGA,设计乐曲硬件演奏电路,可自动演奏乐曲。

二、实验要求(1)利用数控分频器设计硬件乐曲演奏电路。

(2)利用给定的音符数据定制ROM“music”。

(3)设计乘法器逻辑框图,并在QuartusII上完成全部设计。

(4)将音乐通过实验箱上的喇叭播放出来。

(5)与演奏发音相对应的简谱码输出在数码管上显示。

二、整体框图设计思路:C调音阶频率表:同的预置数即可发出不同频率的声音。

由此,可以以此为设计基础。

设计一功能模块,能够将乐曲中的音符一一以对应的频率以预置数的形式置入数控分频计中,即可利用该数控分频计产生不同的声音,演奏出设定好的音乐。

ROM 中的音乐数据文件刚可由编辑好的音符填入MIF 文件中再定制LPM_ROM 将音符数据加载入ROM 中,并设计程序在运行时自动读取ROM 中的文件并置入数控分频器中。

当采用四四拍曲子时,每节拍持续时间为秒。

置入数控分频器的速度也应与此同步或一致,避免音乐过快或过快慢而失真。

由已知的C 调音阶频率表,各频率对应的预置数就与数控分频推动蜂鸣器发作声音的频率对应。

在编写数控分频器时,不仅要考虑预置数的输入方式,还要考虑输入的速度,和驱动蜂鸣器发声的频率。

EDA_课程设计_乐曲演奏器

EDA_课程设计_乐曲演奏器

EDA课程设计题目:乐曲硬件演奏电路的VHDL设计专业:通信工程班级:通信082姓名:***学号:**********一、 设计题目:乐曲硬件演奏电路的VHDL 设计二、 设计目标:1)能够播放“梁祝”乐曲。

2)能够通过LED 显示音阶。

3)具有“播放/停止”功能,并在此基础上实现“按键演奏”的电子琴功能。

三、 设计原理:1. 音乐基础知识一段简单乐谱由音调和节拍组成,音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

音符的节拍我们可以举例来说明。

在一张乐谱中,我们经常会看到这样的表达式,如1=C 44、1=G 43…… 等等。

以43为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。

比如:图1其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。

1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。

那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。

我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。

2.原理图框图:图2.框图3.原理图说明音乐播放原理说明音符的频率由数控分频器模块Speakera产生。

ToneTaba模块从NoteTabs模块中输入的音符数据,将对应的分频预置数据传送给Speakera模块,并将音符数据送到LED模块显示音阶。

NoteTabs模块中包含有一个音符数据ROM,里面存有歌曲“梁祝”的全部音调,在此模块中设置了一个8位二进制计数器,作为音符数据ROM的地址发生器。

这个计数器的计数频率为4Hz,即每一个数值的停留时间为0.25秒。

例如:“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒钟时间,所对应的“3”音符分频预置数为1036,在Speakera的输入端停留了1秒。

实验硬件乐曲自动演奏电路实施方案

实验硬件乐曲自动演奏电路实施方案

验十硬件乐曲自动演奏电路设计1、实验目地:学习利用数控分频器设计硬件电子琴实验.实验仪器:PC机,操作系统为Windows2000/xp,Quartus II 5.1 设计平台,GW48系列SOPE/EDA实验开发系统.3、实验原理:本设计乐曲选取《梁祝》中化蝶部分,其简谱如图1所示.图1 《梁祝》中化蝶部分简谱组成乐曲地每个音符地发音频率值及其持续地时间是乐曲能连续演奏所需地2个基本要素,首先让我们来了解音符与频率地关系.乐曲地12平均率规定:每2个八度音(如简谱中地中音1与高音1)之间地频率相差1倍.在2个八度音之间,又可分为12个半音,每2个半音地频率比为.另外,音符A(简谱中地低音6)地频率为440Hz,音符B到C之间、E到F之间为半音,其余为全音.由此可以计算出简谱中从低音1至高音1之间每个音符地频率,如表1所示.表1 简谱中音符与频率地关系主系统由4个模块组成;例1-1是顶层设计文件,其内部有三个功能模块(如图2所示):Tone.VHD(例1-2)和Speaker.VHD(例1-3)及Notetabs.VHD(例1-4).模块TONE是音阶发生器,当4位发声控制输入INDEX中某一位为高电平时,则对应某一音阶地数值将从端口TONE输出,作为获得该音阶地分频预置值;同时由CODE输出对应该音阶简谱地显示数码,如‘5’,并由HIGH输出指示音阶高8度显示.由例6-28可见,其语句结构只是类似与真值表地纯组合电路描述,其中地音阶分频预置值,如Tone <= 1290是根据产生该音阶频率所对应地分频比获得地.图2 硬件电子琴电路结构模块SPEAKER中地主要电路是一个数控分频器,它由一个初值可预置地加法计数器构成,当模块SPEAKER由端口TONE获得一个2进制数后,将以此值为计数器地预置数,对端口CLK12MHZ输入地频率进行分频,之后由SPKOUT向扬声器输出发声.模块NOTETABS,用于产生节拍控制(INDEX数据存留时间)和音阶选择信号,即在NOTETABS模块放置一个乐曲曲谱真值表,由一个计数器地计数值来控制此真值表地输出,而由此计数器地计数时钟信号作为乐曲节拍控制信号,从而可以设计出一个纯硬件地乐曲自动演奏电路.试完成此项设计,并在EDA实验系统上地FPGA目标器件中实现之.5、实验内容:编译适配以上4个示例文件,给出仿真波形,最后进行下载和硬件测试实验.建议使用实验电路模式“3”(附图2-5),用短路帽选择“CLOCK9”地输入频率选择12MHz,此信号作为系统输入信号CLK12MHZ;CLK8HZ与clock2相接,接受4Hz频率;键8至键1 作为INDEX输入信号控制各音阶;选择数码管1显示琴音简谱码,发光管D1显示高8度.6、思考题1:例1-3中地进程DelaySpkS对扬声器发声有什么影响?7、思考题2:电路上应该满足哪些条件,才能用数字器件直接输出地方波驱动扬声器发声?8、实验报告:用仿真波形和电路原理图,详细叙述硬件电子琴地工作原理及其4个VHDL 文件中相关语句地功能,叙述硬件实验情况..附录;【例10-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TOP IS -- 顶层设计PORT ( CLK12MHZ : IN STD_LOGIC;CLK8HZ : IN STD_LOGIC;CODE1 : OUTINTEGERRANGE 0 TO 15;HIGH1,SPKOUT : OUT STD_LOGIC);END;ARCHITECTURE one OF TOP ISCOMPONENT TonePORT ( Index : IN INTEGERRANGE 0 TO 15;CODE : OUTINTEGERRANGE 0 TO 15;HIGH : OUT STD_LOGIC;Tone : OUT INTEGER RANGE 0 TO 16#7FF# ); --11位2进制数 END COMPONENT;COMPONENT SpeakerPORT ( clk : IN STD_LOGIC;Tone1 : IN INTEGER RANGE 0 TO 16#7FF#; --11位2进制数 SpkS : OUT STD_LOGIC );END COMPONENT;component NotetabsPort ( clk :in std_logic;index0 : out INTEGERRANGE 0 TO 15);end component;SIGNAL Tone2 : INTEGERRANGE0 TO 16#7FF#;SIGNAL Indx: INTEGERRANGE 0 TO 15;BEGIN -- 安装U1, U2, U3u1 : Tone PORT MAP (Index=>Indx, Tone=>Tone2,CODE=>CODE1,HIGH=>HIGH1); u2 : Speaker PORT MAP (clk=>CLK12MHZ,Tone1=>Tone2, SpkS=>SPKOUT );u3 : Notetabs PORT MAP(clk=>CLK8HZ,Index0=>Indx);END;【例10-2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Tone ISPORT ( Index : IN INTEGERRANGE 0 TO 15;CODE : OUTINTEGERRANGE 0 TO 15;HIGH : OUT STD_LOGIC;Tone : OUTINTEGERRANGE0 TO 16#7FF# );END;ARCHITECTURE one OF Tone ISBEGINSearch : PROCESS(Index)BEGINCASE Index IS -- 译码电路,查表方式,控制音调地预置数 WHEN 0=>Tone <= 2047; CODE <= 0; HIGH <= '0';WHEN 1=>Tone <= 773; CODE <= 1; HIGH <= '0';WHEN 2=>Tone <= 912; CODE <= 2; HIGH <= '0';WHEN 3=>Tone <= 1036; CODE <= 3; HIGH <= '0';WHEN 5=>Tone <= 1197; CODE <= 5; HIGH <= '0';WHEN 6=>Tone <= 1290; CODE <= 6; HIGH <= '0';WHEN 7=>Tone <= 1372; CODE <= 7; HIGH <= '0';WHEN 8=>Tone <= 1410; CODE <= 1; HIGH <= '1';WHEN 9=>Tone <= 1480; CODE <= 2; HIGH <= '1';WHEN 10=>Tone <= 1542; CODE <= 3; HIGH <= '1';WHEN 12=>Tone <= 1622; CODE <= 5; HIGH <= '1';WHEN 13=>Tone <=1668; CODE <= 6; HIGH <= '1';WHEN 15=>Tone <= 1728; CODE <= 1; HIGH <= '1';WHEN OTHERS =>NULL;END CASE;END PROCESS;END;【例10-3】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Speaker ISPORT ( clk : IN STD_LOGIC;Tone1 : IN INTEGER RANGE 0 TO 16#7FF#;SpkS : OUT STD_LOGIC );END;ARCHITECTURE one OF Speaker ISSIGNAL PreCLK , FullSpkS : STD_LOGIC;BEGINDivideCLK : PROCESS(clk) -- 将CLK进 11分频,PreCLK为C L 11K 6分频VARIABLE Count4 : INTEGERRANGE 0 TO 15;BEGINPreCLK <= '0';IF Count4 > 11 THEN PreCLK <= '1'; Count4 := 0;ELSIF clk'EVENT AND clk='1' THEN Count4 := Count4 + 1;END IF;END PROCESS;GenSpkS : PROCESS(PreCLK, Tone1)VARIABLE Count11 : INTEGERRANGE0 TO 16#7FF#;BEGIN -- 11位可预置计数器IF PreCLK'EVENT AND PreCLK = '1' THENIF Count11=16#7FF# THEN Count11 := Tone1; FullSpkS <= '1'; ELSE Count11:=Count11 + 1; FullSpkS <= '0';END IF;END IF;END PROCESS;DelaySpkS : PROCESS(FullSpkS)VARIABLE Count2 : STD_LOGIC;BEGINIF FullSpkS'EVENT AND FullSpkS = '1' THEN Count2 := NOT Count2;IF Count2 = '1' THEN SpkS <= '1';ELSE SpkS <= '0';END IF;END IF;END PROCESS;END;【例10-4】library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity Notetabs isPort ( clk: in std_logic; --系统时钟;键盘输入/自动演奏 index0 : out INTEGER RANGE 0 TO 15); --音符信号输出end NOTETABS;architecture Behavioral of Notetabs issignal count0:integer range 0 to 138;--changebeginmusic:process(clk) --此进程完成自动演奏部分曲地地址累加beginif clk'event and clk='1' thenif count0=138 then count0<=0;else count0<=count0+1;end if;end if;end process;com1:process(count0)begincase count0 is --此case语句:存储自动演奏部分地曲when 00 =>index0<=3;when 01 =>index0<=3;when 02 =>index0<=3;when 03 =>index0<=3;when 04 =>index0<=5;when 05 =>index0<=5;when 06 =>index0<=3;when 07 =>index0<=6;when 08 =>index0<=8;when 09 =>index0<=8;when 10 =>index0<=8;when 11 =>index0<=9;when 12 =>index0<=6;when 13 =>index0<=8;when 14 =>index0<=5;when 15 =>index0<=5;when 16 =>index0<=12;when 17 =>index0<=12;when 18 =>index0<=12;when 19 =>index0<=15;when 20 =>index0<=13;when 21 =>index0<=12;when 22 =>index0<=10;when 23 =>index0<=12;when 25 =>index0<=9; when 26 =>index0<=9; when 27 =>index0<=9; when 28 =>index0<=9; when 29 =>index0<=9; when 30 =>index0<=9; when 31 =>index0<=0; when 32 =>index0<=9; when 33 =>index0<=9; when 34 =>index0<=9; when 35 =>index0<=10; when 36 =>index0<=7; when 37 =>index0<=7; when 38 =>index0<=6; when 39 =>index0<=6; when 40 =>index0<=5; when 41 =>index0<=5; when 42 =>index0<=5; when 43 =>index0<=6; when 44 =>index0<=8; when 45 =>index0<=8; when 46 =>index0<=9; when 47 =>index0<=9; when 48 =>index0<=3; when 49 =>index0<=3; when 50 =>index0<=8; when 51 =>index0<=8; when 52 =>index0<=6; when 53 =>index0<=5; when 54 =>index0<=6; when 55 =>index0<=8; when 56 =>index0<=5; when 57 =>index0<=5; when 58 =>index0<=5; when 59 =>index0<=5; when 60 =>index0<=5; when 61 =>index0<=5; when 62 =>index0<=5; when 63 =>index0<=5; when 64 =>index0<=10; when 65 =>index0<=10; when 66 =>index0<=10; when 67 =>index0<=12;when 69 =>index0<=7; when 70 =>index0<=9; when 71 =>index0<=9; when 72 =>index0<=6; when 73 =>index0<=8; when 74 =>index0<=5; when 75 =>index0<=5; when 76 =>index0<=5; when 77 =>index0<=5; when 78 =>index0<=5; when 79 =>index0<=5; when 80 =>index0<=3; when 81 =>index0<=5; when 82 =>index0<=3; when 83 =>index0<=3; when 84 =>index0<=5; when 85 =>index0<=6; when 86 =>index0<=7; when 87 =>index0<=9; when 88 =>index0<=6; when 89 =>index0<=6; when 90 =>index0<=6; when 91 =>index0<=6; when 92 =>index0<=6; when 93 =>index0<=6; when 94 =>index0<=5; when 95 =>index0<=6; when 96 =>index0<=8; when 97 =>index0<=8; when 98 =>index0<=8; when 99 =>index0<=9; when 100=>index0<=12; when 101=>index0<=12; when 102=>index0<=12; when 103=>index0<=10; when 104=>index0<=9; when 105=>index0<=9; when 106=>index0<=10; when 107=>index0<=9; when 108=>index0<=8; when 109=>index0<=8; when 110=>index0<=6; when 111=>index0<=5;when 113=>index0<=3;when 114=>index0<=3;when 115=>index0<=3;when 116=>index0<=8;when 117=>index0<=8;when 118=>index0<=8;when 119=>index0<=8;when 120=>index0<=6;when 121=>index0<=8;when 122=>index0<=6;when 123=>index0<=5;when 124=>index0<=3;when 125=>index0<=5;when 126=>index0<=6;when 127=>index0<=8;when 128=>index0<=5;when 129=>index0<=5;when 130=>index0<=5;when 131=>index0<=5;when 132=>index0<=5;when 133=>index0<=5;when 134=>index0<=5;when 135=>index0<=5;when 136=>index0<=0;when 137=>index0<=0;when 138=>index0<=0;when others => null;end case;end process;end Behavioral;版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.Zzz6Z。

BAND-IN-A-BOX0教程

BAND-IN-A-BOX0教程

BAND-IN-A-BOX0教程BAND-IN-A-BOX是一个老牌的自动配器软件,自从它出世以来,就给许多专业和业余的音乐人们带来了电脑智能配器的希望,虽然说它到现在为止还是有点死板,但相对于许多没有学过电声配器的爱好者的水平来说,它还是很完备很正规的。

这一版本比前作增加了一个更强大的功能,就是“独奏音乐家”的功能(SOLOIST),它可以自动生成一些不同风格的独奏旋律,尤其在爵士乐风格方面更为优秀。

它的基本使用方法就是由用户输入和弦,选择伴奏风格,然后PLAY,就这么简单,你就可以得到一首歌曲的完整编曲,我敢说比一些庸人做的卡拉OK伴奏要强得多。

不过,同样是做这些事,如果你能更多的掌握一些这个软件的用法,更多地发挥一些自己的创意,你可能做出来的音乐会听不出是自动配器软件做的,这就要你能在这个软件中多做一些变数,因为没有一个编曲家会反复使用一个单调的节奏型的。

使用这个软件的系统要求:Windows 95/98/NT/3.1, 16 mb memory, 386DX (or better)MIDI系统(MIDI接口/MIDI键盘/MIDI音源或声卡)第一步,我们要在BAND-IN-A-BOX(以下简称“BB”)中设定MIDI驱动器和各个输入输出接口,也就是设定用来发声的音源和用于输入的键盘。

如果没有键盘你就要去下载一个叫VPIANO的软件,这个软件可以用电脑键盘来虚拟MIDI键盘,就是没有力度感。

这个软件也可以在CAKEWALK8.0中找到。

在OPT菜单下选择第一项MIDI DRIVER SETUP,MIDI INPUT DRIVER中选择你的输入设备,比如MIDI接口的第一路输入端口,在MIDI OUTPUT DRIVER中选择你的输出设备也就是音源,比如你的声卡MPU-401,在SYNTHESIZER/SOUND CARD中选择你的音源的音色排序,一般最好是GM音源,如SC155等,因为GM乐器的音色排序是相同的,而基本上来自网上的MIDI文件都是GM文件,音色排序不一定和你的音源声卡名称一样,只要音色排列一样就可以用了,比如你的声卡是波表声卡,在音色排序中选择SC-155和SOUND BLASTER PRO是一样的,它们都是GM乐器。

用Quartus II设计电子琴

用Quartus II设计电子琴

(音阶发生器仿真图)
3.数控分频模块程序与仿真



--文件名:speaker.vhd。 --功 能:实现数控分频。 --最后修改日期:20004.3.19。 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity speaker is Port ( clk1 : in std_logic; tone1 : in integer range 0 to 2047; spks : out std_logic); end speaker; architecture Behavioral of speaker is signal preclk,fullspks:std_logic; begin
(顶层文件仿真图)
2.音阶发生器程序与仿真



--文件名:tone.vhd。 --功能:音阶发生器程序。 --最后修改日期:2004.4.13。 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity tone is Port ( index : in std_logic_vector(7 downto 0); code : out std_logic_vector(6 downto 0); high : out std_logic; tone0 : out integer range 0 to 2047); end tone; architecture Behavioral of tone is begin

EDA课程设计硬件电子琴及自动演奏要点

EDA课程设计硬件电子琴及自动演奏要点

郑州航空工业管理学院《EDA技术及应用》课程设计报告届通信工程专业班级题目:电子琴与自动演奏学号:姓名:同组人:指导老师:2013年07月07日1 课程设计要求硬件电子琴设计设计要求:(1)按下KEY1~KEY7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、 SI.(2)按住KEY8同时按KEY1~KEY7 分别表示高音的DO、 RE 、 ME、 FA、SOL、 LA、 SI;(3)按下相应的键有对应LED灯指示;其他要求:(1)晶振为12 MHz.,采用CPLD 器件为ALTERA 的EPM7064AEL144-7N。

乐曲自动演奏机设计要求:(1)可以在电路上能自动演奏乐曲,在这里我们采用的是贝多芬的《欢乐颂》;(2)有相应的LED灯指示高低音;其他要求:(1)晶振为12 MHz;(2)采用CPLD 器件,为ALTERA 的EPM7064AEL144-7N。

硬件电子琴设计+乐曲自动演奏机最初我们选择的设计是电子琴,但是由于电子琴的设计较为基础,因此我们对电子琴的设计进行了改进,将其与乐曲自动演奏相结合,要求如下:设计要求:(1)按下KEY1—KEY7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、SI;(2)对于电子琴,按下相应的键有对应LED灯指示;(3)可以在电路上能自动演奏乐曲,在这里我们采用的是贝多芬的《欢乐颂》,且有相应的LED灯指示高低音;(4)能实现电子琴和乐曲自动演奏功能的切换。

其他要求:(1)晶振为12 MHz;(2)采用CPLD 器件为ALTERA 的EPM7064AEL144-7N。

2 整体规划设计分析根据设计要求,由于乐曲自动演奏机和硬件电子琴的设计已经存在,我们对已有的设计进行修改,形成两个不同功能的模块,然后采用元件例化,拼接两个模块,同时附加一个选择功能模块,以实现乐曲自动演机和硬件电子琴两个功能。

硬件电子琴分析对于硬件电子琴,参考了实验时使用的程序,已经达到的要求有:(1)按下key1~key7 分别表示中音的DO、 RE 、 ME、 FA、 SOL、 LA、 S;(2)按下相应的键有对应LED灯指示。

基于FPGA的乐曲自动演奏器的设计

基于FPGA的乐曲自动演奏器的设计
不变 , 奏 出的音 乐就 不会 走调 。 演
方 向: 信号与信息处理 。
3 5期
吴定允 : 于 F G 基 P A的乐 曲 自动演奏器 的设计
玛 01 s m
1 1 ' Va 1 l 0
6 4
m5
9 3 ms 08

9 6
ms
12 8 s 0 m
而不 同节 拍 的 控 制 可 以通 过 对 某 一 时钟 信 号
进行 不 同的延 时而得到 。
通过上 面 关 于 一 个 音 符 音 调 和 节 拍 的确 定 方 法, 我们 就 可 以用 F G 来 演 奏音 乐 了。具 体 的实 PA 现方 法为 : 乐谱 中的 每个 音 符 的音 调 及 节 拍 变换 将 成相 应 的音 调参数 和节 拍 参 数 , 他 们 做 成 数据 表 将 格 , 放在存 储 器 中 , 过 程 序 取 出 一 个 音 符 的相 存 通 关 参数 , 播放该 音 符 , 音符 唱完 后 , 着取 出下 一 该 接
然后 由计 算机 自动 地 完成 逻 辑 编译 、 简 、 割 、 化 分 综
合、 优化 、 局 、 线 和 仿 真 , 至 对 于 特 定 目标 芯 布 布 直 片的 适 配 编 译 、 辑 映 射 和 编 程 下 载 等 工 作 J 逻 。
E A技术 的 出现 , 大地 提高 了 电路设 计 的效 率 和 D 极
魅 0
c k 1

1 3
囡 tn o tB 0 】 o , u 1 0
E s p 』
l 01 1 01 0 0 0i 1
]] ] 厂n厂n几几几n几nnn几几 n几几几几厂n几几厂几几nn广nnn几 n几几几厂门n几n几几nn ] ] ] ] 图 4 音 调 产 生 模 块 仿 真 图

乐曲演奏电路的设计

乐曲演奏电路的设计

北华航天工业学院课程设计报告(论文)设计课题:乐曲演奏电路的设计专业班级:学生姓名:指导教师:设计时间:北华航天工业学院电子工程系乐曲演奏电路的设计课程设计任务书指导教师:胡辉内容摘要本实验的设计原理是不同的音名对应不同的频率,设计的难点是准确的产生各音名对应的频率。

简谱音名与频率的关系各音名所对应的频率可由一频率较高的基准频率进行整数分频得到,所以实际中产生各音名频率为近似的整数值。

基准频率越高,近似程度越好,音准也越好,但同时分频系数会很大,耗费芯片资源也越多。

本实验选取fo=1MHZ的信号作为基准频率。

分频系数A及n的公式如下:分频系数A=fo÷音名频率分频系数n=分频系数A÷2分频系数n=fo÷音名频率÷2以中音1为例来说明:由fo=1MHZ产生中音1的523.25Hz,其中分频系数A=1000000÷523.25≈1911.13,取整数值为A=1911,此分频系数可由计数器实现。

但若不加处理语句,其分频后的523Hz信号不是对称方波,而占空比很小的方波将很难使扬声器有效的发出声音。

为了得到对称方波,可将分频系数A分解为:分频系数A=分频系数n×2。

即先进行分频系数n的分频,得到不对称方波,再2分频得到对称方波。

以A=1911分解为例,A=1911≈956×2。

即先对fo=1MHZ进行956分频,得到956×2Hz的不对称方波,然后再2分频得到523Hz的对称方波,送至扬声器可听到中音1的声音。

最后对各个模块嵌入VHDL语言,编译、调试即可。

索引关键词:音名与频率的关系可变分频器选择器编码器目录一概述 (1)二方案设计与论证 (2)三单元电路设计与参数计算 (2)四总原理图 (2)五安装与调试 (3)六性能测试与分析 (3)七结论 (3)八心得体会 (3)九参考文献 (4)一、概述(一)本实验的设计原理是不同的音名对应不同的频率,设计的难点是准确的产生各音名对应的频率。

guitar pro 5.2 中文版

guitar pro 5.2 中文版

guitar pro 5.2 中文版Guitar Pro 5.2 中文版简介Guitar Pro 5.2 中文版是一款专业且功能强大的音乐制作软件,适用于吉他手、贝斯手和其他乐器演奏者。

Guitar Pro 5.2 中文版提供了一个直观和灵活的界面,使乐器演奏者能够方便地创作、编辑和演奏自己的音乐。

本文将探讨Guitar Pro 5.2 中文版的各种功能和优势。

功能特点1. 谱写乐曲 - Guitar Pro 5.2 中文版允许用户轻松制作各种类型的乐曲,包括吉他、贝斯、键盘和弦乐等。

用户可以通过简单的点击和拖拽操作创建乐谱,并填充乐谱以便演奏。

2. 乐谱编辑 - 该软件提供了一个强大的乐谱编辑器,使乐器演奏者能够在乐谱上添加和编辑各种音符、和弦和效果。

用户可以自定义乐谱的调子、速度、节拍和其他属性,以满足不同乐器的要求。

3. 录制和回放 - 用户可以使用Guitar Pro 5.2 中文版录制自己的演奏,并通过回放功能进行检查和修改。

这个功能可以帮助用户改进演奏技巧和表达能力。

4. 教学功能 - 该软件还包含了一个教学功能,通过音乐课程和实时分析帮助用户学习和提高他们的演奏技巧。

用户可以跟随课程学习各种技术和乐理知识,以逐步提高自己的音乐水平。

5. 导出和分享 - Guitar Pro 5.2 中文版允许用户将他们的作品导出为音频文件或乐谱文件。

用户还可以将作品分享到社交媒体平台或与其他乐手进行合作。

优势1. 用户友好界面 - Guitar Pro 5.2 中文版的界面简洁直观,易于使用。

无论是初学者还是专业乐器演奏者,都可以轻松上手并充分发挥自己的创作灵感。

2. 多功能性 - 该软件提供了丰富的功能和工具,能够满足不同乐器演奏者的需求。

通过使用Guitar Pro 5.2 中文版,用户可以打开和编辑各种乐器的乐谱,并进行相关的定制和调整。

3. 精确的音乐表达 - Guitar Pro 5.2 中文版为用户提供了一个准确的音乐表达工具。

多功能音乐演奏器的设计

多功能音乐演奏器的设计
21 0 0年第 1 期 1 ( 总第 1 5期 ) 3
大 众 科 技
DA ZHONG KE J
No 1 。 0 0 .1 2 1
( muaie o1 5 Cu l v lN .3 ) t y
多 功 能 音 乐 演 奏 器 的 设 计
罗 芬
赵 新 业 梁 小流
( )系统 软件 设 计 五
在主程序 中进行音乐演奏器 的功能 ,当按下外部 中断 0 的 按 键 时 , 单 片 机 响 应 中 断 , 在 中断 服 务 程 序 中 完 成 播 放 乐 曲的 功 能 。由单 片 机 内部 定 时器 T 、T 完 成 对 音 频 脉 冲 信 号 O 1 进 行 定 时 的 功 能 ,时 间一 到 ,P . 20取 反输 出 ,就 获 得 了对 应 音符的特定频率 的方波信号 ,通过 T A 0 0推动喇 叭,发 出 D 23 音符的声音 。 主 程 序 流 程 图如 图 4所 示 , 外 部 中 断 服 务 流 程 图 如 图 5 所 示,定时器中断服务程序流程 图如 图 6所示 。
【 稿 日期 】2 1 - 8 1 收 00 0- 7 【 者简介 】罗芬 ( 9 5 ) 作 16 - ,女 ( 侗族 ) ,广西人 ,广西水利 电力职业技术 学院副教授 ,工程硕士 ,研 究方向为微机控制 技术 ;赵 新业 ( 97 ) 17 一 ,男 ( 壮族 ) ,广西人 ,广西水利 电力职业技 术学院讲 师 ,研 究方 向为机 电一体化技 术 ;梁小流 ( 97 17
( )音符 频率 三
1音符频率 .
对 应 不 同 的 音 调 ,音 符 的 频 率 有 所 不 同 。 同一 音 调 下 ,
各 音 符 的频 率 值 的 数 学 关 系 是 等 比 级 数 关 系 , 公 比 为

电子合成器介绍

电子合成器介绍

电子合成器又简称电子合成器.是由电子设备代替乐队进行演奏和进行自动化编曲的一种电子化设备.音乐电声的一个重要内容就是电子音乐。

电子琴的出现,开辟了音乐的一个新天地。

但是自从电子合成器问世以来,电子音乐就又进入了一个更高的阶段。

目前,由于电子音乐的普及,电子合成器可以解决相当一部分的歌唱及舞厅的伴奏问题。

可以在事先由一个人制作伴奏音乐乐曲或背景音乐,而不需要乐队,或者部分代替乐队。

电子合成器与电子琴的区别很多人不能分别出电子琴与合成器,不知它们有什么区别,是的,光看外表在有时不太好区别,同样的标准键盘,非常接近的控制单元,相差不多的体积,一切都那么相似,到底有什么不同呢?它们的不同点在内部,最大的区别在于音色的编辑制作,电子琴使用固化的音色采样,大部分琴不提供音色编辑功能,也就是说,琴里有什么音色你使用什么音色,如果你想改一改,让它更符合你的要求,对不起,办不到。

随这科技的进步及生产成本的降低,一些高档电子琴增添了一些简单的编辑功能,但太少了,很难满足专业音乐工作者的需要。

电子合成器最根本的目的就是提供最优秀的音色和提供最强大的编辑制作和控制功能,它不但有世界上各种最优秀的音色采样,同时还为使用者提供的大量的编辑功能,利用这些功能,你不但可以将音色修改的更个性化,还可以创造自己独有的音色,如果你有兴趣的化,你还可以利用合成器为我们提供的控制器在演奏中修改音色,当然你要提前在音色编辑时做一定的设置。

在其它方面也有不同的差别,比如说合成器多数不带自动伴奏功能和自带的扩声电路部分。

请一定不要认为这是设计者的忘记了,这正是设计者考虑到它们不同的应用范围而专门设计的。

电子琴多为家庭或教学使用,多为一人操作,并且很少有专业的扩声设备,所以配备了自动伴奏功能和扩声喇叭。

而电子合成器主要在乐队中使用,很显然,自动伴奏功能毫无意义,在演出场地一定是用专业音响,添加琴自带的扩声电路只会增加成本,所以,我们买到的合成器是很少有以上两个功能的。

具有自动乐曲演奏功能的电子琴设计方案(DOC 29页)

具有自动乐曲演奏功能的电子琴设计方案(DOC 29页)

具有自动乐曲演奏功能的电子琴设计方案(DOC 29页)图4 乐曲弹奏模块结构框图2. 设计流程图具有自动乐曲演奏功能的电子琴系统的VHDL程序设计流程图如下图5:图5 程序设计流程图四、设计过程1. 音乐基础知识简谱应该说是一种比较简单易学的音乐记谱法。

它的最大好处是仅用7个阿拉伯数字----1234567,就能将万千变化的音乐曲子记录并表示出来,并能使人很快记住而终身不忘;同时涉及其他的音乐元素也基本可以正确显示。

简谱虽然不是出现在中国,但是好像只有在中国得到非常广泛的传播。

乐音的特性:它由四个方面组成:音高、音值、音量、音色。

音高:由物体在一定的时间内震动的次数决定,震动次数多,因则高,反之,则低。

音值:即音的长短,是由音的延续时间的不同而决定的,音的延续时间长,音则长,反之,则短。

音量:即音的强与弱,由震幅的大小决定,震幅大,音则强,反之,则弱。

音色:有发音体的性质决定,发音体的形状及泛音的多少决定音色的不同,例如,小提琴、钢琴等各种乐器的音色都是不同的,在合奏时,人们可清楚地辨认。

乐音体系:在音乐使用中有固定音高的音的总和叫乐音体系。

音级:乐音体系中的各音叫音级,音级有基本音级与变化音级两种。

基本音级:在音乐中经常使用的七个具有独立名称的音叫基本音级。

基本音级的名称用字母或唱名两种方式来标记。

音名:用C、D、E、F、G、A、B来标记基本音级的叫音名,它表示一定的音高,简谱中用1,2,3,4,5,6,7来标记。

唱名:用do、re、mi、fa、sol、la、si作为音级名称的叫唱名。

音符:用以记录音的长短高低的符号叫音符(以符头在谱表上的位置来表示音的高低,以形状表示音的长短,音符有符头、符干、符尾三部分或其中某些部分组成,而在简谱中以1 2 3 4 5 6 7或其上下加点来表示不同音高,以短下划线(_)或横(—)来表示音的长短)。

下面重点介绍组成音乐的两个最基本的要素:每个音符发音的频率及其持续的时间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

乐曲自动演奏器
一、功能介绍
使用FPGA设计一个乐曲自动演奏控制器,将源程序下载至FPGA器件中,实现乐曲自动演奏。

(本设计的乐曲是《友谊天长地久》的部分音乐)
乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。

频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率之间也有固定的对应关系。

所有不同频率的信号都是从同一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数又不能为小数,故必须将计算的到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。

如在4MHz时钟下,中音1(对
应的频率值为523.3Hz)的分频系数应该为:4000000/(2*523.3)=0xd3821,这样只需对系统时钟进行3821次分频即可得到所要的中音1。

至于其他音符,同样可求出对应的分频系数,这样利用程序可以很轻松地得到对应的乐声。

此外,在程序中设置了一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。

只要让状态机的状态按顺序转换,就可以自动播放音乐了。

《友谊天长地久》乐谱见下表(注:N一拍;N两拍;N﹒四拍;N﹒八拍;N为乐谱。

由于芯片存储容量太小,源程序只加入乐谱的一部分音符)
《友谊天长地久》乐谱
0 5. | 1. 1 1 3 | 2. 1 2 3 | 1. 1 3 5 | 6. 6 | 5. 3 3 1 | 2. 1 2
3 | 1. 6. 6 5
.. | 1. 6 | 5. 3 3 1 | 2. 1 2 6 | 5 . 3 3 5 | 6. 1 | 5.
3 3 1 | 2. 1 2 3 | 1. 6. 6 5
.. | 1. 0 ¶
简谱中的音名与频率的关系
二、硬件设计(电路图、原器件清单)
实物元件清单:
印刷电路板一个;
电阻(10KΩ的10个,200Ω的8个,1KΩ的14个,50Ω的1个);三极管3个;
发光二极管(红黄绿各三个);
蜂鸣器1个;
8段显示器2个;
按键4个;
4M晶振1个;
电容(104的6个,10μ的1个);电源线1个;
芯片底座1个;
电路图:
功率放大显示部分:
核心控制部分:
三、软件设计(流程图、源程序)
流程图
一个完整的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。

其大致的设计流程包括:设计输入、综合、适配、时序仿真和功能仿真、编程下载、硬件测试的步骤。

对于目前流行的EDA工具软件,图1-1的设计流程具有一
般性[3]。

图1-1 应用FPGA/CPLD的EDA开发设计流程框图
各部分源程序及说明
module song(clk,beep); //模块名称song
//I/O口说明
input clk; //系统时钟4MHz
output beep; //蜂鸣器输出端
//内部寄存器
reg beep_r; //寄存器
reg[3:0] state; //乐谱状态机
reg[15:0]count,count_end;
reg[17:0]count1;
//参数--分频系数
parameter L_5=16'd5102, //低音5
L_6=16'd4545, //低音6
M_1=16'd3821, //中音1
M_2=16'd3405, //中音2
M_3=16'd3033, //中音3
M_5=16'd2551, //中音5
M_6=16'd2273, //中音6
H_1=16 'h1913; //高音6
parameter TIME=1000000; //控制每个音的长短(250ms)assign beep= beep_r; //输出音乐
//上升沿脉冲计数
always@(posedge clk)
begin
count<=count+1'b1; //计数器加1
if(count==count_end)
begin
count<=16'h0; //计数器取0
beep_r<=! beep_r; //输出取反end
end
//上升沿脉冲计数
always@(posedge clk)
begin
if(count1<TIME)
count1= count1+1'b1;
else
begin
count1=18'd0;
if(state==4'd15)
state= 4'd0;
else
state= state+1'b1;
case(state)
4'd0, 4'd1: count_end=L_5;
4'd2, 4'd3, 4'd4, 4'd5, 4'd6, 4'd7, 4'd8 : count_end=M_1;
4'd9, 4'd10: count_end=M_3;
4'd11, 4'd12, 4'd13, 4'd14: count_end=M_2;
4'd15: count_end=M_1;
default:count_end=16'hffff;
endcase
end
end
Endmodule
引脚锁定方法
四、设计总结
经过我们一组人的共同努力,我们的课程设计完成。

在此期间,我们收获颇丰。

首先这是既制作收音机后的又一次焊接印刷电路板的机会,利于提高我们的对器件的辨别、理解能力,还有自己的动手能力。

焊好电路板后,我觉得挺麻烦的就是程序的调试。

刚开始的调试是在实验室的试验箱上,一切运行正常,但转到我们需要用的芯片上就不能出现我们想要的结果。

后来又查资料,了解到芯片的时钟的频率不同,然
后我们就开始转换频率再计算,同时把原来的程序根据要求的频率进行修改,但还是不能显示出流畅的音乐。

最后,当我们想放弃这个设计换其他程序设计的时候,我们想起可能是蜂鸣器本身的问题。

然后,我们找到以前制作收音机的喇叭,接上后效果还是挺明显的,听到音乐的那一刻确实挺有成功感。

其次,也是对EDA这门课的深入理解与应用。

如果说刚开始我还不知道EDA是干嘛的,但现在我可以说写一下简单的程序,看懂一些复杂的程序,然后就是提高了对QuartusⅡ操作能力。

当然,通过这次课程设计,还是发现自己的很多不足。

由于当初EDA课程学得不是太好,导致刚开始操作时经常会遇到或大或小的问题,而且这次做的设计我觉得是老师要求里的比较简单的一个,还花费了这么长时间,也说明自己的能力不是太好。

事实证明:要想真正掌握这门课还需要再花费一些精力。

相关文档
最新文档