iooops 发表于 2016-4-2 13:45:28

【minim应用】用斐波那契数列进行算法作曲

本帖最后由 iooops 于 2016-4-2 13:51 编辑

前几天楼主不是开始连载C语言算法了嘛 - - 然后楼主就想着能不能用算法来作个曲 - -

然后就诞生了下面这个实验小项目。

最后录制的结果 - - 有点意料之外,由于内录外放的音响貌似出现了声反馈,出现了delay的效果 - - {:5_136:}
原来没加的,但是后来发现有种特殊的效果…………其实我还是觉得原来好听 - - 哎呀录坏了 - -

http://player.youku.com/player.php/sid/XMTUyMDY4MjA2NA==/v.swf


processing代码如下:
import ddf.minim.*;
import ddf.minim.ugens.*;

Minim minim;
AudioOutput out;

int []Fib = new int;
int n = 20;

void setup()
{
size(512, 200, P3D);

minim = new Minim(this);
out = minim.getLineOut();
out.setTempo(100);
out.pauseNotes();

Fib = 0;
Fib = 1;
for(int i = 2; i <= n; i++) {
    Fib = Fib + Fib;
}
for(int i = 0; i <= n; i++){
   println(Fib);
   out.playNote(Fib+4, Fib/100, 220*pow(2, 1/12)*i);
   out.playNote(Fib+4, Fib/100, 220*pow(2, 1/12)*i+i);
   out.playNote(Fib+i+4, Fib/100, 220/pow(2, 1/12)/(i+1));
   out.playNote(Fib+i+4, Fib/100, 220/pow(2, 1/12)/(i+1)+i);
   out.playNote(Fib*2+4, Fib/100, 220*i);
}

out.setNoteOffset( 8.1 );
out.resumeNotes();
}

void draw()
{
background(0);
stroke(255);

for(int i = 0; i < out.bufferSize() - 1; i++)
{
    line( i, 50 + out.left.get(i)*50, i+1, 50 + out.left.get(i+1)*50 );
    line( i, 150 + out.right.get(i)*50, i+1, 150 + out.right.get(i+1)*50 );
}
}


{:5_141:}想想还有点小兴奋呢!!

virtualwiz 发表于 2016-4-3 18:31:16

66666,可以当铃声用了

iooops 发表于 2016-4-4 00:01:12

virtualwiz 发表于 2016-4-3 18:31
66666,可以当铃声用了

{:5_124:} 这…………

iooops 发表于 2016-4-4 00:04:42

virtualwiz 发表于 2016-4-3 18:31
66666,可以当铃声用了

好吧事实证明 - - 单纯依靠斐波那契数列做出的东西并没有那么好听{:5_127:}

dsweiliang 发表于 2016-4-5 00:01:37

不明觉厉

virtualwiz 发表于 2016-4-6 17:34:41

iooops 发表于 2016-4-4 00:04
好吧事实证明 - - 单纯依靠斐波那契数列做出的东西并没有那么好听

很好听呀我觉得:lol足足的Geek范

iooops 发表于 2016-4-6 21:34:00

virtualwiz 发表于 2016-4-6 17:34
很好听呀我觉得足足的Geek范

{:5_129:}

ranieyan69 发表于 2018-4-25 21:08:38

好听!
页: [1]
查看完整版本: 【minim应用】用斐波那契数列进行算法作曲