一键生成舞曲编排的小程序(perl)
以下是要求
舞曲编排
一、分类
|快 | 慢
架型舞| 快三,中三,维也纳华尔兹| 慢三,华尔兹,(并四)
拉手舞| 吉特巴,平四 | 伦巴
二.排曲要求及注意事项:
(一)要求
1.拉手舞和架型舞交错
2.快慢交错
3.集体舞尽可能平均分布(一般十八摸,蒙古舞放在后面)
4.吉特巴和并四不要排在一起
5.总时长两个半小时左右,一般42宁可多一首不可少一首。
(二)注意事项:
1.每一种舞的节拍是不变的,但节奏的快慢是不一样的。例如华尔兹舞种都是三拍,但可分为维也纳华尔兹(快节奏)和华尔兹(慢节奏)。吉特巴、并四的节奏通常比较欢快,但也有很多慢节奏的,排的时候要注意听。所以一首舞曲的快慢不能只凭舞名分别。排曲的时候应特别注意。
借用代码注意选择三个文件夹,点歌,曲库,我的舞会。点歌,曲库里面放歌曲文件,排曲会优先考虑点歌里的文件。生成曲库后会把曲库里的音乐文件复制到文件夹 我的舞会 中去, 并在文件名开头标记顺序(00-42)
歌曲文件名必须包括关键字(慢三 慢四 中四 并四 中三 快三 华尔兹 维也纳 探戈 脱掉 64步 32步 16步 蒙古舞 集体恰恰 兔子舞 阿拉伯之夜 踩蟑螂 玛卡琳娜 十八摸 平四 吉特巴 伦巴 );
@list 里面放的是排曲模版顺序,可以自己改。
生成列表打印在屏幕上,会车开始复制操作
use 5.014;#一键排舞,排曲,舞曲序列
use strict;
use autodie;
my @jxw =qw (慢三 慢四 中四 并四 中三 快三 华尔兹 维也纳 探戈);#jxw 架型舞
my @jtw =qw (脱掉 64步 32步 16步 蒙古舞 集体恰恰 兔子舞 阿拉伯之夜 踩蟑螂 玛卡琳娜 十八摸); #jtw 集体舞
my @dsw =qw (平四 吉特巴 伦巴 ) ; #搭手舞
my @jxwn; my @dswn;my @jtwn;
my $dir='
C:\Users\Music\舞会曲目排曲\曲库
';#写上主曲库的位置
$dir=~ s/\s//g;#print "$dir\\*";
my (@files) = glob ( "$dir\\*" );
my %dctp;#dancetype
LINE:foreach my $file(@files) {
foreach my $wd(@jxw