Attractor II(COBOLで音楽を生成 -3-)
初版 2019/08/18 00:35
改訂 2019/08/30 03:18
COBOLは事務処理用の言語と言われていますが、テキストデータの処理はけっこうできるので、他のアプリと連携すればたいていのことは出来てしまいます。
この作品は2枚の翼と呼ばれるアトラクターをプロットするためのデータをCOBOLで生成し、グラフィック処理と音楽生成処理を別のアプリで行った例です。
グラフのプロットは「gunplot」音楽データ(MML)への変換にはスクリプト言語「awk」を使っています。
![](https://muuseo-jp.s3-ap-northeast-1.amazonaws.com/uploads/1566056475614-5i833uuzw1p-e67739c94393a0ce18fb902345844389/atractor.jpg)
Attractor II
![](https://f4.bcbits.com/img/a0872756793_5.jpg)
Attractor II | YAMAZAWA
Attractor II by YAMAZAWA, released 29 July 2015 1. 壱之巻(大型竪琴) 2. 弐之巻(鳴りもの)
https://yamazawa.bandcamp.com/album/attractor-ii
[データ生成プログラム]
program-id. attractor2.
data division.
working-storage section.
01 i pic 9(6).
01 a pic s9v999999.
01 b pic s9v999999.
01 x0 comp-2.
01 x1 comp-2.
01 y0 comp-2.
01 y1 comp-2.
01 ad pic x(20).
procedure division.
display '2mai no tsubasa' upon syserr
display 'a=' upon syserr no advancing accept ad compute a = function numval(ad)
display 'b=' upon syserr no advancing accept ad compute b = function numval(ad)
compute x0 = 0.1 compute y0 = 0
perform varying i from 1 by 1 until i > 10000
compute x1 = y0 + a * x0 + (5 * x0 ** 2) / (1 + x0 ** 2) + 1 - 0.2 * function exp(-y0 ** 2)
compute y1 = -b * x0 + 5 * (-1 ** i)
display x1 ' ' y1
compute x0 = x1 compute y0 = y1
end-perform
exit program.
10000個のデータがプロットされる様子。こちらは「processing」で書きました。
![](http://muuseo.com/diary_ogp_icon.jpg)
Attractor2
null
http://etext-music.com/processing/attractor2.html
#プログラミング #COBOL
![File](https://d17x1wu3749i2y.cloudfront.net/2019/08/01/18/45/52/659413ae-4e5b-45a3-99ba-7831945efb12/file.jpg)
mugen
様々なプログラミング言語を使って、音楽を自動作曲しています。
使用している言語
・awk
・COBOL
・JavaScript
・R
・サクラ
・ドリトル
・なでしこ
https://yamazawa.bandcamp.com/
17人がフォロー中
-
Visits
101,008
-
Items
1,157
-
Lab Logs
100
-
Likes
776
Since August 2019
![Default](https://d3caz7hhiepl95.cloudfront.net/assets/user/default-6344dcd9594efe2c770024a51c383175.png)