Shogo's Blog

Nov 23, 2012 - 2 minute read - NLP

TinySegmenterの学習ツールを作ってみた

TinySegmenterは工藤さん作のJavaScriptだけで書かれたコンパクトな分かち書きソフトウェアです. わずか20kバイト程度のサイズしかなく,お手軽に使える分かち書きソフトウェアですが, 当たり前のことながら学習データに使った新聞記事以外の文章の精度はイマイチ. 改善しようにも学習用のプログラムが公開されていないのでモデルの修正が大変です. ないなら作ってしまいましょう! ダウンロード ソースはgithubで公開しています.cloneするなりzipファイルを落としてくるなりしてください. TinySegmenterMaker 学習方法 スペースで分かち書きしたコーパスをあらかじめ準備しておきます. コーパスから分かち書きの情報と素性を取り出します. $ ./extract < corpus.txt > features.txt AdaBoostを用いて学習します. 新しい弱分類器の分類精度が0.001以下,繰り返し回数が10000回以上となったら学習を終了します. $ g++ -O3 -o train train.cpp # コンパイル $ ./train -t 0.001 -n 10000 features.txt model # 学習 きちんと分割できるが実際に試してみます. $ ./segment model 私の名前は中野です 私 の 名前 は 中野 です ライブラリの作成 TinySegmenterは実装が簡単なためいろいろな言語へ移植されています. モデルの更新のたびにそれらへの言語の移植バージョンを作るのは大変です. というわけで,makerコマンドで各種言語用のライブラリを作れます. 学習結果のモデルはライブラリのなかに組み込まれ,ファイル単体で簡単に使用することができます. allを指定することで,対応しているすべての言語向けのライブラリを出力します. $ ./maker javascript < model $ ./maker perl < model $ ./maker ruby < medel $ .

Nov 9, 2012 - 1 minute read - 6さいカンファレンス

6さいカンファレンス 第9回「マスタリングの技法 ~音圧を上げよう~」まとめ

2012/11/8にくいなちゃんさん主催で開催された6さいカンファレンスのまとめ。 第9回は「マスタリングの技法 ~音圧を上げよう~」です。 勝手にまとめてしまったので、何か問題があれば@shogo82148まで。 よるほー くいなちゃん: みなさん、自分が作った曲が、市販のCDの曲にくらべ、 音量が小さい (最大まで波形を上げたにも関わらず)と悩んだことはありませんか? くいなちゃん: しかし、心配はいりません。 今回のことを実践していただくと、 みなさんの曲も、市販の楽曲並みに、音圧をあげることができるですん! では次の波形をご覧ください。 くいなちゃん: http://kuina.tes.so/6saiconf_9/img0.png はい、さっき作った曲です。 いい曲ですね! しかし、なんだか音量が小さいですね… それでは、波形に注目してください。 この図では、波形が-1.0~1.0 の範囲で 示されていますが、この範囲に比べ、明らかに波形が小さいです。 余白が空きすぎです! くいなちゃん: え、mp3ファイルがどこにあるかって? キニシナイ! では、とりあえず、この波形を -1.0~1.0 まで拡大してみましょう。 http://kuina.tes.so/6saiconf_9/img1.png はい、赤い矢印で示されたところが、確かに-1.0~1.0 の範囲に到達していますね。 素人さんは、この状態で完成、と思うでしょう。 しかし、それではダメダメですん☆ くいなちゃん: なぜなら、緑の2本線で示された範囲がメインの波形であって、 そこから飛び出た いわゆる魚の骨は、音量を上げる邪魔をするものだからです。 この魚の骨さえなければ、もっと音量が上がるのに…そう考えてください。 くいなちゃん: 市販のCD の音楽なんかは、こんな波形をしています。 http://kuina.tes.so/6saiconf_9/img2.png これは、全体が波形で埋まった、いわゆる海苔みたいなことになっているので、 業界でもしばしば 海苔 と言われます。 ここまで来ると、相当 音量が大きく聞こえます。 波形のピークは、魚の骨と同じなんですけどね。 くいなちゃん: で、素人さんは、この状態にしようと、魚の骨を無視して、 波形のレベルを上げるわけです。 しかし、これには問題があるのです。 くいなちゃん: http://kuina.tes.so/6saiconf_9/img3.png この図を見ればわかるのですが、青のラインが -1.0 ~ 1.0 の範囲をしめしています。 で、無理やり波形を拡大すると、青のラインを超えた部分が潰されて、 右の波形のようなことになってしまいます。これは、元の波形から変わっているので、 当然音も変わります。大抵、ノイズが入った汚い音になってしまいますですー くいなちゃん: じゃあ、どうするのか。 それは、波形を潰すことなく、波形のピークを下げて -1.0 ~ 1.

Nov 6, 2012 - 2 minute read - Hadoop VirtualBox

VirtualBoxでHadoop環境を作ってみる

隣の人がHadoopいじって遊んでたので,自分もちょっとやっておこうかなと思い少し触ってみました. 実際にマシンを借りて大規模な計算をするのは大変なので, 仮想マシンを作って遊んでみました. 仮想Hadoop環境の構築 巷ではVMWareが人気だったりしますが,今回はVirtualBoxを使ってみたいと思います. なぜかというとVirtualBoxをコンソールから扱えるVagrantで遊んでいたので, ちょうどパソコンにインストールされていたから. 以下,VirtualBoxは既にインストールされているものとして話を進めます. Cloudera’s Hadoop Demo VM for CDH4に VMWare, KVM, VirtualBox用の各種イメージが置いてあるので, VirtualBox用のものをダウンロードしてきます. tar.gzで圧縮されているので解凍しましょう. 中にcloudera-demo-vm.vmdkというファイルが入ってます. VirtualBoxを起動してHadoop用のマシンを新規作成します. 設定は以下のとおりに デモイメージはCentOSベースらしいのでOSタイプとして RedHat**(64bit版)** を選択 メモリは3Gバイト以上 ハードディスクは後で設定するので,「起動ディスク」のチェックを外し割り当てしない 新規作成したら設定を少しいじります. IO APICが有効化されていることを確認 ストレージにcloudera-demo-vm.vmdkを追加.この時 IDEコントローラ の下にいれること. ネットワークアダプタをホストオンリーアダプタに設定 これで実行できるようになります. 遊んでみる せっかくなので少し遊んでみる事にします. イメージの置いてあったページにあるHadoop Tutorialをやってみましょう. Hadoopの例として必ず最初に出てくるであろう,Word Countです. まずソースコードを入力します. package org.myorg; import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.conf.*; import org.apache.hadoop.io.*; import org.apache.hadoop.mapred.*; import org.apache.hadoop.util.*; public class WordCount { public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.

Nov 1, 2012 - 2 minute read - NLP CaboCha Python

PythonでCaboChaを美味しくいただく

日本語構文解析器CaboChaをPythonから使ってみたメモ. インストール CaboCha自体のインストールは公式のドキュメントを参照. ググれば他の人のレポートも出てくるはず. CaboChaのソースコードを展開したディレクトリの中の pythonディレクトリにPython-bindingが入ってます. そこに移動した後,管理者権限で以下のコマンドを実行すればインストール完了. python setup.py install 食べ方 解析結果を文字列出力 python/test.py に書いてあるとおり. #!/usr/bin/python # -*- coding: utf-8 -*- import CaboCha # c = CaboCha.Parser(""); c = CaboCha.Parser() sentence = "太郎はこの本を二郎を見た女性に渡した。" print c.parseToString(sentence) tree = c.parse(sentence) print tree.toString(CaboCha.FORMAT_TREE) print tree.toString(CaboCha.FORMAT_LATTICE) 以下のような結果が得られれば成功. <PERSON>太郎</PERSON>は-----------D この-D | 本を---D | 二郎を-D | 見た-D | 女性に-D 渡した。 EOS <PERSON>太郎</PERSON>は-----------D この-D | 本を---D | 二郎を-D | 見た-D | 女性に-D 渡した。 EOS * 0 6D 0/1 2.

Oct 28, 2012 - 1 minute read - togetter userscript

Togetterの編集作業便利にしたい

TogetterはTwitterの投稿をまとめられる非常に便利なサイトですが, 編集画面が異様に使いにくいです. そんなわけで前回は 自動的に検索ボタンを押してくれるブックマークレットを書いてみました. それをユーザスクリプトにして, ついでに編集画面の不便なところを修正してみました. 編集を便利にするユーザスクリプト スクリプトはGistにあげておきました. https://gist.github.com/3953476 インストールはこちら Chrome拡張Tampermonkey で動作を確認しました. この拡張,ユーザスクリプトの管理ができてオススメです. 変更内容 ユーザスクリプトは編集画面に対して次のような変更をします. 画面レイアウトの変更 自動検索機能 重複削除・ソートの高速化 選択動作の変更 元に戻す機能 ショートカットキーの追加 画面レイアウトの変更 Togetterの編集画面のレイアウト,非常に使いにくいです. ツイート一覧をスクロールしようとしたら画面全体がスクロールしてしまって, 編集用のボタンが隠れてしまう,ということが編集中に何度もあってイライラします. ** 余計なものでごちゃごちゃし過ぎなんだ! ** ** 僕は編集に集中したいんだ! ** 編集と関係の無いヘッダやナビゲーションは要らないので消えてもらうことにしました. ツイートの一覧が画面いっぱいに表示され, 編集用のボタンは常常に画面上に表示されます. 自動検索機能 前回ブックマークレットで実現した機能です. 検索キーワードと一回あたりの読み込み回数を設定し, 「自動検索開始」ボタンを押しましょう. すると,繰り返し間隔を聞いてくるので秒単位で時間を指定しましょう. カウントダウンが始まり,周期的に検索・ソート・重複削除が行われます. 重複削除.ソートの高速化 Togetterのソートのスピードはびっくりするほど遅いです. 例えば,「劇的ビフォーアフター佐世保高専ラグビー部部室をリフォーム」には 1190個のツイートが含まれています. これを時間順にソートしてみたところ, 三回の平均で9.978秒(それぞれの結果は10.118秒, 9.925秒, 9.892秒)かかりました. 1000ツイート程度のソートに約10秒です.遅い! ソート自体は数ミリ秒で終わるのになんでこんなに遅いというと,結果を画面に反映するのにjQueryのセレクタを大量に呼び出しているから. ソートのときに一回読み込んだものをキャッシュしておけばもっと速くなるはず. ってことで自前で実装してボタンを置き換えました. 結果0.171秒(0.174, 0.177, 0.161)まで短縮することができました. 約58倍の高速化! 高速化とは直接関係ないけど, 「選択したところだけソート」にしました. ツイートを内容ごとに分類してるときとかに, 一部分だけソートできます(例:ロボコン死亡かるた). 何も選択されてないときは何もしません. 全体をソートしたい時は明示的に全選択する必要があります. 重複削除とかも実装しなおしました. 約200ミリ秒かかってたのが約20ミリ秒に高速化! 選択動作の変更 もともとの編集画面では,ツイートをクリックするとクリックしたツイートの選択状態が切り替わります. 他に選択しているツイートがある場合,そのツイートは選択されたままです. Excelとかではセルをクリックすると他のセルは非選択状態になるので, それに慣れているとなんだか違和感があるんですよね. そういうわけで,ツイートをクリックしたときはクリックしたツイートのみ選択されるようにしました. 複数選択ができないのも困るので, Ctrlキーと同時クリックでクリックしたツイートを全部選択, Shiftキーと同時クリックで範囲内のツイートを全部選択にしました. Excelとかと一緒ですね.

Oct 27, 2012 - 2 minute read - 6さいカンファレンス

6さいカンファレンス 第7回「Windowsのアプリをクラックしよう!(再)」まとめ

2012/10/25にくいなちゃんさん主催で開催された6さいカンファレンスのまとめ。 第7回は「Windowsのアプリをクラックしよう!(再)」です。 第4回「Windowsのアプリをクラックしよう!」はどこへいってしまったのでしょう? 頑張って探したけどこれしか情報が無い・・・? 昨日の 6さいカンファレンスは盛り上がりましたね (第4回 「Windowsのアプリをクラックしよう!」) 来週は、作曲講座をしようと思っています。 お楽しみに☆ #6saiconf — くいなちゃんさん (@kuina_tesso) 9月 28, 2012 厳しい緘口令が敷かれているのか,参加者がくいなちゃんさんしか居なかったのか,そもそもそんなのなかったのか・・・. 勝手にまとめてしまったので、何か問題があれば@shogo82148まで。 (カンファレンスの内容にはくいなちゃんライセンスが適用されるらしいです.怖!) —–キリトリセン—– くいなちゃん: 10/25(木) 21:00 から、第7回 6さいカンファレンスを開催します。 テーマは、「Windowsのアプリをクラックしよう!(再)」 です。 ** (再) と付いていますが、前回やった記憶はございません。 ** 参加されない方は、今のうちにご退場お願いします。 ROMでの参加も歓迎ですん☆ それでは、もうしばらくお待ちください。 くいなちゃん: それでは、第7回 6さいカンファレンスを開催します。 テーマは、「Windowsのアプリをクラックしよう!(再)」 ですん☆ しかし、これを開始する前に、いくつかの免責事項をお伝えしなければなりません。 (6さい的な事情) くいなちゃん: まず、実際に既存の Windowsアプリをクラックする、という流れで 話を進めていきますが、実際にクラックを行っているわけではなく、 また画像も合成です。 実際に既存のアプリに対してクラックする行為は、 場合によっては犯罪となりますので、** 決してマネしないでください **。 本講座は、犯罪を助長する意図があるわけではなく、 むしろ攻撃側を知ることで、防衛スキルを身に着けようというものです! マインスイーパ! くいなちゃん: はい、よろしいでしょうか。 では、本日クラックするアプリはこちらです! http://kuina.tes.so/6saiconf_7/img0.png くいなちゃん: みなさん大好きな、マインスイーパですん☆ くいなちゃんは、マインスイーパが得意ではないので、上級をクリアする頃には、 時間が999になってしまいます。 そこで、この時間が経過しないよう、改造することを今日の目標としましょう。 くいなちゃん: まず、ollydbg というフリーソフトを起動します。 これは、主に アプリをクラックするのに使われるソフトです[要出典] http://kuina.tes.so/6saiconf_7/img1.png 画像は、ollydbg 上でマインスイーパを起動したところです。

Oct 22, 2012 - 1 minute read -

Twitter公式クライアントのコンシューマキー流出について考える

コンシューマキー流出? 朝のTLにTwitter公式クライアントのコンシューマキーなるものが流れてきたので, なにか面白いことに使えないか セキュリティ的に何か問題になるのか 考えてみました. コンシューマキーとは コンシューマキーとはクライアントの身分証眼書のようなものです. Twitterはコンシューマキーを使用してクライアントを識別します. このコンシューマキーがどのように使われるのかを知るために, Twitterの認証方式であるOAuthについて簡単なスライドを描いてみました. OAuthの認証は大きく分けて次の6ステップからなります. 認証開始 Twitterの使用を開始するためにユーザはクライアントに認証の開始を指示します 鍵の使用申請書の要求 開始指示を受けたクライアントは,コンシューマキーを利用して身分証明を行います 証明できたクライアントに対してTwitterは鍵の使用申請書を渡します ユーザの使用許可をもらう クライアントはユーザに使用申請書を渡し使用許可を求めます 使用申請書はウェブページのアドレスの形で渡されるので,多くの場合ここで自動的にブラウザが立ち上がります Twitter認証 ユーザはTwitterにパスワードを渡し,クライアントに使用許可することを伝えます ハンコを受け取る 使用許可の証としてPINコード(ハンコ)を受け取ります PINコードをクライアントに渡します 申請書を鍵を交換 クライアントは使用申請書とTwitterに渡し,鍵をもらいます 次回以降,クライアントは鍵を利用してTwitterにアクセスすることができます コンシューマキーが流出したということは, ステップ2のクライアントの身分証明の際に「自分は公式クライアントだ!」と名乗ることができてしまうという事です. 一般ユーザに対する影響 さて,これによる一般ユーザへの影響について考えてみましょう. 認証画面の偽装 ステップ4のTwitter認証の際,画面にはクライアント名が表示されます. 公式クライアントのコンシューマキーを使えばここに「Twitter for iPhone」「Twitter for Android」等, 公式クライアントの名前を表示することができてしまいます. これは間違えて認証してしまいそうですね! ・・・でも,ちょっと待ってください. ステップ4にたどり着くには,ユーザ自身が「ステップ1.認証開始」をする必要があります. これをするには,ユーザ自身がソフトをダウンロードして,解凍して,実行する必要があります. ** まともな ** な情報リテラシーを持ったユーザであれば,怪しいソフトは実行すらしませんよね? 偽装Webアプリ Webサイトであれば,アクセスしただけで「ステップ1.認証開始」をしたことにするのは技術的に難しくありません. ステップ1をクリアしてしまえば,流出したクライアントキーを使ってステップ4まで進むことができてしまいます. この時表示されるクライアント名は公式クライアントのものなので,悪意のあるサイトなのか本物なのか見分けが付きません. ここで間違えてパスワードを入力し,使用許可を出してしまったとしましょう. Twitterにはクライアントアプリ(自分のPCで実行するもの)と Webアプリ(ブラウザを使うもの)の2種類があり,この違いによってステップ5での動作が少し変わります. 公式クライアントアプリに偽装していた場合, ステップ5でPINコードが表示されます. ** まともな ** なTwitterユーザであればこの時点で気が付きますよね? 一般的なWebアプリではPINコードが表示されることはまずありません. WebアプリのくせにPINコードが表示されたら認証を中止しましょう. Webアプリに偽装していた場合, PINコードに当たるものが自動的にWebアプリに送られます. この送り先はアプリの作者にしか指定することができないため, 悪意のあるサイトの手にわたることはありません. 一般ユーザに対する影響まとめ コンシューマキーが漏れたからといって特別なことをする必要はありません. ** 怪しいアプリは実行しない ** ** 怪しいサイトでTwitterの認証をしない ** という,当たり前のことさえ気をつけていれば大丈夫です. このことさえ注意していれば鍵が盗まれることはありません. なんか最近犯罪予告の冤罪事件も発生しているので気を付けないといけませんね.

Oct 13, 2012 - 1 minute read - togetter bookmarklet

半自動トゥギャりスクリプトを書いてみた

togetterでたくさんツイートをまとめたい Twitterは手軽に情報収集ができ他人とのコミニュケーションができる楽しいSNSですが、 古いツイートはしばらく経つとタイムラインや検索結果からはたどれなくなってしまいます。 過去のイベントに関するつぶやきを後から見たい、といった場合に不便です。 そこで登場するのがtogetterというサービス。 Twitterのツイートを引用して、「まとめ」を作ることができます。 Twitter上での議論やイベントに対するみんなの反応がわかりやすく見れるので便利です。 僕もJO_RI_botのツイートをまとめたりといろいろとお世話になってます。 簡単なまとめを作るのには非常に便利なtogetter。 しかし、ツイート数が多くなると少し大変です。 例えば何かのイベントのハッシュタグのついたツイートをまとめたい場合、 検索に現れるツイートの数には上限があるので、 漏れ無くツイートを集めるにはイベントの最中にまとめを作る必要があります。 togetterには自動更新機能がないので、数分毎に「検索」ボタンを押さなければなりません。 これは面倒だ・・・ ブックマークレットを書いてみたよ 面倒なので、自動的に検索ボタンを押すブックマークレットを書いてみた。 ** ユーザスクリプトで書き直してみたよ! ** 上のリンクをブックマークに登録しておき、togetterのまとめ作成ページを開くと、 検索ボックスのしたにテキストボックスとボタンが追加されます。 テキストボックスに検索ボタンを押す間隔(秒単位)を入れ、開始ボタンを押すと、 自動的に検索・移動・重複ツイートの削除・ソートをしてくれます。 スクリプト 元のスクリプトをgistにあげておきます。 {% gist 3883841 %} ブラウザ拡張のほうが便利だろうけどブックマークレットとして実装しているのは、togetterのスクリプトやjQueryを自前のスクリプトから呼びたかったから。 ブラウザ拡張でも実現する方法はあるんだろうけど、調べるの面倒だからやってない。 DOMの操作だけでもなんとかなりそうだから、余力があれば書きなおすかも。 これ作るにあたって、togetterのソース見てたけど、重複削除やソートアルゴリズムがなんだか残念な感じ。 ツイート数に比例した回数だけjQueryのセレクタを呼び出している。 jQueryのセレクタって結構重い処理だし、オーダーが O( n^2 ) になるわけで・・・。 単なるソートにしては重すぎだろ、とは思ってはいたんだ。まさかこんな中身だとは。

Oct 12, 2012 - 1 minute read - 6さいカンファレンス

6さいカンファレンス 第6回「幼女を描いてみよう! ~原画から彩色まで~」まとめ

2012/10/11にくいなちゃんさん主催で開催された6さいカンファレンスのまとめ。 第6回は「幼女を描いてみよう! ~原画から彩色まで~」です。 勝手にまとめてしまったので、何か問題があれば@shogo82148まで。 (カンファレンスの内容にはくいなちゃんライセンスが適用されるらしいです.怖!) ゆるふわ☆タイム くいなちゃん: 今日も、前回と引き続き、プログラミングのプの字も出てこない、ゆるふわ講義ですん☆ くいなちゃん: テーマは 「幼女を描いてみよう! ~原画から彩色まで~」 ということなので、今回描いてみた絵を、いきなり完成形からご覧いただくことにします。 3時間で描いたです。 http://kuina.tes.so/6saiconf_6/img0.jpg 構図を描いてみるです! くいなちゃん: では、順を追って、描いていくことにしましょう。 最初はもちろん、カンヴァスは白紙です。 そこに、まずは構図をテキトーに描いてみるです: http://kuina.tes.so/6saiconf_6/img1.jpg はい、ここまではみなさん描けますね。 まるで6さいが描いたようなテキトーな落書きです。 くいなちゃん: ここでのポイントは、脳内に立体をイメージすることです。 構図をイメージしやすいように、背景に線を引いていますが、無くてもイメージできるなら描く必要はありません。 注意してほしいのは、2D絵を描くからといって、2Dで捉えないことです。 アニメ絵でも同様ですん くいなちゃん: はい、キャラに、顔と髪を追加してみました。 http://kuina.tes.so/6saiconf_6/img2.jpg えっ、完成形と絵が違う? キニシナイ! あと、独りでは寂しいので、小鳥も追加しました。 色を塗っていくです! くいなちゃん: アニメ調の絵を描く場合は、ここからアニメ塗りをしていただけば完成しそうなんですが、せっかくなので、油彩画っぽく塗っていくことにします。 くいなちゃん: まずは、べた塗りです。 http://kuina.tes.so/6saiconf_6/img3.jpg くいなちゃん: なんてことはありません。 太いブラシで、テキトーに塗っただけです。 はみ出しまくってますね。 しかし、ブラシが太いので、細かな部分はそもそも塗れません。 このくらいテキトーでもキニシナイでok くいなちゃん: 人物に影が、若干付けられていますが、原画を描くときに立体を意識したならば、光源を意識すればある程度付けられると思います。 物理学的に考えるのです! 細部を塗っていくです! くいなちゃん: はい、次は、もう少し細いブラシで、細部を塗っていきます。http://kuina.tes.so/6saiconf_6/img4.jpg 基本的には、最初に太いブラシで大まかに塗り、徐々にブラシを細くしていき、細部を描きこんでいく流れですね。 ブラシの目安は、半々にしていくと良さそうです くいなちゃん: この時点で、服に謎の模様が描かれていますが、テキトーです。 その太さのブラシで表現できる粒度のものを塗ってください。 くいなちゃん: で、更に細いブラシで塗っていきます(3段階目) そして、このあたりまで塗ったら、試しに線画(原画)を外してみましょう。 http://kuina.tes.so/6saiconf_6/img5.jpg おや、線画が無くても 綺麗に見えますね! くいなちゃん: 目を描きこんでいなかったのは、意図的です。 最初のアニメ調の絵で完成させたい場合は、目も塗ってあげてください。 顔を描くです! くいなちゃん: はい、それでは、もう線画が無くても輪郭が解りますので、線画は非表示にしたまま塗っていきましょう。 更に細いブラシで塗ります。

Oct 11, 2012 - 1 minute read - 6さいカンファレンス

6さいカンファレンス 第5回「6さいからの作曲講座」まとめ

2012/10/04にくいなちゃんさん主催で開催された6さいカンファレンスのまとめ。 第5回は「6さいからの作曲講座」です。 勝手にまとめてしまったので、何か問題があれば@shogo82148まで。 (カンファレンスの内容にはくいなちゃんライセンスが適用されるらしいです.怖!) THE END くいなちゃん: みなさん、楽譜は読めますね!(チラッ くいなちゃん: 今回は、作曲理論などの難しい講義というよりも、実際にどうすれば綺麗な曲が作れるのか、という実践的な内容になっています。 くいなちゃんの独自理論ですん くいなちゃん: では、さっそく、曲を作ってみましょうー コード くいなちゃん: はい、まず曲に必要なのは、 “コード” です。 「えっ、メロディじゃ?」 と言った あなたは素人です。 コードをしっかり押さえない曲は、聴くに堪えない感じになってしまいます。 くいなちゃんは、コードもメロディも全部同時に浮かぶことのできる天才肌ですが、とりあえず今回はコードを中心に創っていきましょう! くいなちゃん: コードのルール: ** 「あるコードには、移りやすい次のコードが ある程度決まっている」 ** です! たとえば、C(ド・ミ・ソ) のコードからは、G(ソ・シ・レ) や F(略) や Am(略) に移りやすいです。 逆に、G や F から、 C にも移りやすいです。 くいなちゃん: ということなので、C → G → C → G は移りやすいコードのルールで作ったので、自然なコードということになりますね。 このコードで曲を作っていきましょ! くいなちゃん: はい、この楽譜をご覧ください。 C(ドミソ) と G(ソシレ) が交互に来ているのが解るかと思います。 わからない人は、じっくり読んでね。 http://kuina.tes.so/6saiconf_5/img0.png(魚拓) くいなちゃん: はい、コード完成です! せっかくなので、これを鳴らしてみましょう。 http://kuina.tes.so/6saiconf_5/snd0.mp3 くいなちゃん: 自然ですね! メロディをのせる くいなちゃん: では、コードが完成したので、メロディを乗せて行きましょう。 メロディのルール: ** 「拍子の部分には、コードの音を使う」 ** です! さっきの、音が鳴っているタイミングの部分に、コードの音を使って、メロディを配置してみましょう。