一架小钢琴——图形界面与发声技术的简单应用

转载 2005年03月03日 09:28:00
一架小钢琴——图形界面与发声技术的简单应用 发表日期:2004年7月17日 作者:林奕伟 已经有2975位读者读过此文 /* * Super Piano, Version 1.0 * Compiled by TCC.EXE * Coding Enviroment: Win-TC 1.72 * Written by Lin Yiwei,from ZJU * Date: 2004-7-17 */ #include #include #include #include #define closegr closegraph #define KEY_WIDTH 60 #define KEY_HEIGHT 280 #define s 8051 #define d 8292 #define f 8550 #define g 8807 #define h 9064 #define j 9322 #define k 9579 #define ESC 283 /*function's prototype*/ void initgr() { int gd=DETECT,gm=0; registerbgidriver(EGAVGA_driver);/*register BGI driver */ registerbgifont(triplex_font); /*register BGI font*/ registerbgifont(small_font); registerbgifont(sansserif_font); registerbgifont(gothic_font); initgraph(&gd,&gm,""); } /*initialize the graphic*/ void down(int x,int y) { setcolor(WHITE); setfillstyle(SOLID_FILL,WHITE); bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-13); setcolor(DARKGRAY); setfillstyle(SOLID_FILL,DARKGRAY); bar(x,y+KEY_HEIGHT-13,x+KEY_WIDTH,y+KEY_HEIGHT); } /*the key being pressed*/ void up(int x,int y) { setcolor(WHITE); setfillstyle(SOLID_FILL,WHITE); bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-20); setcolor(DARKGRAY); setfillstyle(SOLID_FILL,DARKGRAY); bar(x,y+KEY_HEIGHT-20,x+KEY_WIDTH,y+KEY_HEIGHT); } /*the key being release*/ void start() { int i=0; initgr(); /* initialize the BGI */ setbkcolor(LIGHTGRAY); /*set the background*/ settextstyle(4,0,5); setcolor(BLUE); outtextxy(170,40,"SUPER PIANO"); setcolor(RED); outtextxy(172,42,"SUPER PIANO"); setcolor(YELLOW); outtextxy(174,44,"SUPER PIANO"); setcolor(GREEN); outtextxy(176,46,"SUPER PIANO"); /*this is the title*/ for(i=0;i<7;i++) { up(100+i*(KEY_WIDTH+5),110); } /*the key*/ settextstyle(0,0,1); setcolor(LIGHTRED); outtextxy(175,420,"KEY:1-s,2-d,3-f,4-g,5-h,6-j,7-k,Quit-Esc"); setcolor(BLUE); outtextxy(215,440,"All Rights Reversed @ 2004-7"); } main() { int i=0; int key=0; start(); while(key!=ESC) { for(i=0;i<7;i++) { up(100+i*(KEY_WIDTH+5),110); } /*release the key first*/ key=bioskey(0); switch(key) { case s:down(100,110);sound(523);delay(3000);nosound();break; case d:down(165,110);sound(587);delay(3000);nosound();break; case f:down(230,110);sound(659);delay(3000);nosound();break; case g:down(295,110);sound(699);delay(3000);nosound();break; case h:down(360,110);sound(784);delay(3000);nosound();break; case j:down(425,110);sound(880);delay(3000);nosound();break; case k:down(490,110);sound(988);delay(3000);nosound();break; default:break; } } closegr(); } /*图形驱动和字体均注册(可生成完全独立的exe文件),因而要求有相应的图形驱动和字体连库*/

钢琴调律经验(菜鸟版)

利用校音软件作为辅助,进行菜鸟版业余调琴。
  • pupilye
  • pupilye
  • 2016年04月17日 15:18
  • 1866

Android-简易版弹钢琴

目标效果: 1.drawable下新建button_selector.xml页面: 2.drawable下新建button.xml页面: ...
  • hester_hester
  • hester_hester
  • 2017年04月10日 10:14
  • 404

微机实验之电子琴制作

微机实验之电子琴制作 http://blog.csdn.net/u012062327 一、实验目的        (1)学习、掌握部分DOS功能调用使用方法;        (2)学习用825...
  • u012062327
  • u012062327
  • 2014年12月10日 14:53
  • 1075

仿最美应用-每日最美 钢琴律动效果(一)

前言 项目GIthub地址 原先我并不知道有最美应用这么一个app,但是这个app却被我们的产品经理和老板所推崇,每次开会时都要拿出来说一说这个应用什么什么效果做的好,终于有一天,我们的老板突然和...
  • Wei_Smile
  • Wei_Smile
  • 2016年03月27日 15:32
  • 1268

汇编实现键盘钢琴

基于上一篇文章,汇编实现背景音乐的播放的理论知识,然后改编了一个小小的键盘钢琴的实现。如果对于实现的原理不太明白,就去看上一篇博客。 下面是实现的程序: ;汇编实现键盘钢琴 data segment ...
  • leixiaolan
  • leixiaolan
  • 2013年11月27日 19:54
  • 1228

用Python制作简单的钢琴程序的教程

这篇文章主要介绍了用Python制作简单的钢琴程序的教程,用键盘演奏、包括变速和变调等功能的实现,需要的朋友可以参考下录一段音频,把它的音高改变50次并把每一个新的音频匹配到键盘的一个键位,你就能把电...
  • AnneQiQi
  • AnneQiQi
  • 2016年10月27日 13:50
  • 726

JAVA 一个简单的图形界面计算器

package 计算器; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JOptionPan...
  • xh078910
  • xh078910
  • 2016年02月27日 07:00
  • 1590

Android学习笔记之自定义View(钢琴键盘部件)

转眼都过去大半个月了,自己选择了很多路,也想让自己走出个名堂来。总是把很多事情都想得太美好。或者说一无所知的走下去必有收获。最近在家里闲着,工作也不好找,所以自己趁空余时间学习了,在学习中看到了自定义...
  • DameinMax
  • DameinMax
  • 2015年12月31日 11:04
  • 857

Java swing实现钢琴程序,支持录音等功能之Java钢琴源码

今天给大家介绍一下Java实现钢琴的小程序,程序虽小,功能挺多,支持循环播放,录音等功能,首先简单介绍下源码结构: 1.先看看钢琴界面实现,添加相应滴监听事件: /* * @(#)MidiSynth...
  • llqqxf
  • llqqxf
  • 2017年03月27日 10:39
  • 918

用python做一个简易的图形界面

这里使用Tkinter库,还有很多别的图形库,但是我觉得Tkinter比较简单,我才学几天,但是就有点入门了,一些基本的思想,基本函数的意思也大致弄清了,所以Tkinter还是比较简单易用的。 ...
  • zazzle
  • zazzle
  • 2013年05月31日 11:35
  • 2414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一架小钢琴——图形界面与发声技术的简单应用
举报原因:
原因补充:

(最多只允许输入30个字)