- data Tones2Hz;
- %let Do = 261.6256;
- %let Re = 293.6648;
- %let Mi = 329.6276;
- %let Fa = 349.2282;
- %let So = 391.9954;
- %let La = 440.0000;
- %let Ti = 493.8833;
- call sound(&Do.,333);
- call sound(&Re.,333);
- call sound(&Mi.,333);
- call sound(&Fa.,333);
- call sound(&So.,333);
- call sound(&La.,333);
- call sound(&Ti.,333);
- run;
- data HappyBirthDay;
- infile cards missover;
- input Lyrics$ Tone Scale Beat @;
- cards;
- 祝 5 0 0.5
- 你 5 0 0.5
- 生 6 0 1
- 日 5 0 1
- 快 1 1 1
- 乐 7 0 2
- ,
- 祝 5 0 0.5
- 你 5 0 0.5
- 生 6 0 1
- 日 5 0 1
- 快 2 1 1
- 乐 1 1 2
- !
- 祝 5 0 0.5
- 你 5 0 0.5
- 生 5 1 1
- 日 3 1 1
- 快 1 1 1
- 乐 7 0 1
- 乐 6 0 2
- ,
- 祝 4 1 1
- 你 4 1 1
- 生 3 1 1
- 日 1 1 1
- 快 2 1 1
- 乐 1 1 2
- !
- ;
- run;
- data YuBeiChang;
- set HappyBirthDay;
- if Tone then do;
- Hz = Choosen(Tone,&Do.,&Re.,&Mi.,&Fa.,&So.,&La.,&Ti.) * (Scale + 1);
- call sound(Hz,Beat*333);
- end;
- run;
祝爸妈身体健康。
祝小学妹天天开心。
祝自己终有所成。
参考:
简谱 (http://www.zhaogepu.com/jianpu/87006.html)
Pinao Key Frequency (https://en.wikipedia.org/wiki/Piano_key_frequencies)
Middle C (https://en.wikipedia.org/wiki/C_(musical_note))