2012-01-01から1年間の記事一覧

Gstreamer でスペクトラムアナライザーもどきを作ってみた

久々の更新ということに気づいた。今回は、基本的に gst-plugins-good の spectrum を使っただけで、しかもほとんどが devhelp からのコピペです。なのでソースの説明はしません。今回困ったのは、 gst-plugins-base の audiotestsrc のプロパティ "wave" と…

GdkPixbuf を使ってみた

ちょっと、画像処理(Pixel単位)が必要になり、いつもなら ImageMagick の convert コマンドを使うのだが、変化を見ながら数値を変える必要がありそうなので、画像を GdkPixbuf に読み込んで pixel 単位でデータを取得する方法を調べてみた。 Makefile とソー…

libnotify を使ってみる

今日は libnotify を使ってみます。GNOME の下の部分に表示されるやつです。StToolkit を使えば Gjs で簡単にできますが、今日は C で書きます。 まずは Makefile # $ pkg-config --cflags libnotify CFLAGS = -pthread -I/usr/include/gdk-pixbuf-2.0 -I/us…

GStreamer の audiovisualizers

GStreamer の音声可視化ツールとして audiovisualizers があります。以前 spectrascope を紹介しましたが、これは audiovisualizers に含まれています。 $ gst-inspect-1.0 audiovisualizers Plugin Details: Name: audiovisualizers Description: Creates v…

GStreamer でオーディオ波形の分配

昨日は、オーディオ波形を加算しましたが、今日は分配してみます。audiotestsrc を使って、sin波を spectrascope と wavescope に表示し、autoaudiosink に出力してみます。パイプを 2 つ用意して、それぞれ t1 t2 とします。 gst-launch-1.0 audiotestsrc !…

GStreamer でオーディオ波形の和

GStreamer でオーディオ信号を加算したり分配することができるようです。ギターの調弦では、ハーモニクス音のうなりを使用しますが、これを加算で試してみます。 音叉は 440Hz で 5 弦が 441Hz のようにずれている場合は、以下のようにシミュレーションでき…

Gstreamer でピンクノイズを出力したり、スペクトルを測定したりしてみる

マイクを使ったイベントでは、スピーカーやミキサーで調整することがあると思います。しかし、 PA 作業をミスするとハウリングが発生し、悲しいことになります。勉強会イベントではまだましですが、音楽系のイベントでは最悪の事態と行ってもよいでしょう。 …

GStreamer の gst-launch-1.0 を使ってみる

GStreamer-1.0.2 のように Version 1.0 系になった。これまで使ったことがなかったのですが、音楽関係で遊んでみようと思い、触ってみることにした。環境は Fedora 18 alpha と Momonga trunk です。メインの Momonga はオーディオやカメラ機器を取り付けな…

MxButton のトグル機能を使ってみる けど、、、

予定通り、 MxButton のトグル機能を使ったサンプルを作りましたが、どうやら、Mx ToolKit は、あまり利用されてない感じがする。 Clutter を利用した ToolKit は Gnome-Shell の ToolKit である St ライブラリを利用したほうが良さそうです。 St ライブラリ…

MxButton を使ってみる

今日は MxButton を使ってみます。GTK+の GtkButton と同じなので、特に説明も不要だと思います。 Mx っぽくするために、MxWindow を回転させることにしました。Mx のアプリケーションウィンドウは stage そのままではなく、 Toolbar など付属品があるウィン…

Mx を試してみる

これまで、Clutter を中心に書いてきましたが、 Clutter だけだと実用的なアプリケーションを作成するのはちょっと厳しいと思います。高レベルのウィジェットが無いので、ボタンやスクロールバーを自前で作らなければなりません。 そこで登場するのが Mx too…

Clutter の position_z

Clutter ネタは、書き留めていたものが無くなったので、しばらく休みます。 Clutter-1.12.0 から ClutterActor の depth がなくなり、 position_z に変わったので、そのサンプルです。単純に pozition_z を変えているだけです。 まずは C から #include <clutter/clutter.h> voi</clutter/clutter.h>…

ClutterLayout を使ってみる

昨日の拡大縮小は、今日のための布石です。今日は ClutterStage に ClutterLayout を指定して、 ClutterStage の大きさを変更した時に内部の ClutterActor が適宜整列してくれるようにします。 まずは C です。 #include <clutter/clutter.h> #define MAX_ITEM 20 int main (int</clutter/clutter.h>…

ClutterStage の拡大縮小

今日は簡単なネタで、ClutterStage を拡大縮小できるようにします。また、最小の大きさを指定しているので、それいかに小さくすることはできません。 では C から。 #include <clutter/clutter.h> int main (int argc, char *argv[]) { ClutterActor *stage; if (clutter_init (</clutter/clutter.h>…

Clutter の Constraint (制約条件)

今回のネタは、 C だと動作しますが、 Gjs だと動作しません。原因が分かる人がいたら教えてください。 Clutter Constraint とは、Clutter の位置などに制約条件をつけることで、他の Actor が変化した時に追随して動かすことができます。 では早速 C のサン…

Clutter で拡大。さらに、アニメーション

今回は ClutterActor の scale を変更して拡大縮小します。これは簡単なので、ついでに、clutter_actor_set_easing_duration() (アニメーション時間の設定)と clutter_actor_set_easing_mode() (アニメーションモード)を使って、リニアじゃない動きをさせま…

Clutter を回転させてみる

Clutter-1.12.0 から回転方法が変更されています。以前は x,y 軸の回転と z 軸の回転は別の関数だったのですが、今回からは全部同じ clutter_actor_set_rotation_angle() という関数になっていて、 回転する ClutterActor 、回転軸、回転角度を指定します。…

Clutter の Effect を使う

今回は、ClutterEffect を使ってみます。ClutterActor の端っこがめくれ上がる ClutterPageTurnEffect です。残念ながら、まだ分かっていない部分もあるので、サンプルの説明はいい加減です。 はじめに C です。シグナル(イベント処理)については、また別の…

Clutter の アニメーションを使う

前回の ClutterTimeline の若干の修正でアニメーションができます。実は、機能までのサンプルでは、 ClutterActor の派生クラスの宣言時に、 ClutterStage の場合は、 ClutterStage *stage; などとしていたのですが、サンプルを見ると、 ClutterActor *stage…

ClutterTimeline を使う

タイマーを利用してアニメーションを実施するために、 ClutterTimeline を使ってみます。はじめは C です。 #include <clutter/clutter.h> void on_completed (ClutterTimeline *timeline, gpointer user_data) { ClutterActor *actor; gfloat x, y; actor = * (ClutterActor**)</clutter/clutter.h>…

ClutterActor を使う

Clutter の ClutterActor を使うサンプル。単純にClutteStageの (100,100) の位置に (100,100) の大きさの Actor を CLUTTER_COLOR_RED で塗りつぶして表示します。 Makefile は、http://d.hatena.ne.jp/fut_nis/20120927/1348728462 を参照してください。 …

Clutter-1.12.0 になったので。テスト

Momonga trunk が clutter-1.12.0 になったので、テストしてみます。これからは、C と GJS の両方でサンプルを書く予定です。C のサンプルをビルドするため、Makefile だけ書いておきます。 # $ pkg-config --cflags clutter-1.0 CFLAGS = -pthread -I/usr/i…

Gjs で Clutter Actor をドラッグ

今回は、 Clutter.Stage 内の Clutter.Actor をドラッグして動かす紹介です。 ClutterDragAction を Actor に追加するだけなので簡単です。signal として、"drag-begin" "drag-end" "drag-motion" があるので、Action に connect すればドラッグの開始、終了…

Gjs で ClutterActor の回転など

Clutterのバージョンが 1.10 から1.12 になると大きく変わるようで、今回のサンプルは Fedora 17 では動作するけど、Momongaの開発版や Fedora 18 では動作しなくなると思います。 が、せっかく書いたので、公開します。今回は ClutterTexture をぐるぐる回…

Gjs で Clutter Actor に動きをつける

Clutter の Actor に動きをつける方法を調べてみた。 devhelp の ClutterActor の Animation に書かれているように、暗黙の指定と明示的な指定が可能らしい。しかし、明示的な指定で必要な ClutterInterval を利用するためには let interval = new Clutter.I…

Gjs で Clutter の mouse-event を利用する

Clutter でマウスイベントを処理する方法を調べてみた。 devhelp の ClutterActor の Signal Details の部分と、 Events (ClutterEvent) を見ながらサンプル作成した。 説明は面倒なので省略。。。 マニュアルからわかりにくいのが、 x,y 座標を調べるところ…

Gjs で Clutter Timeline

タイマーアプリを Gjs と Clutter で作ってみた。これって、 GLib 使うのが一般的なのだが、 Clutter.Timeline で簡単にできたので公開。 ほとんどは、いつもどおりなので、timelineだけ説明する。 const Clutter = imports.gi.Clutter; Clutter.init(null);…

Gjs で Cogl 描画

Gjs で Cogl を使った描画を試してみた。 Colg での描画関数に描画する Actor を指定する関数が無いので、適当に Class をでっち上げ、そこに描画するみたい。ソースは以下のようになる。円弧の描画、直線の描画、長方形の描画、楕円の描画、そして、タート…

GNOME LookingGlass の Evaluator と Tab による補完

GNOME-Shell をいじるにあたり、 LookingGlass が便利だと以前書きましたが、LookingGlass では、TABによる補完機能がついています。 早速 Alt+F2 で runDialog を開いて、lg と入力して LookingGlass を起動します。 js>>>というプロンプトが出るので、 js>…

結局ソースを読むしかないことがわかった

GNOME Shell Extension を書くドキュメントとして、 https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial が最高峰であるが、結局ソースを読まないとわからないことがわかった。しかも、上記のページにもあるように、JavaScriptだから簡単に変…