なたで

ゲーム音楽を演奏したい2(EWIの運指について)

ゲーム音楽を演奏したい2(EWIの運指について)

はじめに

前回の「ゲーム音楽を演奏したい1(WX5とEWIの比較)」の続きです。
結局あれからEWIを購入し、たまにゲーム音楽の練習をしてますよー!

今回は、EWIを使い始めてから分かった
ちょっとした運指のお話をしたいと思いますー。


運指とは

そもそも運指とは何かといいますと、
どの操作をすればどの音を出せるのかというものです。
例えば、リコーダーであれば、どこを押さえるとどの音が出るかといった感じ。

EWIでは、設定でフルート用の運指だったりサックス用の運指だったり色々ありまして、
EWI用運指というリコーダーに近いものがデフォルトとなっております。
私は小中とリコーダーをやっていたので、このEWI用運指を使用しています!

運指表は公式のページからダウンロードが可能です。

EWI用運指について

単純にドレミファソラシドの運指について紹介します。

ね!

簡単でしょー!
リコーダーやってたなら直ぐに思い出せます!

シャープとフラットの運指について

小学校のときとか音楽を習っていた時にいまいち
分からず難しいなーと思ったのが、
半音ずらす#(シャープ)と♭(フラット)かと思います。

そもそも#と♭について忘れている人もいるかもしれませんので、
後ろの節ですこしお話をします~!
先に読んでもよいかも!

EWIを練習し始めると、
この#と♭に悩まされると思います。

リコーダーを勉強したときにちゃんと知っている人なら
問題にならないかもしれませんが、
私はドレミファソラシドしか覚えていなかったので問題になりました……!

それで問題の#と♭は、
公式サイトの運指表ではどうなっているのか、紹介いたします。

以下、運指表のドからシまでを記載してみました。

……どうでしょうか。

運指表に記載されている「シ」が多い!
フラットはどれだ!?
うーむ、よくわからん!

と、なってしまいがちな表です。

ただ練習しているときに、
ある法則性に気が付きまして、
かなり楽に拭けるようになるテクニックを見つけました!

シャープとフラットをつけるボタンの存在

なんとEWIは、電子笛という特性上、
ボタンに#と♭をつける特徴をもつということが分かりました!

以下が、その5つのボタンです!

実は、上のボタンのうち、どれでもよいのです(恐らく!)。

ということで、#か♭、2つさえ覚えておけば、
普通のドレミファソラシドに付け加える形で簡単に音を出せるのです!

ちなみにドで♭ボタンを押せば、
シの音も出せるので、ちょっと下の音階だしたいとかによく利用したりします。

シャープとフラットとは何か

#と♭自体忘れている人もいるかもしれませんので、
おまけでおさらいをしましょう。

ピアノの鍵盤では白鍵盤と黒鍵盤があります。
この白鍵盤がドレミファソラシドとなります。

それで例えば、ドとレの間の黒鍵盤があると思いますが、
この黒鍵盤が、ド#、レ♭となります。
つまり、#が1つ上の音、♭が1つ下の音、という意味になります。


おわりに

どうだったでしょうか。

このフラットとシャープの動作について分かれば、
今まであの運指どうだったかなーとなっていたのが、
かなり楽に吹けるようになるのかなーと思います。

それでは、お疲れさまでした!
ゲーム音楽の演奏がんばりましょー!

おまけ

すこし数学的な豆知識を記載します。
これを読めばさらに音階の理解が深まるかも!

「ド」「レ」「ミ」「ファ」を、
「1」「2」「3」「4」とした場合、
「ド#」を「1.5」の音の高さだと思っている人もいるかもしれません。
(私はそう思っていました・・・)

実はそんなことなく、
「ド」「ド#」「レ#」「ミ」「ファ」は音の高さ的には等間隔で並んでいます。
(これは十二平均律と呼ばれる)
そのため、「ド」から1オクターブ上の「ド」まで12音階に区切ると、
白鍵盤と黒鍵盤の音階になるのです。

イメージとしては以下のような感じです。


※色が濃いところが、黒鍵盤が担当する音になる。

このイメージをみれば、「シ#=ド」ということが一目瞭然ですね!

ちなみに、この12音階をクロマベクトルと呼びまして、
楽譜音響信号処理で使用したりします。

さらに、ドの次の上のドは1オクターブ上の音と呼びます。
オクターブとは音響信号的に言うと音の基本周波数が2倍になった音となります。
基本周波数というのは音の高さを表しており、
一般的にAの音は440Hzとなっており、
1オクターブ上のAの音は880Hzとなります。
(※ド=Cなので、Aはラとなります。)

語りだすとかなり長いので、この辺で……w

ちなみにこのへんの話が興味ある方は、
だいぶ昔の記事ですが、
SMFプレイヤーをつくろう!リベンジ「出力ポート、MIDIと周波数の関係」
とかも面白いかも・・・

それでは、またね!

WordPressで利用しているプラグインを紹介

by なたで 0 Comments

はじめに

WordPress.com からレンタルサーバーに引っ越しをしてから、
自分でプラグインを入れてカスタマイズを色々しました。
いろいろと試したので気に入ったのを紹介したいと思います。

記事表示支援用プラグイン

AddToAny Share Buttons

記事内にSNSボタンを追加します。
インストールすると、「設定」メニューの「AddToAny」が増えます。

WordPress自体にもSNSを追加できる機能があるのですが、
こちらのプラグインのほうがたくさんの種類に対応しています。
またボタンの形もいくつか用意されているので、
こちらのプラグインに統一しました。

テーマによっては、SNS機能を使えるものもあるのですが、
やっぱりプラグインで、一元化したい。

Category Order and Taxonomy Terms Order

カテゴリの順序を好きな順序に入れ替えることができます。
インストールすると、「設定」メニューの「Taxonomy Terms Order」が増えます。

これはインストールしておかないと、
順番がぐっちゃぐちゃになるので重要。

Easy Profile Widget

プロフィール用のウィジェットを追加します。

My WP Translate

使用しているテーマを日本語化できます。
インストールすると、「My WP Translate」メニューが増えます。

このツールを使用すれば、
英語用のテーマでも日本語化することができます。

WordPress Related Posts

記事の下に関連する記事を表示するプラグインです。
インストールすると、「設定」メニューの「WordPress Related Posts」が増えます。

WPFront Scroll Top

記事の右下に、上へ戻るボタンが表示されるようになるプラグインです。
インストールすると、「設定」メニューの「Scroll Top」が増えます。

記事投稿支援用プラグイン

Auto Post Thumbnail

記事投稿する際に、記事内の画像をアイキャッチとして自動で設定するプラグインです。
インストールすると、「設定」メニューの「Auto Post Thumbnail」が増えます。
ここでインストールしていなかった時の過去の記事もアイキャッチの自動生成が行えます。

なおアイキャッチというのは記事内の一番上に表示される画像なのですが、
デザインに関わるため、いらないという場合もあるので導入は検討すること。
なお、CSSを自分で編集してアイキャッチの表示を消すということもできます。

Easy SVG Support

記事にSVG形式の画像を埋め込めるようになります。
インストールして有効化し、ブログ内のCSSに以下を追加するだけで使えます。

/* Easy SVG Support */
img[src $= '.svg'] {
	width: 100%;
	height: auto;
}

Enlighter – Customizable Syntax Highlighter

記事にソースコードを埋め込めたいときに便利なプラグインです。
ブログ内にソースコードを記載した際に、シンタックスハイライト機能を追加します。
プログラミング技術系のブログなら必須ですねー。

HTML Editor Syntax Highlighter

記事投稿する際のHTMLエディタにシンタックスハイライトを追加するプラグインです。
少し前まで利用していたのですが、これを利用すると
「ビジュアル」⇔「テキスト」を行き来するときに
なんかデータが消えたりすることがあったので、今はいれておりません……。

MathJax-LaTeX

記事内に数式を埋め込みたいときにプラグインです。
これをいれれば、LaTeXの記法で数式を簡単に埋め込むことができます。
アルゴリズム系の記事とか書くときはとてもよいので是非導入しましょう。

TinyMCE Advanced

記事投稿する際に、表を簡単に作れるようになるプラグインです。
インストールすると、「設定」メニューの「TinyMCE Advanced」が増えます。

最適化用プラグイン

Jetpack by WordPress.com

ブログ全体を「WordPress.com」にあるような
アクセス解析機能やサイト管理機能を利用できるようになります。
インストールすると、「Jetpack」メニューが増えます。

今まで「WordPress.com」を使用していたので、
これをインストールして、以前と同じように
アクセス解析を表示できるようにしました。

人気の記事表示などのウィジェットも増えたり
色々な機能が利用できるようになるので超おススメです。

All In One SEO Pack

ブログ全体をSEO向けに最適化するプラグインです。
インストールすると、「All In One SEO Pack」メニューが増えます。

私はこれを使用して、記事のタイトルを書き換えたり、
Google ウェブマスターツールの認証、
GoogleアナリティクスIDの認証、
Google用にへXMLサイトマップの更新をしたりしています。

Autoptimize

ブログの表示を高速化するプラグインです。
インストールすると、「設定」メニューの「Autoptimize」が増えます。

HTML、JavaScript、CSSをそれぞれ最適化して、バイト数を減らしたりすることができます。
ですが、JavaScript、CSSに関しては、他のプラグインやテーマと非常に干渉がしやすいので
現状、HTMLのみ最適化にしております。

なお、Googleフォントの削除機能もあります
Googleフォントはファイルサイズが大きく
使用しないのであれば、これで強制オフにしておくとよいでしょう。

Disable Google Fonts

ダウンロードに時間がかかるGoogleフォントを無効化します。
インストールするだけで有効になります。

WP Multibyte Patch

日本語表示で起こるバグを防止するプラグインです。
インストールするだけで有効になります。

効果はよくわからないですが、とりあえずインストールしてます……。

WP Super Cache

表示したデータをキャッシュとして持つことで次回の表示を高速化します。
インストールすると、「設定」メニューの「WP Super Cache」が増えます。

これはたしかに高速化されるのでおすすめです。

セキュリティ対策用プラグイン

Akismet Anti-Spam

スパムの投稿を防止するプラグインです。
インストールすると、「Jetpack」メニューの「Akismet Anti-Spam」が増えます。

これによりスパム投稿を防ぐことができます。
なお利用する場合は、ユーザー登録が必要です。

Google Captcha (reCAPTCHA) by BestWebSoft

ブログの管理者用ログインやコメント投稿をする際に Google Captcha を使用するようにできます。
インストールすると、「Google Captcha」メニューが増えます。

これによりロボットによるログインやスパム投稿を防ぐことができます。
しっかり有効なURLの設定をしておかないと、自分もログインできなくなるので注意。
なお利用する場合は、ユーザー登録が必要です。

Remove Query Strings From Static Resources

JSとCSSのリンク先のURLの後ろに「?移行のデータ」を消して
キャッシュを有効化し表示を高速化します。
インストールするだけで有効化されます。

さくらのレンタルサーバ 簡単SSL化プラグイン

さくらサーバーを使用してWordPressのブログを作り
SSL化する場合に利用するプラグインです。
このプラグインを使用することで簡単にSSL化できます。
インストールすると、「設定」メニューの「SAKURA RS SSL」が増えます。

広告表示用プラグイン

Ad Inserter

広告を任意の場所に入れることができるプラグインです。
インストールすると、「設定」メニューの「Ad Inserter」が増えます。
私はこれで記事の上と下に入れるようにしました!

直接テーマをいじって広告を入れたほうが、
より好きな位置に入れられるのですが
テーマを更新した場合などを考えると
プラグインでやってしまったほうが楽ですねー。

Amazon Auto Links

Amazonの広告を自動で作成します。
インストールすると、「Amazon Auto Links」メニューが増えます。
無料版だと作れる数の制限があります。

記事管理用プラグイン

Batch Cat

記事を一覧で表示して、選択後してカテゴリへ一括移動させます。
インストールすると、「ツール」メニューの「Batch Cat」が増えます。

Bulk Move

タグを一括でカテゴリに移すときに使用します。
インストールすると、「ツール」メニューの「Bulk Move」が増えます。

個々の記事ごとに移すものではないので注意。

Search Regex

タイトルや記事内等の文字列を正規表示により置換がします
インストールすると、「ツール」メニューの「Search Regex」が増えます。

Simple Tags

記事を一覧で表示して、一覧上からタグを指定して一括で変更ができます。
インストールすると、「設定」メニューの「Simple Tags」、
そして「ツール」メニューの「タグの一括編集」が増えます。

タグを強化するプラグインですが、
記事に対してタグを付けなおす「タグの一括編集」が非常によいです。

WordPress インポートツール

WordPress.com から引っ越ししたときに使用したツール。
このツールを使うと、記事、コメント、メディアなどすべてを引っ越しできます。
テーマやプラグインは引っ越しできないので、入れ直しになります。

Google Authenticator を引っ越ししたときの話

Google Authenticator を引っ越ししたときの話

by なたで 0 Comments

はじめに

Google Authenticator」というものをご存知でしょうか

iPhoneやアンドロイドで利用できるアプリでして、
二段階認証が行うことができるソフトとなっています。

今回、新しいiPhoneへ移行したときに、
Google Authenticator も移行したのですが、
このとき発生した問題についてまとめます。

問題

これまでのiPhoneの引っ越しの感覚で、
iTunesを使用して、ボタン2、3回で終わると思っていたのですが、
「Google Authenticator」で問題が発生しました。

Google Authenticatorを起動すると次のような画面がでるのです。

2段階認証プロセスでGoogleアカウントにログインするには必ず、
パスワードの他に、このアプリで作成するコードが必要になります。

・・・?

あれ、Googleアカウントに結びつけられた
メールやカレンダーは復旧できたけど、
これは自動で復旧できないのかな?

下の設定でGoogleアカウントにログインできないのかなー
と下の「設定」を押してみる。

・・・!?

  • バーコードをスキャン
  • 手動で入力

え・・・?
これは、Googleアカウントへのログイン方法のことか?
しかし、何か様子が違うような・・・

原因

実は「Google Authenticator」は
Googleアカウントと結び付きをしていないのです!

なので、
「バーコードをスキャン」「手動で入力」
といった項目は、新たに二段階認証を行いたい
アプリを増やす追加の設定のボタンなのです。

久しぶりにこのアプリ使ったのでそれを忘れていて、
Googleログインができるものかと思っていました。

というわけで、
「Google Authenticator」でこれまで登録していたサイトについては、
新たに、サイトで二段階認証の再設定を行い、
アプリに登録する必要があるのです。

解決策

私の場合は、以前のiPhoneに、
認証済みの「Google Authenticator」が入っていたので
それを使ってサイトにログインし、全て二段階認証を解除しました。

私は偶然助かったのですが、
もし、以前の「Google Authenticator」を消してしまった場合は、
そもそも二段階認証を解除しようにも、サイトにログインができないので、
つむでしょう・・・あぶなかったー!

恐らく、救済処置としてサイトの管理者に連絡するなどすれば
ログインできるようになるかもしれませんが、
身分証明などはかなり面倒かと思います。

おわりに

Googleのアプリなので、Googleにログインすれば
紐づけ的に復旧できると思ったのですが、まさか復旧できないとは。

というわけで、Google Authenticatorを使用している方は気を付けましょう。

SMSの二段階認証ならよいですが、
アプリを使った二段階認証もオフにしておいてもよいかもねー。

真夏の職場で使えるひんやり冷感グッズの紹介!

真夏の職場で使えるひんやり冷感グッズの紹介!

はじめに

こんにちはー。
暑い日が続いていますが、いかがお過ごしでしょうか。
今日は、少し変わって超オススメ冷感グッズを紹介したいと思います・・・。

私の仕事場は一応冷房は効いているものの、
今年は特に日差しが強いのと、机は窓際というというのもあり、
日中は30度になってしまいます。

卓上扇風機は使っているのですが、
それでも暑くなにかいい案がないかを考えていました。

涼しいグッズ探し

いろいろあるとは思いますが、ぱっと思いついたのが、
速乾性のタオルと、ハッカ油的な冷感スプレーの組み合わせ!

首に巻くタオルといえば、
水を吸って膨らむタオルというのもあるのですが、
以前買ったけど洗うのが大変だったので、
普通の速乾性のタオルを試してみることにしました。
速乾タオルというのは、水分が蒸発しやすいような作りのタオルで
気化熱で涼しくなるタオルです。

ここに冷感スプレーを人ふきすればかなり涼しくなると思います!

というわけで、以下、2点を購入しました。

 冷感スプレー

 アイスタオル

 結果報告

試したかった濡れタオルに冷感スプレーを試してみました。

以下、冷たそうなタオル完成!

そして結果なのですが、かなり冷たい。

卓上扇風機の前におくと、どんどん気化熱で冷たくなっていき、
冷蔵庫から出したような感覚の冷たさになりました!

これはよい買い物をした・・・。

おまけ 卓上扇風機

数年前に買った、山善の卓上扇風機がよいです!

USBタイプだと電力が足りないので、別電源タイプを選択。
その中でも、静穏性がよい扇風機を選択しました!

涼しいのでおすすめ!

セカンドライフでタッチしたプリムの情報を取得する

はじめに

セカンドライフでプリムをクリックしたときにどこの位置を触ったのか、
といった情報をずらーっと出してみるサンプルです。

サンプル

とにかくいろいろ情報を取得してみます。
全部表示すると訳が分からなくなるのでちょっと表示しています。
ちなみに、テクスチャのUUIDに関しては権限を持っていないと取得できません。

integer	detected_link		= 0;
integer	detected_face		= 0;
vector	detected_touch_pos	= ZERO_VECTOR;
vector	detected_touch_uv	= ZERO_VECTOR;

integer	selected_link		= 0;
integer	selected_face		= 0;
vector	selected_touch_pos	= ZERO_VECTOR;
vector	selected_touch_uv	= ZERO_VECTOR;
string	selected_name;
string	selected_description;
vector	selected_position;
rotation selected_rotation;
vector	selected_size;
string	selected_texture_name;
vector	selected_texture_repeats;
vector	selected_texture_offsets;
float	selected_texture_rotation_in_radians;
vector	selected_color;
float	selected_alpha;
integer	selected_isfullbright;
float	selected_intensity;
string	selected_normal_name;
vector	selected_normal_repeats;
vector	selected_normal_offsets;
float	selected_normal_rotation_in_radians;
string	selected_specular_name;
vector	selected_specular_repeats;
vector	selected_specular_offsets;
float	selected_specular_rotation_in_radians;
vector	selected_specular_color;
integer	selected_specular_glossiness;
integer	selected_specular_environment;
integer	selected_alpha_mode;
integer	selected_mask_cutoff;

setSelected(integer target_link, integer target_face, vector target_touch_pos, vector target_touch_uv) {
	integer num = 0;
	list x = llGetLinkPrimitiveParams(target_link,
		[
			PRIM_NAME,						// string name
			PRIM_DESC,						// string description
			PRIM_POS_LOCAL,					// vector position
			PRIM_ROT_LOCAL,					// rotation rot
			PRIM_SIZE,						// vector size
			PRIM_TEXTURE, target_face,		// string texture, vector repeats, vector offsets, float rotation_in_radians
			PRIM_COLOR, target_face,		// vector color, float alpha
			PRIM_FULLBRIGHT, target_face,	// integer boolean
			PRIM_GLOW, target_face,			// float intensity
			PRIM_NORMAL, target_face,		// string texture, vector repeats, vector offsets, float rotation_in_radians
			PRIM_SPECULAR, target_face,		// string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossiness integer environment
			PRIM_ALPHA_MODE, target_face	// integer alpha_mode, integer mask_cutoff 
		]
	);
	selected_link			= target_link;
	selected_face			= target_face;
	selected_touch_pos		= target_touch_pos;
	selected_touch_uv		= target_touch_uv;
	selected_name			= llList2String(x, num++);
	selected_description	= llList2String(x, num++);
	selected_position		= llList2Vector(x, num++);
	selected_rotation		= llList2Rot(x, num++);
	selected_size			= llList2Vector(x, num++);
	selected_texture_name					= llList2String(x, num++);
	selected_texture_repeats				= llList2Vector(x, num++);
	selected_texture_offsets				= llList2Vector(x, num++);
	selected_texture_rotation_in_radians	= llList2Float(x, num++);
	selected_color							= llList2Vector(x, num++);
	selected_alpha							= llList2Float(x, num++);
	selected_isfullbright					= llList2Integer(x, num++);
	selected_intensity						= llList2Float(x, num++);
	selected_normal_name					= llList2String(x, num++);
	selected_normal_repeats					= llList2Vector(x, num++);
	selected_normal_offsets					= llList2Vector(x, num++);
	selected_normal_rotation_in_radians		= llList2Float(x, num++);
	selected_specular_name					= llList2String(x, num++);
	selected_specular_repeats				= llList2Vector(x, num++);
	selected_specular_offsets				= llList2Vector(x, num++);
	selected_specular_rotation_in_radians	= llList2Float(x, num++);
	selected_specular_color					= llList2Vector(x, num++);
	selected_specular_glossiness			= llList2Integer(x, num++);
	selected_specular_environment			= llList2Integer(x, num++);
	selected_alpha_mode						= llList2Integer(x, num++);
	selected_mask_cutoff					= llList2Integer(x, num++);
}

showSelectedData() {
	llOwnerSay(
		"linknum: "		+ (string)selected_link + ", " + 
		"facenum: "		+ (string)selected_face + "\n" +
		"linkpos: "		+ (string)selected_position + "\n" +
		"linksize: "	+ (string)selected_size + "\n" +
		"color: "		+ (string)selected_color + "\n" +
		"alpha: "		+ (string)selected_alpha + "\n" +
		"texture: "		+ (string)selected_texture_name + "\n" +
		"normal: "		+ (string)selected_normal_name + "\n" +
		"specular: "	+ (string)selected_specular_name + "\n" + 
		"touchuv: "		+ (string)selected_touch_uv + "\n" +
		"touchpos: "	+ (string)selected_touch_pos + "\n" +
		""
	);
}

touchStart() {
	// 押した場所を確認
	setSelected(detected_link, detected_face, detected_touch_pos, detected_touch_uv);
	showSelectedData();
}

default {
	
	touch_start(integer num_detected){
		detected_link		= llDetectedLinkNumber(0);
		detected_face		= llDetectedTouchFace(0);
		detected_touch_pos	= llDetectedTouchPos(0);
		detected_touch_uv	= llDetectedTouchUV(0);
		touchStart();
	}
	
}

 

%d人のブロガーが「いいね」をつけました。