*************************完成第三部分*****************************
************人员管理是不是人员伏迹的增加也删除等 *** 作******************
有关说明:
1.首次运行时,由于没有建雀腊立用户信息数据文件,系统会自动创建,会出现登陆面致慢的现象!
2.2和3权限的人,可以进入修改用户信息,但只能修改自己的密码,不能进行其他任何 *** 作,如:不能修改权限.
3.其他的自己运行就知道了!!!!!!!!!!!!!!!!!!
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#include <string.h>
#include <windows.h>
//结构3:用户档案
struct user{
int p_id//人员序号
char usr[20]//用户名
char psd[10]//密码
int level//权限级别(1-全部权限2-只能新增和查询3-只能查询)
}us[10]={{1,"admin","admin",1},{2,"kinglin","kinglin",2}},Online_User={0,"","",3}
//Oneline为在线用户,可用于权限级别等限制!!!
//第三部分:人员管理
void user_menu(struct user *show_user)
void user_add(struct user *show_user)
void user_find(struct user *show_user)
void user_update(struct user up_user)
void user_del(struct user *show_user)
//第四部分:休闲小游戏及登录程序和界面设计
void main_menu()
void game_play()
void user_login()
//另外:文件 *** 作
void data_user_read_file(struct user *show_user)
void data_user_write_file(struct user *show_user)
void main()
{
data_user_read_file(us)
user_login()
main_menu()
}
void main_menu()
{
int select
system("cls")
system("color f1")
printf("\n\n\t\t\t+==============================+\n")
printf("\t\t\t| |\n")
printf("\t\t\t| 1->歌曲基本数据管理 |\n")
printf("缺岁并\t\t\t| 2->歌曲点取播放 |\n")
printf("\t\t\t| 3->人员权限管理 |\n")
printf("\t\t\t| 4->休闲小游戏|\n")
printf("\t\t\t| 5->退出系统 |\n")
printf("\t\t\t| |\n")
printf("\t\t\t+==============================+\n")
scanf("%d",&select)
switch(select)
{
// case 1: music_menu()break
// case 2: play_menu()break
case 3: user_menu(us)break
//case 4: game_play()break
case 5: data_user_write_file(us)exit(1)break//退出前保存数据。
default:printf("选项输入错误!请选择(1-5):")
}
}
void user_login()
{
int i,count=0
char u_name[10]
char u_psd[10]
do{
system("cls")
system("color f1")
printf("\n")
printf("\t\t ")
for(i=1i<=60000000i++)
{
if (i%3000000==0)
printf("☆")
}
printf("\n\n\t\t\t 欢迎进入KTV点歌系统! \n")
printf("\t\t\t \n")
printf("\t\t\t 风花雪月 \n")
printf("\t\t\t 研发小组 \n")
printf("\t\t\t 组长:王林 \n")
printf("\n\t\t\t 艾生芳 罗泽宇 邓丰波\n")
printf("\n\t\t\t 2007/08/15\n")
printf("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t ")
for(i=1i<=60000000i++)
{
if (i%3000000==0)
printf("★\b\b")
}
printf("\n")
printf("\n\t\t\t用户名:")
fflush(stdin)
gets(u_name)
printf("\n\t\t\t密 码:")
for(i=0i<10i++)
{
fflush(stdin)
u_psd[i]=getch()
if (int (u_psd[i])==13)
{
u_psd[i]='\0'
break
}
else if (int (u_psd[i])==8)
{
i=i-2
printf("\b \b")
}
else
printf("*")
}
u_psd[i]='\0'
for(i=0i<10i++)
{
if(strcmp(u_name,us[i].usr)==0&&us[i].p_id>0)
break
}
if (strcmp(u_psd,us[i].psd)==0)
{
printf("\n\t\t\t\t登陆成功!\n")
Sleep(1500)
for(i=0i<sizeof(us)/sizeof(us[0])i++)
{
if(stricmp(us[i].usr,u_name)==0)
{//登陆成功,记录用户信息
Online_User.p_id=us[i].p_id
sprintf(Online_User.usr,"%s",us[i].usr)
sprintf(Online_User.psd,"%s",us[i].psd)
Online_User.level=us[i].level
break
}
}
break
}
else
{
count++
if(count>=3)
printf("三次密码不正确,请稍后再试!")
else
printf("\n\t\t\t用户名或密码不正确,请重新输入!\n")
}
}while(count<3)
}
void user_menu(struct user *show_user)
{
int sign=1,select
while(sign)
{
system("cls")
system("color b1")
printf("\n\n\t\t\t+==============================+\n")
printf("\t\t\t| |\n")
printf("\t\t\t| 1->增加用户信息 |\n")
printf("\t\t\t| 2->删除用户信息 |\n")
printf("\t\t\t| 3->查询用户权限 |\n")
printf("\t\t\t| 4->修改用户信息 |\n")
printf("\t\t\t| 5->退出管理 |\n")
printf("\t\t\t| |\n")
printf("\t\t\t+==============================+\n")
printf("选择 *** 作数:")
fflush(stdin)
scanf("%d",&select)
if((Online_User.level==2&&select==2)||(Online_User.level==3&&select!=3&&select!=4&&select!=5))
select=6
switch(select)
{
case 1: user_add(show_user)break
case 2: user_del(show_user)break
case 3: user_find(show_user)break
case 4: user_update(Online_User)break
case 5: sign=0break
case 6: printf("\t\t\t警告:你的权限不足,3 秒后自动返回!")Sleep(3000)break
default:printf("选项输入错误!请选择(1-5):")
}
}
}
void user_update(struct user up_user)
{
int sign=1,select,level=1,i
char usr[20]="",psd[10]=""//密码
char psd_1[10]=" "//重复密码
while(sign==1)
{
system("cls")
printf("\t\t\t===================================\n")
printf("\t\t\t++ KTV点歌系统--更新用户信息 ++\n")
printf("\t\t\t++ 1.修改密码 ++\n")
printf("\t\t\t++ 2.设置权限 ++\n")
printf("\t\t\t++ 3.更新用户库 ++\n")
printf("\t\t\t++ 4.返回上一菜单 ++\n")
printf("\t\t\t===================================\n")
fflush(stdin)
scanf("%d",&select)
if((Online_User.level==2||Online_User.level==3)&&select!=1&&select!=4)
select=5
switch(select)
{
case 1: printf("\t\t\t 新 密 码:")
fflush(stdin)
scanf("%s",psd)
printf("\t\t\t 重复密码:")
fflush(stdin)
scanf("%s",psd_1)
if(stricmp(psd,psd_1)!=0)
{ printf("\t\t两次输入密码不一致!3秒后返回自动!\n")Sleep(3000)break}
sprintf(up_user.psd,"%s",psd)
for(i=0i<sizeof(us)/sizeof(us[0])i++)
if(stricmp(us[i].usr,up_user.usr)==0&&us[i].p_id>0)
{ sprintf(us[i].psd,"%s",psd)break}
data_user_write_file(us)
break
case 2: printf("\t\t\t 用 户 名:")
fflush(stdin)
scanf("%s",usr)
printf("\t\t\t 设置权限:")
fflush(stdin)
scanf("%d",&level)
for(i=0i<sizeof(us)/sizeof(us[0])i++)
if(stricmp(us[i].usr,usr)==0&&us[i].p_id>0)
{ us[i].level=levelbreak}
data_user_write_file(us)
break
case 3: data_user_write_file(us)break
case 4: sign=0break
case 5: printf("\t\t\t警告:你的权限不足,3 秒后自动返回!")Sleep(3000)break
default:printf("选项输入错误!请选择(1-3):")
}
}
}
void user_add(struct user *show_user)
{
int i,sign=1
char usr_cp[20],usr[20]=""//用户名
char psd[10]=""//密码
char psd_1[10]=" "//重复密码
int level
while(sign)
{
sign=0
system("cls")
printf("\t\t\t===================================\n")
printf("\t\t\t++ KTV点歌系统--添加用户 ++\n")
printf("\t\t\t===================================\n")
printf(" 注意: 1.根据提示,输入用户名、密码、并设置用户权限!\n")
printf(" 2.权限级别(1-全部权限2-只能新增和查询3-只能查询.\n\n")
printf("\t\t\t 用 户 名:")
fflush(stdin)
scanf("%s",usr)
printf("\t\t\t 密码:")
fflush(stdin)
scanf("%s",psd)
printf("\t\t\t 重复密码:")
fflush(stdin)
scanf("%s",psd_1)
printf("\t\t\t 设置权限:")
fflush(stdin)
scanf("%d",&level)
for(i=0i<sizeof(show_user[0])/sizeof(show_user)i++)
{
sprintf(usr_cp,"%s",show_user[i].usr)
if(stricmp(usr_cp,usr)==0||stricmp(usr,"*")==0)
{ sign=1printf("\t\t输入的用户名已经存在或者为空!1 秒后自动返回!\n")Sleep(1500)break}
}
if(stricmp(psd,psd_1)!=0&&sign==0)
{ sign=1printf("\t\t两次输入密码不一致!3 秒后自动返回!\n")Sleep(1500)break}
for(i=0i<sizeof(show_user[0])/sizeof(show_user) &&sign==0i++)
{
if(show_user[i].p_id==0)
{
show_user[i].p_id=i+1
sprintf(show_user[i].usr,"%s",usr)
sprintf(show_user[i].psd,"%s",psd)
show_user[i].level=level
data_user_write_file(show_user)
break
}
if(i-1==sizeof(show_user[0])/sizeof(show_user)) {printf("已达到最大用户数!")}
}
}
}
void user_find(struct user *show_user)
{
int i,sign=1
char usr_cp[20],usr[20],ctnu='Y'
while(ctnu=='Y'||ctnu=='y')
{
system("cls")
printf("\t\t\t===================================\n")
printf("\t\t\t++ KTV点歌系统--用户信息查询 ++\n")
printf("\t\t\t===================================\n")
printf("\t\t 提示:输入*号,可查询所有用户信息!\n")
printf("\t 用 户 名:")
fflush(stdin)
scanf("%s",usr)
printf("%d",stricmp(usr,"*"))
if(stricmp(usr,"*")==0)
{
printf("\t\t\t 编号 用户名 用户权限\n")
for(i=0i<sizeof(show_user[0])/sizeof(show_user)i++)
if(show_user[i].p_id>0)
printf("\t\t\t\t %d %s %d\n",show_user[i].p_id,show_user[i].usr,show_user[i].level)
}
for(i=0i<sizeof(show_user[0])/sizeof(show_user) &&stricmp(usr,"*")!=0i++)
{
sprintf(usr_cp,"%s",show_user[i].usr)
if(stricmp(usr_cp,usr)==0&&show_user[i].p_id>0)
{
printf("\t\t\t 编号 用户名 用户权限\n")
printf("\t\t\t\t%d %s %d\n",show_user[i].p_id,show_user[i].usr,show_user[i].level)
break
}
}
if(i==sizeof(show_user[0])/sizeof(show_user)&&stricmp(usr,"*")!=0)
printf("\t\t 用户不存在。\n")
printf("\n\t\t\t继续-查询 *** 作?(Y||N):")
fflush(stdin)
scanf("%c",&ctnu)
}
}
void user_del(struct user *show_user)
{
int i
char usr_cp[20],usr[20],ctnu='Y'
while(ctnu=='Y'||ctnu=='y')
{
system("cls")
printf("\t\t\t===================================\n")
printf("\t\t\t++ KTV点歌系统--删除用户 ++\n")
printf("\t\t\t===================================\n")
printf("\t\t\t 用 户 名:")
fflush(stdin)
scanf("%s",usr)
for(i=0i<sizeof(show_user[0])/sizeof(show_user)i++)
{
sprintf(usr_cp,"%s",show_user[i].usr)
if(stricmp(usr_cp,usr)==0&&stricmp(usr_cp,"admin")!=0&&show_user[i].p_id>0)
{
printf("\t\t已删除: 编号 %d 用户名 %s 用户权限 %d 的用户。\n",show_user[i].p_id,show_user[i].usr,show_user[i].level)
show_user[i].p_id=0
sprintf(show_user[i].usr,"%s","")
data_user_write_file(show_user)
break
}
}
if(i==sizeof(show_user[0])/sizeof(show_user)) printf("\t\t\t 用户不存在,删除失败。\n")
printf("\n\t\t 继续下一个-删除 *** 作?(Y||N):")
fflush(stdin)
scanf("%c",&ctnu)
}
}
void data_user_read_file(struct user *show_user)
{
FILE *fp
int i
if((fp=fopen("user_data.dat","rb"))==NULL)
{
fp=fopen("user_data.dat","wb+")
printf("Can not open the oid_data_file,It's a new_data_file!\n")
Sleep(3000)
}
for(i=0i<sizeof(show_user[0])/sizeof(show_user)i++)
{
fseek(fp,i*sizeof(struct user),0)
fread(&show_user[i],sizeof(struct user),1,fp)
}
fclose(fp)
}
void data_user_write_file(struct user *show_user)
{
FILE *fp
int i
if((fp=fopen("user_data.dat","wb"))==NULL)
{
printf("Can not open the file\n")
exit(0)
}
for(i=0i<sizeof(show_user[0])/sizeof(show_user)i++)
{
fseek(fp,i*sizeof(struct user),0)
if(fwrite(&show_user[i],sizeof(struct user),1,fp)!=1)
printf("File write error\n")
}
fclose(fp)
}
!!!!!!!!!!!!!!!!!!!!!!!!!自己去稍微做修改!!!!!!!!!!!!!!!!!!!!!!!!!
********************************结束******************************
第一步. 准备工作要完成一张卡拉OK专辑的制作,无论是从硬件还是软件上都有一些基本的要求,需要作一些事先的准备,这主要是为我们后面的各项 *** 作提供方便,以使每一步骤能够顺利的完成。
硬件方面首先需要一台配置较高的PC电脑,快速的CPU和大容量硬盘不可缺少。其他基本硬件配置:声卡和麦克风,这是整个歌曲制作的硬件环节中最重要的部分,将专门在第二步中介绍。
软件要求:
1、VCD素材采集及音频提取软件:
在卡拉OK歌曲伴奏音乐获取过程中,需要一个采集VCD素材并进行音频提取的软件,Cakewalk、Sound Forge、GoldWave、Cool Edit等都能胜任此项工作,推荐使用大家较为熟悉的Cakewalk,它卜搭不仅可以胜任视频素材中的声音提取,对MIDI文件转换为卡拉OK伴奏曲也非常有效,可谓一举多得。
而在消除CD歌曲原唱人声方面,有DeComposer、Dart Karaoke Pro、Vogone等多种选择,这里介绍Vogone的使用。
2、录音软件
获取了卡拉OK伴奏音乐素材之后,就要开始录音了。
在众多录音软件中,Samplitude、Nuendo、Cool Edit等专业软件当然最好,但对普通用户来说,掌握一个 *** 作最简单、上手最容易的录音软件才是关键,因此以刚推出不久的Vegas最新版Vegas Video 3.0为例。
3、效果器
最后以Noise Reduction、TC、DSP/FX等常用效果器对声音进行润色,调制出自己的天籁之声。
4、刻录软件
在后期的成品输出中,需要准备一个刻录软件以将歌曲刻录成CD格式供我们保存和欣赏。 在市场上品种繁多的刻录软件中,以Nero为例,它简单、实用,更方便于初学者的使用。
也可以将音乐保存为Mp3、Wma、Rm等格式以便网上交流,所以应同时准备几个类似Lame的编码压缩软件,这里的选择就更加自由了。
第二步. 硬件设备介绍
1、 麦克风既然要录制自己的歌声,那么一个高质量的麦克风成为声音输入的第一道关逗咐口。不要指望10元钱的多媒体麦克风能够录制出天籁之声,哪怕后期用再好的软件进行处理、润色都不可能挽回前期麦克风录音时造成的致命缺憾。想要自己的声音播放出来满意的效果,起码要100元以上的动圈麦克风。,市面上能够买到的大众型、普及型卡拉OK麦克风基本上都在这个价位,推荐使用Shure BG 1.1(舒尔1.1,参考价格120元),飞乐FEILO(上海飞乐公司生产,参考价格180元)等。这样的麦克风录制出来的声音山弊纯清晰、饱满,而且动圈麦克风灵敏度不太高,在家里录音时不容易将房间和电脑噪音一起录进去,都是不错的选择。
2、 声卡 有了较好的输入设备麦克风,就要来选择声音进入电脑的最重要屏障-声卡。录音过程中,麦克风的声音信号经过声卡的Mic In端口输入电脑之中,用软件将这些信号记录下来,所以声卡的好坏直接影响记录的音频数据品质。太差的声卡(某些集成在主板上的声卡)会由于信噪比太低使录入的声音混浊不清,有的还会过多占用CPU资源,造成爆音、破音。另一方面,在声音回放过程中,质量差的声卡也会出现动态分配不均,频响失调等现象,严重影响录音和收听质量,因此选择一块价位适度,性能出色的PCI声卡就显得十分重要了。在市面上玲琅满目的声卡品种中,首推创新公司的SB Live!系列,现在SB Live!的数码版、简化版已经下降到了很低的价位,花300多元就能买到,是信价比最高的声卡之一。当然有条件的话也可以购买创新Audigy声卡和专业音频卡Maya(但仅仅满足普通用户的卡拉OK录音需求,300元左右的声音卡就足够了。)
3、音箱 声卡选择完毕之后,就只剩下音箱了。音箱的选择余地很大,家庭影院的落地式音箱、听音乐用的书架式音箱均可,但电脑爱好者一般倾向于多媒体音箱,象三诺、轻骑兵等等口碑都不错,只是注意从音乐监听的角度来说,最好不要使用2.1、5.1等分离式多体音箱,左右声道各一只是最好的搭配。
好了,软硬件都备齐后就可以开始实际 *** 作了。
第三步. 卡拉OK伴奏带的获取和制作
要制作卡拉OK歌曲,首先得有卡拉OK伴奏带。获取卡拉OK伴奏带通常有三种方法:从VCD中抓取、用MIDI文件转换、消除CD中人声原唱。
1、从VCD中抓取,就是指从那种左右声道分离的歌曲MTV影碟中提取单独声道,并强行转换为立体声,用作伴奏音乐。这种影碟在市面比较常见,很多流行的歌曲都能够找到。
提取的方法也多种多样,最简单地一种,是用Cakewalk直接打开它,然后保存就行了。启动Cakewalk之后,选择File菜单下的Import Video File命令,并把打开文件类型选择为All Files,最后指定你要打开的VCD歌曲文件即可(一般是在VCD光盘下Mpegav目录中的*.dat文件)。不一会儿就会看到歌曲的音频文件出现在Cakewalk的音轨中,将它设置为伴奏声道的位置,再选中它后用Tools下的Audio mixdown命令导出为一个Wav文件,并将导出格式设定为Export to Stereo Files(强制转化为立体声文件)。
当然,也可以用一个VCD播放器(如超级解霸)和一个录音软件(如Vegas)组合起来,一边播放一边录音(注意,播放时只能播放伴奏声道),只需要将声卡录音端口设置为Wav就行了,也比较方便。
2、用MIDI文件转换,现在互联网上MIDI文件资源比较丰富,很多歌曲都能找到它的MIDI伴奏文件,将这些文件通过MIDI播放器转换成Wav格式就可以用作伴奏素材了,但其音质会依赖于你的播放器音源,因此我们推荐使用软波表进行播放(如Yamaha SYXG100 Plus、Roland VSC88等)。
打开SYXG100 Plus,并将MIDI文件添加进播放菜单,同时启动Vegas做好准备,然后将声卡录音端口设为Wav后就可以一边播放一边在Vegas里录音了,完毕后保存为一个Wav文件 。
会使用Cakewalk的朋友也可以在Cakewalk中将MIDI文件打开,并把MIDI Out设置为软波表软件,然后添加一个音频音轨,一边播放一边录音,最后将录制完成的音频音轨导出为一个Wav文件。
用MIDI文件作为伴奏带还有一个优势就是它可以任意的改变歌曲速度和调式,对那些酷爱演唱高难歌曲,但自己嗓音的音域又有限的朋友将会有很大的帮助。
3、消除CD中人声原唱,如果你喜欢的歌曲既买不到VCD伴奏带,又找不到MIDI伴奏文件,那么就只好自己动手制作卡拉OK伴奏带了,采用的方法是使用Vogone这个软件,在一定程度范围内,将CD歌曲中的人声原唱消除掉,以使它直接成为伴奏音乐供我们使用。
启动Vogone 2.0之后,出现对话框,在Select Input File中选择歌曲的Wav文件,然后用Select Output File指定一个输出文件的路径。接下来就可以开始调节各个红色按钮的参数了,调节完毕后可以直接按下这个按钮试听效果,或者使用Vogone提供的预设值Play Vogone 1和Play Vogone 2,立即就可以听到消音后的歌曲,非常简单。
当然,消音后的效果根据歌曲的不同也有所区别,对大多数歌曲来说都可以起到一定程度上的消音作用,但消音后的低频有所衰减,可以使用Vegas的均衡器进行弥补。
一般的卡拉OK伴奏音乐的获取和制作逃不出上面介绍的3种方法,当成功进行了上述 *** 作之后就完成了整个制作过程的音乐部分了,接下来就进行录音和后期合成的步骤。
第四步. 录音和效果处理
1、录音,是记录唱歌声音的主要步骤,直接影响卡拉OK歌曲的最终质量。正确的录音方法能够忠实地记录下演唱中的发音、气息、吐字等各个环节的情况,保证较好的听觉效果。
启动Vegas Video 3.0之后,展现在我们面前的是它简洁、大方的主界面。在使用过程中你会发现Vegas的菜单命令非常少,主要的 *** 作都是通过鼠标左右键配合完成的,省去了不少的麻烦,对初学者来说最实用不过了,能够迅速上手。
直接在屏幕下方的文件浏览器中将先前保存的歌曲伴奏Wav文件提取到上面的音轨编缉区,形成一条伴奏音乐的音轨。然后用Ctrl+Q添加一个空白音频轨道,用来录制人声。将音轨前方的红色Arm for record按钮激活并选择一个录音后文件的保存位置,按下Record按钮后就可以对着麦克风正式开始录音了。
值得注意的是,录音前必须将声卡的录音端口设置为Mic,不然录音 *** 作不能成功完成。录音过程中唱错了不要紧,将指针停在错误的地方,用S键将其切割开来,删除后重新录制。如果要调整人声的音量大小,选择右键菜单的Insert Envelope-Volume,在出现的一条音量控制线上进行调整。
2、降噪,是录音完毕后的第一项处理措施,因为录音的环境有限,时常在录音时把其他一些不必要的杂音、噪音也一起录制进来了,因此用降噪的方法消除这些噪音就成了弥补录音缺陷的主要方法,使用Sonic Foundry Noise Reduction这个插件效果器进行处理。
首先用Vegas的Tools-Audio-Insert Assignable Fx命令打开效果器选择对话框,单击Sonic Foundry Noise Reduction后用OK确定。在d出的对话框中选择预设值Default for fast computers,最后在人声音轨前方Pan字样处选择FX1并将它的值设置到最大就可以了。
3、压缩效果器,对没有经过专业声乐训练的朋友来说,唱歌过程中经常会出现某些字发音的音量过大,而另外一些字音量又过小的现象,这就严重影响了歌曲平稳的听觉效果,我们需要用压缩效果器对其进行均衡地处理,让音量过大的地方压下来,过小的地方提上去。Vegas自带了一个效果理想的压缩效果器,只需要点击音轨前方的Track FX,并选择到Track Compressor选项卡,然后调节各种参数或者直接调用Soft Limit预设值就行了。现在再听听效果,感觉是不是大不一样了?
4、混响效果器,要解决人声和音乐的融合性问题,就得适当给人声加一点混响效果,使其听上去更润泽、更具空间感。用上面同样的方法给人声音轨添加一个TC Reverb混响效果器,并选择Medium Room(中等大小的房间)作为混响空间,在音轨前方调节这个效果器分配的值后就会明显听到声音的变化。现在感觉人声饱满、润泽多了,和音乐交织在一起韵味十足。
5、激励效果器,受麦克风质量的影响,可能在录音过后出现声音清晰度较差的现象,解决方法是给人声加上激励器,让唇齿音更明显,高频更明亮,低频更浑厚,可以在很大程度上提高声音的听觉感受。选择DSP/FX的Aural Activator激励效果器,在出现的参数设置界面中选择Preset预设值中的General Purpose,Medium。现在再来听听效果,感觉音质完全上升了一个档次!
完成上面的 *** 作之后,就标志着卡拉OK歌曲的所有制作工作宣告完成,接下来用Vegas的File-Render As命令将音乐音轨和人声音轨合成导出为一个Wav文件,准备进行下面的步骤。
第五步. 存储和刻录
1、刻录,完成了多首卡拉OK歌曲的制作,最好的存储方法就是将其刻录为CD格式,以便以后慢慢欣赏、回味。 Nero不仅具有光盘刻录功能,还可以用它打印专辑封面。启动Nero之后,在刻录格式对话框中选择Audio-CD,并填写上专辑名称、作者等各种版权信息用New确定。进入歌曲选择界面之后,可以直接将右边文件管理器中待选的音频文件拖入左边歌曲目录即可,在显示歌曲名称的同时还会显示它的时间长短,并且直接点击其中一个,用播放按钮可以马上听到效果。调整它们的先后顺序,最后按下File菜单下的Write CD命令就开始刻录了。
要特别注意的是,如果想要刻录出来的CD能够在普通家用CD/VCD机上播放的话,必须选择封盘刻录(Disk-At-Once),也就是说刻录后不能再往里面添加内容了,否则你的CD只能在电脑光驱中欣赏。
2、封面/盘面/内页设计,CD完成之后,想再给它包装一下,让它不仅好听,看上去也更美观,那么使用Nero提供的Cover Design就再合适不过了。Cover Design是一个功能非常强大的CD封面/盘面/内页设计软件,提供了大量的模板,使用起来非常容易。在Nero中的快捷工具栏里找到Cover Design的启动图标,按下后进入它的主界面。首先要你选择将要进行设计的部分,你可以选择是盒子外观设计还是内页设计,当然也可以调用Nero为你预置好的全套CD包装设计,省事不少。
如果你想自己动手设计一番更有个性的封面,也很简单,左边的工具栏提供了文字输入工具;圆形、方形、直线画笔工具;图片导入工具;唱片目录歌单工具等,只需简单地点点鼠标、敲敲键盘就可以完成。
3、压缩,如果你觉得光是使用CD对你的卡拉OK专辑进行宣传,力度还不够的话,你可以把它压缩成Mp3、Wma、Rm等格式在网上传播,让更多爱好音乐的朋友听到你的歌声。这里,介绍的是Mp3压缩软件中性能最好的Lame。
Lame是个绿色软件,不需要安装直接运行。它的编码程序是一个基于Dos运行环境下的EXE文件,只是借助一个WinLAMEr外壳程序让用户进行 *** 作。除了压缩速度快外,它独创动态压缩技术,就是能够动态的、用最优算法进行处理,这样既保证了音质,又缩小了容量。先用Add WAV Files按钮将一个Wav文件添加到压缩列表中,然后在Setting窗口中进行参数设置。将VBR(动态压缩比率)选中,并将VBR Quality(音质)选择到0表示最高。Location of LAME.EXE里指定编码文件的位置,在Output Directory MP3中指定输出文件路径之后就可以开始压缩了。Lame还自带了ID3歌曲信息编辑器,直接在右边的ID3 Tag Setting里面填入歌曲的各项信息,就能在播放的时候看到它们了。现在你的卡拉OK歌曲也在互联网上找到了"归宿",可以召集远方的朋友们来共同欣赏了。
Private Sub Command1_Click()
Dim s(9) As Single
For i = 0 To 9
s(i) = Val(Text1(i))
Next
For i = 0 To 8
For j = 0 To 8 - i
If s(j) < 棚搭s(j + 1) 耐配Then
链亩拿 r = s(j)
s(j) = s(j + 1)
s(j + 1) = r
End If
Next j
Next i
For i = 1 To 8
Sum = Sum + s(i)
Next
Label3.Caption = Sum / 8
End Sub
Private Sub Command2_Click()
For i = 0 To 9
Text1(i) = ""
Next
Label3.Caption = ""
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)