sgl 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +234 -0
- data/Manifest.txt +94 -0
- data/Rakefile +16 -5
- data/examples/cocoa1-basic.rb +14 -0
- data/examples/cocoa10-transparent.rb +26 -0
- data/examples/cocoa11-application.rb +13 -0
- data/examples/cocoa2-draw.rb +23 -0
- data/examples/cocoa3-affine.rb +29 -0
- data/examples/cocoa4-font.rb +24 -0
- data/examples/cocoa5-image.rb +22 -0
- data/examples/cocoa6-sound.rb +24 -0
- data/examples/cocoa7-movie.rb +40 -0
- data/examples/cocoa8-movieoverlay.rb +42 -0
- data/examples/cocoa9-streaming.rb +40 -0
- data/examples/opengl1-basic.rb +14 -0
- data/examples/opengl11-application.rb +13 -0
- data/examples/opengl2-draw.rb +23 -0
- data/examples/opengl3-affine.rb +29 -0
- data/examples/sample1.rb +11 -0
- data/examples/sample10.rb +16 -0
- data/examples/sample11.rb +22 -0
- data/examples/sample11a.rb +33 -0
- data/examples/sample12.rb +30 -0
- data/examples/sample12a.rb +35 -0
- data/examples/sample13.rb +116 -0
- data/examples/sample15.rb +24 -0
- data/examples/sample16.rb +31 -0
- data/examples/sample16a.rb +35 -0
- data/examples/sample6.rb +18 -0
- data/examples/sample7.rb +16 -0
- data/examples/sample9.rb +20 -0
- data/examples/sgl-sound1.rb +6 -0
- data/examples/sgl-sound2.rb +19 -0
- data/examples/sine.ogg +0 -0
- data/examples/testgl.rb +169 -0
- data/lib/sgl/bass-api.rb +202 -0
- data/lib/sgl/bass-sample.rb +106 -0
- data/lib/sgl/bass.rb +46 -0
- data/lib/sgl/cocoa-app.rb +43 -0
- data/lib/sgl/cocoa-color.rb +65 -0
- data/lib/sgl/cocoa-draw.rb +72 -0
- data/lib/sgl/cocoa-event.rb +229 -0
- data/lib/sgl/cocoa-media.rb +144 -0
- data/lib/sgl/cocoa-notuse.rb +493 -0
- data/lib/sgl/cocoa-window.rb +203 -0
- data/lib/sgl/cocoa.rb +8 -0
- data/lib/sgl/notuse-objs.rb +358 -0
- data/lib/sgl/opengl-app.rb +38 -0
- data/lib/sgl/opengl-color.rb +44 -0
- data/lib/sgl/opengl-draw.rb +260 -0
- data/lib/sgl/opengl-event.rb +325 -0
- data/lib/sgl/opengl-modules.rb +22 -0
- data/lib/sgl/opengl-window.rb +224 -0
- data/lib/sgl/opengl.rb +7 -0
- data/lib/sgl/sgl-basic.rb +61 -0
- data/lib/sgl/sgl-button.rb +135 -0
- data/lib/sgl/sgl-client.rb +21 -0
- data/lib/sgl/sgl-color.rb +82 -0
- data/lib/sgl/sgl-connect.rb +9 -0
- data/lib/sgl/sgl-objlib.rb +0 -0
- data/lib/sgl/sgl-objs.rb +0 -0
- data/lib/sgl/sgl-server.rb +58 -0
- data/lib/sgl/sgl-sound.rb +24 -0
- data/lib/sgl/sgl-spring.rb +216 -0
- data/lib/sgl/sgl-timer.rb +72 -0
- data/lib/sgl/sgl.rb +5 -0
- data/lib/sgl/version.rb +2 -2
- data/scripts/makemanifest.rb +20 -0
- data/test/test_bass.rb +27 -0
- data/test/test_cocoa_app.rb +5 -5
- data/test/test_helper.rb +9 -1
- data/test/test_module_ruby16.rb +22 -21
- data/test/test_opengl_app.rb +4 -5
- data/test/test_opengl_basic.rb +3 -4
- data/test/test_opengl_fullscreen.rb +4 -6
- data/test/test_opengl_novice.rb +3 -6
- data/test/test_sgl.rb +4 -27
- data/test/test_sound.rb +15 -0
- data/website/challenge1.html +91 -0
- data/website/challenge1.txt +30 -0
- data/website/challenge2.html +144 -0
- data/website/challenge2.txt +73 -0
- data/website/challenge3.html +63 -0
- data/website/challenge3.txt +15 -0
- data/website/cocoa.html +88 -0
- data/website/cocoa.txt +35 -0
- data/website/description.html +138 -0
- data/website/description.txt +90 -0
- data/website/exercise1.html +264 -0
- data/website/exercise1.txt +192 -0
- data/website/exercise2.html +683 -0
- data/website/exercise2.txt +597 -0
- data/website/exhibition.html +84 -0
- data/website/exhibition.txt +24 -0
- data/website/howto.html +134 -0
- data/website/howto.txt +56 -0
- data/website/index.html +17 -9
- data/website/index.txt +13 -4
- data/website/sound.html +141 -0
- data/website/sound.txt +87 -0
- data/website/stylesheets/grade.png +0 -0
- data/website/stylesheets/screen.css +21 -20
- metadata +109 -3
data/website/howto.html
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<title>
|
8
|
+
便利情報
|
9
|
+
</title>
|
10
|
+
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
|
+
<style>
|
12
|
+
|
13
|
+
</style>
|
14
|
+
<script type="text/javascript">
|
15
|
+
window.onload = function() {
|
16
|
+
settings = {
|
17
|
+
tl: { radius: 10 },
|
18
|
+
tr: { radius: 10 },
|
19
|
+
bl: { radius: 10 },
|
20
|
+
br: { radius: 10 },
|
21
|
+
antiAlias: true,
|
22
|
+
autoPad: true,
|
23
|
+
validTags: ["div"]
|
24
|
+
}
|
25
|
+
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
26
|
+
versionBox.applyCornersToAll();
|
27
|
+
}
|
28
|
+
</script>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="main">
|
32
|
+
|
33
|
+
<h1>便利情報</h1>
|
34
|
+
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
|
35
|
+
<p>Get Version</p>
|
36
|
+
<a href="http://rubyforge.org/projects/sgl" class="numbers">0.4.0</a>
|
37
|
+
</div>
|
38
|
+
<p>Ruby初心者のための,知ってると便利に使える情報です.</p>
|
39
|
+
|
40
|
+
|
41
|
+
<h2>コメントアウトを活用する</h2>
|
42
|
+
|
43
|
+
|
44
|
+
<p>ある行だけ実行しないようにしたいが,消してしまいたくはないというとき,
|
45
|
+
コメントアウトという方法がある.行の最初に<code>#</code>を入れると,その行だけを
|
46
|
+
実行しないようにできる.</p>
|
47
|
+
|
48
|
+
|
49
|
+
<p>コメントアウトを活用することはとても大事だ.プログラムをかいてみてうま
|
50
|
+
く動かなくなったときは,その行を消してしまうのではなくコメントアウトす
|
51
|
+
ることによって,情報を保存しつつ動作させないようにする.なにをやったら
|
52
|
+
うまくいかなかったのかを記録として残すようにすることが大事である.</p>
|
53
|
+
|
54
|
+
|
55
|
+
<h2>notepadの使い方: コピー&ペースト</h2>
|
56
|
+
|
57
|
+
|
58
|
+
<ul>
|
59
|
+
<li>コピーしたい領域をマウスをドラッグして反転させる.</li>
|
60
|
+
<li>Ctrlを押しながらCを押す.その領域がコピーバッファに入る.</li>
|
61
|
+
<li>挿入したいところにカーソルを合わせ,Ctrlを押しながらVを押すとペーストされる.</li>
|
62
|
+
</ul>
|
63
|
+
|
64
|
+
|
65
|
+
<h2>notepadの使い方: ショートカットキー</h2>
|
66
|
+
|
67
|
+
|
68
|
+
<ul>
|
69
|
+
<li>Ctrl+Sで,ファイルをセーブする.</li>
|
70
|
+
</ul>
|
71
|
+
|
72
|
+
|
73
|
+
<h2>コマンドプロンプトの使い方</h2>
|
74
|
+
|
75
|
+
|
76
|
+
<ul>
|
77
|
+
<li>上キーを押すと,一つ前のコマンドを表示する.同じコマンドを繰り返す時に便利.</li>
|
78
|
+
<li><code>dir</code>で,現在のディレクトリーにあるファイルの一覧を表示する.</li>
|
79
|
+
<li><code>dir *.rb</code>で,ファイルの終わりに<code>.rb</code>がついたファイル一覧を表示する.
|
80
|
+
<ul>
|
81
|
+
<li>このコマンドでちゃんとセーブされているかを確認する.</li>
|
82
|
+
</ul></li>
|
83
|
+
</ul>
|
84
|
+
|
85
|
+
|
86
|
+
<h2>Rubyとは?</h2>
|
87
|
+
|
88
|
+
|
89
|
+
<p>sglはオブジェクト指向スクリプト言語Rubyを基盤として用いている.もしプ
|
90
|
+
ログラミング言語としてのRubyを学びたい場合は直接Ruby についての本を参
|
91
|
+
照する.</p>
|
92
|
+
|
93
|
+
|
94
|
+
<ul>
|
95
|
+
<li><a href="http://www.ruby-lang.org/ja/">Ruby</a></li>
|
96
|
+
</ul>
|
97
|
+
|
98
|
+
|
99
|
+
<p>下記の書籍をおすすめする.</p>
|
100
|
+
|
101
|
+
|
102
|
+
<ul>
|
103
|
+
<li><a href="http://www.amazon.co.jp/dp/4274066428/etocom05-22">プログラミングRuby 第2版 言語編</a></li>
|
104
|
+
<li><a href="http://www.amazon.co.jp/dp/4274066436/etocom05-22">プログラミングRuby 第2版 ライブラリ編</a></li>
|
105
|
+
</ul>
|
106
|
+
|
107
|
+
|
108
|
+
<h2>OpenGLとは?</h2>
|
109
|
+
|
110
|
+
|
111
|
+
<p>OpenGLとはグラフィックを描画するためのプログラミングにおける方法の一つ
|
112
|
+
である.sglはグラフィック描画の仕組みとして内部的にOpenGLを使っている.
|
113
|
+
もしsglの提供するグラフィックを超えてグラフィックを使いたい場合は,直
|
114
|
+
接OpenGLを使うこともできる.</p>
|
115
|
+
|
116
|
+
|
117
|
+
<p>OpenGLの使い方は,下記のテキストをおすすめする.</p>
|
118
|
+
|
119
|
+
|
120
|
+
<ul>
|
121
|
+
<li><a href="http://www.exa-corp.co.jp/solution/UBIQ/OpenGL/index.shtml">OpenGLプログラミングコース</a>
|
122
|
+
<ul>
|
123
|
+
<li><a href="http://www.exa-corp.co.jp/solution/UBIQ/OpenGL/OpenGL-text-091.pdf">OpenGLプログラミングテキスト</a></li>
|
124
|
+
</ul></li>
|
125
|
+
</ul>
|
126
|
+
<p class="coda">
|
127
|
+
25th June 2007<br>
|
128
|
+
</p>
|
129
|
+
</div>
|
130
|
+
|
131
|
+
<!-- insert site tracking codes here, like Google Urchin -->
|
132
|
+
|
133
|
+
</body>
|
134
|
+
</html>
|
data/website/howto.txt
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
h1. 便利情報
|
2
|
+
|
3
|
+
Ruby初心者のための,知ってると便利に使える情報です.
|
4
|
+
|
5
|
+
h2. コメントアウトを活用する
|
6
|
+
|
7
|
+
ある行だけ実行しないようにしたいが,消してしまいたくはないというとき,
|
8
|
+
コメントアウトという方法がある.行の最初に@#@を入れると,その行だけを
|
9
|
+
実行しないようにできる.
|
10
|
+
|
11
|
+
コメントアウトを活用することはとても大事だ.プログラムをかいてみてうま
|
12
|
+
く動かなくなったときは,その行を消してしまうのではなくコメントアウトす
|
13
|
+
ることによって,情報を保存しつつ動作させないようにする.なにをやったら
|
14
|
+
うまくいかなかったのかを記録として残すようにすることが大事である.
|
15
|
+
|
16
|
+
h2. notepadの使い方: コピー&ペースト
|
17
|
+
|
18
|
+
* コピーしたい領域をマウスをドラッグして反転させる.
|
19
|
+
* Ctrlを押しながらCを押す.その領域がコピーバッファに入る.
|
20
|
+
* 挿入したいところにカーソルを合わせ,Ctrlを押しながらVを押すとペーストされる.
|
21
|
+
|
22
|
+
h2. notepadの使い方: ショートカットキー
|
23
|
+
|
24
|
+
* Ctrl+Sで,ファイルをセーブする.
|
25
|
+
|
26
|
+
h2. コマンドプロンプトの使い方
|
27
|
+
|
28
|
+
* 上キーを押すと,一つ前のコマンドを表示する.同じコマンドを繰り返す時に便利.
|
29
|
+
* @dir@で,現在のディレクトリーにあるファイルの一覧を表示する.
|
30
|
+
* @dir *.rb@で,ファイルの終わりに@.rb@がついたファイル一覧を表示する.
|
31
|
+
** このコマンドでちゃんとセーブされているかを確認する.
|
32
|
+
|
33
|
+
h2. Rubyとは?
|
34
|
+
|
35
|
+
sglはオブジェクト指向スクリプト言語Rubyを基盤として用いている.もしプ
|
36
|
+
ログラミング言語としてのRubyを学びたい場合は直接Ruby についての本を参
|
37
|
+
照する.
|
38
|
+
|
39
|
+
* "Ruby":http://www.ruby-lang.org/ja/
|
40
|
+
|
41
|
+
下記の書籍をおすすめする.
|
42
|
+
|
43
|
+
* "プログラミングRuby 第2版 言語編":http://www.amazon.co.jp/dp/4274066428/etocom05-22
|
44
|
+
* "プログラミングRuby 第2版 ライブラリ編":http://www.amazon.co.jp/dp/4274066436/etocom05-22
|
45
|
+
|
46
|
+
h2. OpenGLとは?
|
47
|
+
|
48
|
+
OpenGLとはグラフィックを描画するためのプログラミングにおける方法の一つ
|
49
|
+
である.sglはグラフィック描画の仕組みとして内部的にOpenGLを使っている.
|
50
|
+
もしsglの提供するグラフィックを超えてグラフィックを使いたい場合は,直
|
51
|
+
接OpenGLを使うこともできる.
|
52
|
+
|
53
|
+
OpenGLの使い方は,下記のテキストをおすすめする.
|
54
|
+
|
55
|
+
* "OpenGLプログラミングコース":http://www.exa-corp.co.jp/solution/UBIQ/OpenGL/index.shtml
|
56
|
+
** "OpenGLプログラミングテキスト":http://www.exa-corp.co.jp/solution/UBIQ/OpenGL/OpenGL-text-091.pdf
|
data/website/index.html
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
7
|
<title>
|
8
|
-
sgl
|
8
|
+
sgl → simple generic library
|
9
9
|
</title>
|
10
10
|
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
11
|
<style>
|
@@ -30,15 +30,12 @@
|
|
30
30
|
<body>
|
31
31
|
<div id="main">
|
32
32
|
|
33
|
-
<h1>sgl</h1>
|
33
|
+
<h1>sgl → simple generic library</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/sgl" class="numbers">0.
|
36
|
+
<a href="http://rubyforge.org/projects/sgl" class="numbers">0.4.0</a>
|
37
37
|
</div>
|
38
|
-
<
|
39
|
-
|
40
|
-
|
41
|
-
<h2>What is sgl?</h2>
|
38
|
+
<h2>What is sgl?</h2>
|
42
39
|
|
43
40
|
|
44
41
|
<p>‘sgl’ is a simgple generic library to create a program with graphics and sound.</p>
|
@@ -91,6 +88,17 @@ wait
|
|
91
88
|
<p>Run the program with <code>ruby test1.rb</code>.</p>
|
92
89
|
|
93
90
|
|
91
|
+
<code>test2.rb</code>.
|
92
|
+
<pre syntax="ruby">
|
93
|
+
require "sgl"
|
94
|
+
window 100, 100
|
95
|
+
background 0
|
96
|
+
color 100
|
97
|
+
line 0, 0, 100, 100
|
98
|
+
wait
|
99
|
+
</pre>
|
100
|
+
|
101
|
+
<code>test3.rb</code>.
|
94
102
|
<pre syntax="ruby">
|
95
103
|
require "sgl"
|
96
104
|
|
@@ -109,7 +117,7 @@ mainloop
|
|
109
117
|
|
110
118
|
|
111
119
|
<ul>
|
112
|
-
<li><a href="../doc/index.html">
|
120
|
+
<li><a href="../doc/index.html" title="Rdoc"><span class="caps">API</span> Documnet</a></li>
|
113
121
|
<li><a href="cocoa.html">cocoa version</a></li>
|
114
122
|
</ul>
|
115
123
|
|
@@ -160,7 +168,7 @@ You’ll see the materials for the classes.</p>
|
|
160
168
|
|
161
169
|
<p>Comments are welcome. Send an email to “Kouichirou Eto” <eto at rubyforge dot org>.</p>
|
162
170
|
<p class="coda">
|
163
|
-
|
171
|
+
25th June 2007<br>
|
164
172
|
</p>
|
165
173
|
</div>
|
166
174
|
|
data/website/index.txt
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
h1. sgl
|
2
|
-
|
3
|
-
h1. → simple generic library
|
1
|
+
h1. sgl → simple generic library
|
4
2
|
|
5
3
|
h2. What is sgl?
|
6
4
|
|
@@ -40,6 +38,17 @@ wait
|
|
40
38
|
|
41
39
|
Run the program with @ruby test1.rb@.
|
42
40
|
|
41
|
+
@test2.rb@.
|
42
|
+
<pre syntax="ruby">
|
43
|
+
require "sgl"
|
44
|
+
window 100, 100
|
45
|
+
background 0
|
46
|
+
color 100
|
47
|
+
line 0, 0, 100, 100
|
48
|
+
wait
|
49
|
+
</pre>
|
50
|
+
|
51
|
+
@test3.rb@.
|
43
52
|
<pre syntax="ruby">
|
44
53
|
require "sgl"
|
45
54
|
|
@@ -56,7 +65,7 @@ mainloop
|
|
56
65
|
|
57
66
|
h2. Pages
|
58
67
|
|
59
|
-
* "
|
68
|
+
* "API Documnet (Rdoc)":../doc/index.html
|
60
69
|
* "cocoa version":cocoa.html
|
61
70
|
|
62
71
|
* Pages below are in Japanese
|
data/website/sound.html
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<title>
|
8
|
+
サウンド機能
|
9
|
+
</title>
|
10
|
+
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
|
+
<style>
|
12
|
+
|
13
|
+
</style>
|
14
|
+
<script type="text/javascript">
|
15
|
+
window.onload = function() {
|
16
|
+
settings = {
|
17
|
+
tl: { radius: 10 },
|
18
|
+
tr: { radius: 10 },
|
19
|
+
bl: { radius: 10 },
|
20
|
+
br: { radius: 10 },
|
21
|
+
antiAlias: true,
|
22
|
+
autoPad: true,
|
23
|
+
validTags: ["div"]
|
24
|
+
}
|
25
|
+
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
26
|
+
versionBox.applyCornersToAll();
|
27
|
+
}
|
28
|
+
</script>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="main">
|
32
|
+
|
33
|
+
<h1>サウンド機能</h1>
|
34
|
+
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
|
35
|
+
<p>Get Version</p>
|
36
|
+
<a href="http://rubyforge.org/projects/sgl" class="numbers">0.4.0</a>
|
37
|
+
</div>
|
38
|
+
<h2>使い方</h2>
|
39
|
+
|
40
|
+
|
41
|
+
<p>サウンド機能の使い方について解説する.</p>
|
42
|
+
|
43
|
+
|
44
|
+
<pre syntax="ruby">
|
45
|
+
require 'sgl'
|
46
|
+
|
47
|
+
useSound # soundを使うことを宣言する.
|
48
|
+
|
49
|
+
sound = loadSound('sine.wav') # サンプル音をファイルから読みこむ.
|
50
|
+
# 同じディレクトリーにsine.wavというファイルを置いておく.
|
51
|
+
|
52
|
+
sound.play # そのサンプル音を再生する.
|
53
|
+
|
54
|
+
wait # プログラムがすぐ終了するのをふせぐために待つ.
|
55
|
+
# Ctrl+Cで,プログラムが終了する.
|
56
|
+
</pre>
|
57
|
+
|
58
|
+
<p>元となるサンプル音は,マイクからサンプリングしたり,インターネットから
|
59
|
+
フリーの音源をダウンロードする.波形編集ソフトを使ってMP3ファイルから
|
60
|
+
切り出したりする方法もある.</p>
|
61
|
+
|
62
|
+
|
63
|
+
<pre syntax="ruby">
|
64
|
+
require 'sgl'
|
65
|
+
|
66
|
+
def setup
|
67
|
+
useSound
|
68
|
+
window -200, -200, 200, 200
|
69
|
+
$y = 0
|
70
|
+
$sound = loadSound('sine.wav')
|
71
|
+
end
|
72
|
+
|
73
|
+
def onMouseDown(x, y)
|
74
|
+
$y = y
|
75
|
+
$sound.play(y / 10 + 60)
|
76
|
+
end
|
77
|
+
|
78
|
+
def display
|
79
|
+
line -200, $y, 200, $y
|
80
|
+
end
|
81
|
+
|
82
|
+
mainloop
|
83
|
+
</pre>
|
84
|
+
|
85
|
+
<p>マウスが押されると,その高さに応じた音を再生する.音量も変化する.</p>
|
86
|
+
|
87
|
+
|
88
|
+
<pre syntax="ruby">
|
89
|
+
require 'sgl'
|
90
|
+
|
91
|
+
def setup
|
92
|
+
useSound
|
93
|
+
window -200, -200, 200, 200
|
94
|
+
$x = 0
|
95
|
+
$y = 0
|
96
|
+
$sound = loadSound('sine.wav')
|
97
|
+
end
|
98
|
+
|
99
|
+
def onMouseDown(x, y)
|
100
|
+
$x = x
|
101
|
+
$y = y
|
102
|
+
$sound.play(y / 10 + 60, x / 4 + 50)
|
103
|
+
end
|
104
|
+
|
105
|
+
def display
|
106
|
+
circle($x, $y, 10)
|
107
|
+
end
|
108
|
+
|
109
|
+
mainloop
|
110
|
+
</pre>
|
111
|
+
|
112
|
+
<h2>注意点</h2>
|
113
|
+
|
114
|
+
|
115
|
+
<p>音を同時にたくさん出すと,システム全体が固まる.プログラムが止まるだけ
|
116
|
+
でなく,マシン全体が固まる.あまりたくさん音を同時に出しすぎないように
|
117
|
+
プログラム側で調整する.</p>
|
118
|
+
|
119
|
+
|
120
|
+
<h2>波形編集ソフト</h2>
|
121
|
+
|
122
|
+
|
123
|
+
<p>AudacityやWave Editor <span class="caps">TWE</span>などのフリーの波形編集ソフトを使ってサンプル
|
124
|
+
音を編集できる.自分が持っているMP3ファイルを元に編集することもできる.
|
125
|
+
AudacityなどでMP3ファイルを開き,該当個所のみを切り出して保存しなおす
|
126
|
+
とよい.</p>
|
127
|
+
|
128
|
+
|
129
|
+
<ul>
|
130
|
+
<li><a href="http://audacity.sourceforge.net/">Audacity</a></li>
|
131
|
+
<li><a href="http://www.yamaha.co.jp/product/syndtm/dl/utility/twe/">Wave Editor <span class="caps">TWE</span></a></li>
|
132
|
+
</ul>
|
133
|
+
<p class="coda">
|
134
|
+
20th June 2007<br>
|
135
|
+
</p>
|
136
|
+
</div>
|
137
|
+
|
138
|
+
<!-- insert site tracking codes here, like Google Urchin -->
|
139
|
+
|
140
|
+
</body>
|
141
|
+
</html>
|
data/website/sound.txt
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
h1. サウンド機能
|
2
|
+
|
3
|
+
h2. 使い方
|
4
|
+
|
5
|
+
サウンド機能の使い方について解説する.
|
6
|
+
|
7
|
+
<pre syntax="ruby">
|
8
|
+
require 'sgl'
|
9
|
+
|
10
|
+
useSound # soundを使うことを宣言する.
|
11
|
+
|
12
|
+
sound = loadSound('sine.wav') # サンプル音をファイルから読みこむ.
|
13
|
+
# 同じディレクトリーにsine.wavというファイルを置いておく.
|
14
|
+
|
15
|
+
sound.play # そのサンプル音を再生する.
|
16
|
+
|
17
|
+
wait # プログラムがすぐ終了するのをふせぐために待つ.
|
18
|
+
# Ctrl+Cで,プログラムが終了する.
|
19
|
+
</pre>
|
20
|
+
|
21
|
+
元となるサンプル音は,マイクからサンプリングしたり,インターネットから
|
22
|
+
フリーの音源をダウンロードする.波形編集ソフトを使ってMP3ファイルから
|
23
|
+
切り出したりする方法もある.
|
24
|
+
|
25
|
+
<pre syntax="ruby">
|
26
|
+
require 'sgl'
|
27
|
+
|
28
|
+
def setup
|
29
|
+
useSound
|
30
|
+
window -200, -200, 200, 200
|
31
|
+
$y = 0
|
32
|
+
$sound = loadSound('sine.wav')
|
33
|
+
end
|
34
|
+
|
35
|
+
def onMouseDown(x, y)
|
36
|
+
$y = y
|
37
|
+
$sound.play(y / 10 + 60)
|
38
|
+
end
|
39
|
+
|
40
|
+
def display
|
41
|
+
line -200, $y, 200, $y
|
42
|
+
end
|
43
|
+
|
44
|
+
mainloop
|
45
|
+
</pre>
|
46
|
+
|
47
|
+
マウスが押されると,その高さに応じた音を再生する.音量も変化する.
|
48
|
+
|
49
|
+
<pre syntax="ruby">
|
50
|
+
require 'sgl'
|
51
|
+
|
52
|
+
def setup
|
53
|
+
useSound
|
54
|
+
window -200, -200, 200, 200
|
55
|
+
$x = 0
|
56
|
+
$y = 0
|
57
|
+
$sound = loadSound('sine.wav')
|
58
|
+
end
|
59
|
+
|
60
|
+
def onMouseDown(x, y)
|
61
|
+
$x = x
|
62
|
+
$y = y
|
63
|
+
$sound.play(y / 10 + 60, x / 4 + 50)
|
64
|
+
end
|
65
|
+
|
66
|
+
def display
|
67
|
+
circle($x, $y, 10)
|
68
|
+
end
|
69
|
+
|
70
|
+
mainloop
|
71
|
+
</pre>
|
72
|
+
|
73
|
+
h2. 注意点
|
74
|
+
|
75
|
+
音を同時にたくさん出すと,システム全体が固まる.プログラムが止まるだけ
|
76
|
+
でなく,マシン全体が固まる.あまりたくさん音を同時に出しすぎないように
|
77
|
+
プログラム側で調整する.
|
78
|
+
|
79
|
+
h2. 波形編集ソフト
|
80
|
+
|
81
|
+
AudacityやWave Editor TWEなどのフリーの波形編集ソフトを使ってサンプル
|
82
|
+
音を編集できる.自分が持っているMP3ファイルを元に編集することもできる.
|
83
|
+
AudacityなどでMP3ファイルを開き,該当個所のみを切り出して保存しなおす
|
84
|
+
とよい.
|
85
|
+
|
86
|
+
* "Audacity":http://audacity.sourceforge.net/
|
87
|
+
* "Wave Editor TWE":http://www.yamaha.co.jp/product/syndtm/dl/utility/twe/
|
Binary file
|
@@ -1,5 +1,7 @@
|
|
1
1
|
body {
|
2
2
|
background-color: #fff;
|
3
|
+
background-image: url(grade.png);
|
4
|
+
background-repeat: repeat-x;
|
3
5
|
font-family: "Georgia", sans-serif;
|
4
6
|
font-size: 16px;
|
5
7
|
line-height: 1.6em;
|
@@ -15,7 +17,7 @@ h1 {
|
|
15
17
|
font-size: 4em;
|
16
18
|
line-height: 0.8em;
|
17
19
|
letter-spacing: -0.1ex;
|
18
|
-
|
20
|
+
margin: 5px;
|
19
21
|
}
|
20
22
|
li {
|
21
23
|
padding: 0;
|
@@ -24,7 +26,7 @@ li {
|
|
24
26
|
}
|
25
27
|
a {
|
26
28
|
color: #555;
|
27
|
-
|
29
|
+
background-color: #eee;
|
28
30
|
font-weight: normal;
|
29
31
|
text-decoration: underline;
|
30
32
|
}
|
@@ -55,11 +57,11 @@ table {
|
|
55
57
|
color: #ff8;
|
56
58
|
background-color: #111;
|
57
59
|
padding: 2px 10px 2px 10px;
|
58
|
-
|
60
|
+
border-style: dashed;
|
59
61
|
}
|
60
62
|
|
61
63
|
th {
|
62
|
-
|
64
|
+
color: #fff;
|
63
65
|
}
|
64
66
|
|
65
67
|
td {
|
@@ -67,22 +69,22 @@ td {
|
|
67
69
|
}
|
68
70
|
|
69
71
|
.success {
|
70
|
-
|
72
|
+
color: #0CC52B;
|
71
73
|
}
|
72
74
|
|
73
75
|
.failed {
|
74
|
-
|
76
|
+
color: #E90A1B;
|
75
77
|
}
|
76
78
|
|
77
79
|
.unknown {
|
78
|
-
|
80
|
+
color: #995000;
|
79
81
|
}
|
80
82
|
pre, code {
|
81
83
|
font-family: monospace;
|
82
84
|
font-size: 90%;
|
83
85
|
line-height: 1.4em;
|
84
86
|
color: #ff8;
|
85
|
-
background-color: #
|
87
|
+
background-color: #960;
|
86
88
|
padding: 2px 10px 2px 10px;
|
87
89
|
}
|
88
90
|
.comment { color: #aaa; font-style: italic; }
|
@@ -101,11 +103,11 @@ pre, code {
|
|
101
103
|
text-align: right;
|
102
104
|
font-family: sans-serif;
|
103
105
|
font-weight: normal;
|
104
|
-
background-color: #
|
106
|
+
background-color: #fec;
|
105
107
|
color: #141331;
|
106
108
|
padding: 15px 20px 10px 20px;
|
107
109
|
margin: 0 auto;
|
108
|
-
|
110
|
+
margin-top: 15px;
|
109
111
|
border: 3px solid #141331;
|
110
112
|
}
|
111
113
|
|
@@ -114,25 +116,24 @@ pre, code {
|
|
114
116
|
font-size: 4em;
|
115
117
|
line-height: 0.8em;
|
116
118
|
letter-spacing: -0.1ex;
|
117
|
-
|
119
|
+
margin-bottom: 15px;
|
118
120
|
}
|
119
121
|
|
120
122
|
#version p {
|
121
123
|
text-decoration: none;
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
124
|
+
color: #141331;
|
125
|
+
background-color: #fec;
|
126
|
+
margin: 0;
|
127
|
+
padding: 0;
|
126
128
|
}
|
127
129
|
|
128
130
|
#version a {
|
129
131
|
text-decoration: none;
|
130
|
-
|
131
|
-
|
132
|
+
color: #141331;
|
133
|
+
background-color: #fec;
|
132
134
|
}
|
133
135
|
|
134
136
|
.clickable {
|
135
|
-
|
136
|
-
|
137
|
+
cursor: pointer;
|
138
|
+
cursor: hand;
|
137
139
|
}
|
138
|
-
|