File: haskoreexamples.html

package info (click to toggle)
hugs 1.4.199801-1
  • links: PTS
  • area: non-free
  • in suites: slink
  • size: 7,220 kB
  • ctags: 5,609
  • sloc: ansic: 32,083; haskell: 12,143; yacc: 949; perl: 823; sh: 602; makefile: 236
file content (107 lines) | stat: -rw-r--r-- 7,392 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

<title>Haskore Tutorial: Examples</title>
<body bgcolor="#ffffff"><i>The Haskore Tutorial</i><br><a href="index.html">top</a> <a href="TestHaskore.html">back</a> <a href="ChildSong6.html">next</a><hr>
section B
<a name="examples"></a><a name="sect11"></a>
<h2>11<tt>&nbsp;&nbsp;</tt>Examples of Haskore in Action</h2>
<p>

<tt>&nbsp;<br>
<br>
&gt;&nbsp;module&nbsp;HaskoreExamples&nbsp;(module&nbsp;Haskore,&nbsp;module&nbsp;TestHaskore,&nbsp;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;module&nbsp;ChildSong6,&nbsp;module&nbsp;SelfSim)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where<br>
&gt;<br>
&gt;&nbsp;import&nbsp;Haskore<br>
&gt;&nbsp;import&nbsp;TestHaskore<br>
&gt;&nbsp;import&nbsp;ChildSong6<br>
&gt;&nbsp;import&nbsp;SelfSim<br>
<br>
Simple&nbsp;examples&nbsp;of&nbsp;Haskore&nbsp;in&nbsp;action.&nbsp;&nbsp;Note&nbsp;that&nbsp;this&nbsp;module&nbsp;also<br>
imports&nbsp;modules&nbsp;ChildSong6&nbsp;and&nbsp;SelfSim.<br>
<br>
-----------------------------------------------------------------------------<br>
<br>
From&nbsp;the&nbsp;tutorial,&nbsp;try&nbsp;things&nbsp;such&nbsp;as&nbsp;pr12,&nbsp;cMajArp,&nbsp;cMajChd,&nbsp;etc.&nbsp;and<br>
try&nbsp;applying&nbsp;inversions,&nbsp;retrogrades,&nbsp;etc.&nbsp;on&nbsp;the&nbsp;same&nbsp;examples.&nbsp;&nbsp;Also<br>
try&nbsp;"childSong6"&nbsp;imported&nbsp;from&nbsp;module&nbsp;ChildSong.&nbsp;&nbsp;For&nbsp;example:<br>
<br>
&gt;&nbsp;t0&nbsp;=&nbsp;test&nbsp;(Instr&nbsp;"piano"&nbsp;childSong6)<br>
<br>
-----------------------------------------------------------------------------<br>
<br>
C&nbsp;Major&nbsp;scale&nbsp;for&nbsp;use&nbsp;in&nbsp;examples&nbsp;below:<br>
<br>
&gt;&nbsp;cMajScale&nbsp;=&nbsp;Tempo&nbsp;2&nbsp;1<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(line&nbsp;[c&nbsp;4&nbsp;en&nbsp;[],&nbsp;d&nbsp;4&nbsp;en&nbsp;[],&nbsp;e&nbsp;4&nbsp;en&nbsp;[],&nbsp;f&nbsp;4&nbsp;en&nbsp;[],&nbsp;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g&nbsp;4&nbsp;en&nbsp;[],&nbsp;a&nbsp;4&nbsp;en&nbsp;[],&nbsp;b&nbsp;4&nbsp;en&nbsp;[],&nbsp;c&nbsp;5&nbsp;en&nbsp;[]])<br>
&gt;<br>
&gt;&nbsp;cms&nbsp;=&nbsp;cMajScale<br>
<br>
Test&nbsp;of&nbsp;various&nbsp;articulations&nbsp;and&nbsp;dynamics:<br>
<br>
&gt;&nbsp;t1&nbsp;=&nbsp;test&nbsp;(Instr&nbsp;"piano"<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Phrase&nbsp;[Art&nbsp;(Staccato&nbsp;0.1)]&nbsp;cms&nbsp;:+:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:+:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Phrase&nbsp;[Art&nbsp;(Legato&nbsp;&nbsp;&nbsp;1.1)]&nbsp;cms&nbsp;&nbsp;&nbsp;&nbsp;))<br>
&gt;<br>
&gt;&nbsp;t2&nbsp;=&nbsp;test&nbsp;(Instr&nbsp;"vibes"&nbsp;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Phrase&nbsp;[Dyn&nbsp;(Diminuendo&nbsp;0.75)]&nbsp;cms&nbsp;:+:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Phrase&nbsp;[Dyn&nbsp;(Crescendo&nbsp;4.0),&nbsp;Dyn&nbsp;(Loudness&nbsp;25)]&nbsp;cms))<br>
&gt;<br>
&gt;&nbsp;t3&nbsp;=&nbsp;test&nbsp;(Instr&nbsp;"flute"&nbsp;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Phrase&nbsp;[Dyn&nbsp;(Accelerando&nbsp;0.3)]&nbsp;cms&nbsp;:+:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Phrase&nbsp;[Dyn&nbsp;(Ritardando&nbsp;&nbsp;0.6)]&nbsp;cms&nbsp;&nbsp;&nbsp;&nbsp;))<br>
<br>
-----------------------------------------------------------------------------<br>
<br>
A&nbsp;function&nbsp;to&nbsp;recursively&nbsp;apply&nbsp;transformations&nbsp;f&nbsp;(to&nbsp;elements&nbsp;in&nbsp;a<br>
sequence)&nbsp;and&nbsp;g&nbsp;(to&nbsp;accumulated&nbsp;phrases):<br>
<br>
&gt;&nbsp;rep&nbsp;::&nbsp;(Music&nbsp;-&gt;&nbsp;Music)&nbsp;-&gt;&nbsp;(Music&nbsp;-&gt;&nbsp;Music)&nbsp;-&gt;&nbsp;Int&nbsp;-&gt;&nbsp;Music&nbsp;-&gt;&nbsp;Music<br>
&gt;&nbsp;rep&nbsp;f&nbsp;g&nbsp;0&nbsp;m&nbsp;=&nbsp;Rest&nbsp;0<br>
&gt;&nbsp;rep&nbsp;f&nbsp;g&nbsp;n&nbsp;m&nbsp;=&nbsp;m&nbsp;:=:&nbsp;g&nbsp;(rep&nbsp;f&nbsp;g&nbsp;(n-1)&nbsp;(f&nbsp;m))<br>
<br>
An&nbsp;example&nbsp;using&nbsp;"rep"&nbsp;three&nbsp;times,&nbsp;recursively,&nbsp;to&nbsp;create&nbsp;a&nbsp;"cascade"<br>
of&nbsp;sounds.<br>
<br>
&gt;&nbsp;run&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;rep&nbsp;(Trans&nbsp;5)&nbsp;(delay&nbsp;tn)&nbsp;8&nbsp;(c&nbsp;4&nbsp;tn&nbsp;[])<br>
&gt;&nbsp;cascade&nbsp;&nbsp;&nbsp;=&nbsp;rep&nbsp;(Trans&nbsp;4)&nbsp;(delay&nbsp;en)&nbsp;8&nbsp;run<br>
&gt;&nbsp;cascades&nbsp;&nbsp;=&nbsp;rep&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(delay&nbsp;sn)&nbsp;2&nbsp;cascade<br>
&gt;&nbsp;t4'&nbsp;x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;test&nbsp;(Instr&nbsp;"piano"&nbsp;x)<br>
&gt;&nbsp;t4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;test&nbsp;(Instr&nbsp;"piano"&nbsp;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cascades&nbsp;:+:&nbsp;revM&nbsp;cascades))<br>
<br>
What&nbsp;happens&nbsp;if&nbsp;we&nbsp;simply&nbsp;reverse&nbsp;the&nbsp;f&nbsp;and&nbsp;g&nbsp;arguments?<br>
<br>
&gt;&nbsp;run'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;rep&nbsp;(delay&nbsp;tn)&nbsp;(Trans&nbsp;5)&nbsp;4&nbsp;(c&nbsp;4&nbsp;tn&nbsp;[])<br>
&gt;&nbsp;cascade'&nbsp;&nbsp;=&nbsp;rep&nbsp;(delay&nbsp;en)&nbsp;(Trans&nbsp;4)&nbsp;6&nbsp;run'<br>
&gt;&nbsp;cascades'&nbsp;=&nbsp;rep&nbsp;(delay&nbsp;sn)&nbsp;&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;cascade'<br>
&gt;&nbsp;t5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;test&nbsp;(Instr&nbsp;"piano"&nbsp;cascades')<br>
<br>
-----------------------------------------------------------------------------<br>
<br>
Example&nbsp;from&nbsp;the&nbsp;SelfSim&nbsp;module.<br>
<br>
&gt;&nbsp;t10s&nbsp;&nbsp;&nbsp;=&nbsp;test&nbsp;(rep&nbsp;(delay&nbsp;durss)&nbsp;(Trans&nbsp;4)&nbsp;2&nbsp;ss)<br>
<br>
-----------------------------------------------------------------------------<br>
<br>
Example&nbsp;from&nbsp;the&nbsp;ChildSong6&nbsp;module.<br>
<br>
&gt;&nbsp;cs6&nbsp;=&nbsp;test&nbsp;childSong6<br>
<br>
-----------------------------------------------------------------------------<br>
<br>
Midi&nbsp;percussion&nbsp;test.&nbsp;&nbsp;Plays&nbsp;all&nbsp;"notes"&nbsp;in&nbsp;a&nbsp;range.&nbsp;&nbsp;(Requires&nbsp;adding<br>
an&nbsp;instrument&nbsp;for&nbsp;percussion&nbsp;to&nbsp;the&nbsp;UserPatchMap.)<br>
<br>
&gt;&nbsp;drums&nbsp;a&nbsp;b&nbsp;=&nbsp;Instr&nbsp;"drums"&nbsp;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(line&nbsp;(map&nbsp;(\p-&gt;&nbsp;Note&nbsp;(pitch&nbsp;p)&nbsp;sn&nbsp;[])&nbsp;[a..b]))<br>
&gt;&nbsp;t11&nbsp;a&nbsp;b&nbsp;=&nbsp;test&nbsp;(drums&nbsp;a&nbsp;b)<br>
<br>
-----------------------------------------------------------------------------<br>
<br>

</tt> 
<hr><body bgcolor="#ffffff"><i>The Haskore Tutorial</i><br><a href="index.html">top</a> <a href="TestHaskore.html">back</a> <a href="ChildSong6.html">next</a>