在了解如何自己编曲做歌之前,我们先要明确一首歌曲从idea到发行的主要流程。
一首歌曲制作的主要流程有如下几个步骤:作曲——编曲——录音——混音——母带。
作曲人在有灵感之后把灵感记录下来,这就是作曲,然后找到相关的技术人员,使用电脑中的软件(如FLStudio)进行编曲,这时会生成第一版Wav文件,称为Demo。
在编曲工作完成之后,作曲人和编曲人会对整首歌曲进行审视,如果软件音源的质量不尽人意,就需要请乐队进行实录,如果需要vocal,就要对其进行录制。这就是录音,在录音之后再对所有元素进行混音,最后再做母带,这样一首歌就制作完成了。
编曲的基本步骤流程1·准备为歌曲伴奏的各种乐器,以电声四大件为主并安排它们的声像摆放位置。
2·设计好主旋律并为其配置简易和声走向框架(可用吉它扫弦、钢琴这些主伴奏乐器的柱式和弦烘托出歌曲意境就行)。
3·为主旋律配置基本固定鼓节奏,若本歌曲定义无鼓则跳过此步。
4·设计低音贝斯给已经有了的主旋律与和声节奏。
5·反复推敲和声的配置效果质量力求完美。
6·依据主旋律的个性写出乐曲前奏、间奏、尾奏(可以是主旋律部分再现,既可是主旋律部分变奏或是完全新颖的乐段但须结合主旋律做到头尾良好交接)。领奏乐器音色宜选与主伴奏乐器不同的弦乐、木管乐、沙克、口琴、提琴为宜。
7·再次精细地选择主伴奏乐器的音色以做到与主旋律贴切突出意境,再次精细设计主伴奏乐器的音型节奏求得生动与新意。
8.设计乐曲间的过渡乐段、乐句的节奏型和领奏乐器在这些过渡乐段、乐句上所用的加花引导句型或复调句型。
9·设计辅助次要乐器的声部与句型(对于乐曲起到色彩点缀的风铃、编钟、自然界风声、雨声、汽车声、与合成器特殊效果)通常这类音色在乐曲中不会占据大的篇幅甚至只有几个音符。
10·完整听取全曲,对主歌(弱潮)副歌(高潮)作情绪起伏处理修饰,这种修饰将会用到力度线与表情控制器的描绘。
11·置换耳机、音响来听调整各个乐器的音量平衡,因为单一的监听器材会强调或弱化某乐器的音色如耳机会突出小提琴却弱化电贝斯与大提琴等……
12·最后,为所有乐器发送空间效果(混响、合唱)构建声场环境。
我们知道,音乐是音高和音长的有序组合,设计微机音乐最重要的就是如何定义音高和音长,以及如何让扬声器发出指定的音符。下面给出音符与频率的关系表。C语言提供的三个函数sound( )、nosound( )和clock( )可以很方便地解决上述的问题。sound( )函数可以用指定频率打开PC机扬声器直到用nosound( )函数来关闭它; clock( )函数正好用来控制发声时间,而且它不受PC机主频高低的影响。下面这段程序可使微机发出c调1的声音。音符与频率关系表
音符 c d e f g a b
1 2 3 4 5 6 7
频率 262 294 330 349 392 440 494
音符 c d e f g a b
1 2 3 4 5 6 7
频率 523 587 659 698 784 880 988
音符 c d e f g a b
1 2 3 4 5 6 7
频率 1047 1175 1319 1397 2568 1760 1976
#include<stdio.h>
#include<dos.h>
void pause(int)
void sound1(int,int)
void main(void)
{
int i,freq,speed=5
int time=4*speed
char *qm="iddgwwwQQgfff dddfghhhggg ddgwwwqqgfff\
ddffhjqqqqq wpggjhgddgqq hhqwwqjjjggg\
ddgwwwqqqgfff ddffhjqqqqqq"/*定义歌曲*/
while (*qm++ !='\0'){
i=1
switch(*qm){
case 'k':
time=1*speedi=0
break
case 'i':
time=6*speedi=0
break
case 'o':
time=10*speedi=0
break
case 'p':
pause(time)i=0
break
case 'a':
freq=523
break
case 's':
freq=587
break
case 'd':
freq=659
break
case 'f':
freq=698
break
case 'g':
freq=784
break
case 'h':
freq=880
break
case 'j':
freq=988
break
case 'z':
freq=262
break
case 'X':
freq=294
break
case 'c':
freq=330
break
case 'v':
freq=349
break
case 'b':
freq=392
break
case 'n':
freq=440
break
case 'm':
freq=494
break
case 'q':
freq=1047
break
case 'w':
freq=1175
break
case 'e':
freq=1319
break
case 'r':
freq=1397
break
case 't':
freq=2568
break
case 'y':
freq=1760
break
case 'u':
freq=1976
break
default:
i=0
break
}
if(i)
sound1(freq,time)
}
}
void sound1(int freq,int time) /*freq为频率,time为持续时间*/
{
union{
long divisor
unsigned char c[2]
}count
unsigned char ch;
count.divisor=1193280/freq/* 1193280 是系统时钟速率*/
outp(67,182)
outp(66,count.c[0])
outp(66,count.c[1])
ch=inp(97)
outp(97,ch|3)
pause(time)
outp(97,ch)
}
void pause(int time)
{
int t1,t2
union REGS in,out
in.h.ah=0X2c
int86(0X21,&in,&out)/* 取当前时间*/
t1=t2=100*out.h.dh+out.h.dl/*out.h.dh 为秒值,out.h.dl 为1/100 秒值*/
while(t2-t1<time)
{
int86(0X21,&in,&out)
t2=100*out.h.dh+out.h.dl
if (t2<t1)t2+=6000/* 增加一分钟*/
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)