Attractor II(COBOLで音楽を生成 -3-)
初版 2019/08/18 00:35
改訂 2019/08/30 03:18
COBOLは事務処理用の言語と言われていますが、テキストデータの処理はけっこうできるので、他のアプリと連携すればたいていのことは出来てしまいます。
この作品は2枚の翼と呼ばれるアトラクターをプロットするためのデータをCOBOLで生成し、グラフィック処理と音楽生成処理を別のアプリで行った例です。
グラフのプロットは「gunplot」音楽データ(MML)への変換にはスクリプト言語「awk」を使っています。
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」で書きました。
#プログラミング #COBOL
mugen
様々なプログラミング言語を使って、音楽を自動作曲しています。
使用している言語
・awk
・COBOL
・JavaScript
・R
・サクラ
・ドリトル
・なでしこ
https://yamazawa.bandcamp.com/
17人がフォロー中
-
Visits
107,928
-
Items
1,160
-
Lab Logs
100
-
Likes
777
Since August 2019