java

SWTのOpenglはビデオカード依存?

今日、SWTのSnippet195.javaとsnippet209.javaを試した。 これは、SWTでJOGLまたはLWJGLを使ってOpenGLを動かすものだ。ビデオカードがRadeon3450を使っているが綺麗に動いた。(もちろんビデオドライバーは最新のものを入れている) 以前、別のGeForce7300の…

sqliteでSQL statements in progress エラー

ResultSetをまわしている途中でreturnすると、次のexecuteUpdate時にSQL statements in progressエラーが出た。 while中にreturnするときは、closeしないとだめみたいだ。 sqliteのエラーメッセージになれないと苦労しそうだPreparedStatement ps = conn.pre…

GWTでJSONの扱い

gwt-jsonwrapper 使うと、物凄く楽になった。 お奨めします。 http://code.google.com/p/gwt-jsonwrapper/jsonicに遠く及びませんが、json直接使うより、遥かに楽になります。(まだ、gwtでjsonic試してないのだけど、、) そういえば、jsonic 1.1出たのですね…

SWTでLWJGL

詳しくは http://www.eclipse.org/swt/opengl/lwjgl 2.0.1をダウンロードしてインストールした lwjgl.jarとlwjgl_util.jarのパスを通した。 またnative/win32/lwjgl.dllをコピーした。

SWTでJOGLの導入

詳しくは http://www.eclipse.org/swt/opengl/Javaで標準のOpenGLであるJOGLのダウンロードしてインストールしてみた。 JOGLはJSR-231で策定された仕様です。jogl.jarだけですと、 java.lang.NoClassDefFoundError: com/sun/gluegen/runtime/DynamicLookupHe…

SWTでOpenGLを使うには、

JRE 6update11とEclipse 3.3にて JOGLとLWJGL共に、リサイズ時に描画が止まったり、それ以降描画されないことがあった。 OpenGLのトラブルは、ビデオカードのドライバーを更新するといいというので GO 7600を使っているのですが、 7.15.11.6743から 新しいDr…

JOGLのGLCanvasを画像にするには

http://download.java.net/media/jogl/builds/nightly/javadoc_public/com/sun/opengl/util/Screenshot.html ScreenShotクラスを使うのが一番簡単そうです。Rectangle r = canvas.getBounds(); com.sun.opengl.util.Screenshot.writeToFile(new File(fileNam…

RCPアプリのUndo その2

前回のは、正式な作法ではなかった。 おそらく正式なUndoは、ActionBarAdvisorで登録するみたいだ。ApplicationActionBarAdvisor.java IWorkbenchAction undoAction = ActionFactory.UNDO.create(window); register(undoAction);あとは、ViewPartでそこにア…

RCPアプリでのUndoとRedo

ようやく少しUndoとRedoに慣れて、ライブラリー化できました。 モデルデーターがあるアプリだと、単純にアクション実行前と、実行後のデーターの両方を保存すれば簡単にUndo/Redoができます。 以下のクラス見てみてください。RCPからUndoの一般的なことをし…

Time処理書いたよ

以下が処理できます。1000m 60s 30ms 1h 0:0:0.10 0:0:0:111 0:1 0 20h30m10s24mshttp://code.google.com/p/akjava/source/browse/trunk/akjava_lib_commons/src/com/akjava/lib/commons/time/TimeUtils.java

ViewPartでのコピーペースト

ViewPartのコピーペーストについて、なぜかKeyActionで取れなかったが、 ApplicationActioinBarAdviserで IWorkbenchAction copyAction = ActionFactory.COPY.create(window); register(copyAction); すれば取れるようになった。本当はさらに、こういう風に…

edtFTPjでFTP API

edtFTPj http://www.enterprisedt.com/products/edtftpj/ でFTP APIを試してみました。 jakarta-commons-netもあったのですが、resumeの仕方がわかりませんでした。edtFTPjですが、なかなかいい感じで動いてます。resumeは結局私の用途に合わせるためには元…

thingamablog関連のAPI

thingamablogがおもしろかったので、 thingamablogが使用しているという他のプログラムを調べてみた。 結構、ライブラリーが充実してる。 GPLライセンスが多いけども edtFTPjはFTPクライアントとして興味がある。 また、 3人のSunのエンジニアが作ったとい…

Javaでディスクのの容量を知るには

コマンド呼び出しの FileSystemUtilsというのがあるみたい。 http://svn.apache.org/viewcvs.cgi/jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/FileSystemUtils.java?rev=155419&view=markup

Yahooニュース・コンピューター・Javaネタ多いね。

MYCOM PCが多いだけなんだろうし、 ボクは、Java好きだから、いいんだけど、 Javaのコアクラスを扱うユーティリティ群 - Commons Lang 2.1公開等、最近、マニアックなネタが多い http://headlines.yahoo.co.jp/hl?a=20050615-00000091-myc-sciでも、もうちょ…

他のソフトのマニュアル作りは勉強になる。

自分のソフトはどうしても間違いは認められませんが、他のソフトのマニュアルを作っていると嫌というほど、操作上の欠点を見つけれます。 以外とそれを自分のソフトでもやっていることがあります。 まさに他人の振り見てわが振りなおせですね。

JavaSound といえば、

http://www.jsresources.org/ のページはかかせません。 JavaSoundの記事などはこれの日本語版の方が実用的とさえ思えます。MixingAudioはそのままだとうまく動かない気がした。 http://www.jsresources.org/examples/MixingAudioInputStream.java.html

sampleとmillisecondの変換

こんな感じ?? public static long millisecondToSample(long millisecond,float samplerate){ return (long)(millisecond*samplerate/1000); } public static long sampleToMillisecond(long sample,float samplerate){ return (long)(sample*1000/samplerat…

なるべく最初から最終系のデーターを使うべき。

例えば、だいたい2時間の長さの音声を扱うプログラムを作りたい場合、1分ほどのデーターを参考にプログラム作成すると、途中で破綻する場合ある。 破綻の原因は速度だったり、メモリ容量だったりする。 なのでなるべく最初から目的のデーターを使ってテス…

Wave Form

WaveForm 書いたよ。手抜いたわりには本物ぽいのができた。 そのうち披露する機会があるだろう。 画像的には、んな漢字です。 http://blog.livedoor.jp/openordie/

AudioInputStreamはcloseしないといけない。

inputStreamは当然closeするべきなのですが、 たまに、AudioSystem.getAudioInputStream(file).getFormat() とかのメソッドを書くと、inputStreamが開いたままなので、このファイルは削除できなくなります。 public static AudioFormat getAudioFormat(File …

vorbis ogg

RFC3533を参考に http://http1.debian.or.jp/pub/rfc/3500/rfc3533.txtcom.jcraft.jorbis.DecodeExample のコードを読んでるけど難しいな。 [Java]ImageIOを使って、JPEG出力に苦労した。 2箇所の複合的なミスがあり時間がかかった。 一つ目は、BufferedIma…

スペクトログラム解析足りないデーターを足せばいいというもんじゃない。

足りないところに値0の音を入れて 解析するとスペクトログラムはなんとなく無難にでるけど、フォルマント解析がおかしくなる。 難しいな。フォルマントの場合、追加データーは解析しないようした方がいいかもしれない。

全角マイナス(−)は化ける?

なぜかよくわからないが全角マイナスがコンパイル時に化けた! 半角が使えるから問題ないけど気をつけよう。

スペクトログラムは鬼門だった。

snackライブラリーを使ってのスペクトログラムの開発に進んだのは無理があったな。日本語名通らないのはさておき、一度に処理できるのは現実的には数分ほどだし、画像も分割しないと表示できない。 (元画像が小さくても、60000*60000とかに無理やり拡大する…

SOS

http://sos.sourceforge.jp/ SOSパッケージ 楽しみだな。 特に、Orchは興味深い。

Wave音声ファイルの再生時間を取得

サンプリングフレーム数から一秒間のサンプリングフレーム数を割る。 public static double getDurationSecond(File file) { AudioFormat format=null; try { AudioInputStream input=AudioSystem.getAudioInputStream(file); format = input.getFormat(); r…

急げば回れの通り

急げば回れということわざがあるように、 新しいAPIを試すときは、よく調べた方がいいな。 SWTのDraw2Dで最近、苦労してました。 Draw2Dはとても面白いAPIです。 描画内容をクラス化して、コンポーネントのようにレイアウト等制御 できます。SWTよりもJFace…

配列のしょうもないバグ

配列は、System.arraycopy複製だったのね。 =で置き換えちまってはまった。

Class#getResource と ClassLoader#getResource の違いと怪しさ

非常にためになる話だ。 http://www.sk-jp.com/mt/philosophical/archives/2005_04/05_224941.html