マイペースなプログラミング日記

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

Java

とりあえずJavaでMIDI編 その1

現在以下のようなXMLを読み込ませるとピアノがドレミファソラシドと8分で鳴らし、ベースはドを8分で鳴らし続け、ドラムは8ビートの基本的なパターンでバスドラムとスネアのみが鳴る。適当にSMF形式のファイル読み込めるようにして鳴らしてみようかな <MidiMusic> <Tracks> <Track number="1" program="0"> <NoteList> <Note pitch="60" position="0" type="144" velocity="100"/> </note></notelist></track></tracks></midimusic>

エントリ数を稼ぐためにソースコードを貼り付けるd-kami

まぁ、何か作ってますよ程度のもの。Java FXとJava Sound APIを使って遊んでるだけです import javafx.stage.Stage; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.B…

何となくMIDI

なんかいろいろおかしくなってるので要素名を修正するつもりだがJAXBで出力したXML。これを読み込んでJavaで鳴らしている。現在ベースとドラムが鳴っている模様 <MidiMusic> <Tracks> <Track number="0" program="34"> <NoteList> <Note Note="34" Position="0" Type="144" Velocity="100"/> </note></notelist></track></tracks></midimusic>

何度目かのJAXB

MIDI用のクラスを作り、JAXB使ってXMLで出力… わりと適当 <MidiMusic> <Tracks> <Track program="0"> <NoteList> <Note Length="0" Note="48" Start="0" Velocity="100"/> </NoteList> </Track> </Tracks> </MidiMusic>

JavaFXでファイルマネージャー編 その9 ファイルビューのソースコードの修正

前回のソースコードではJava8なのにSimpleDateFormatが使われていた! JavaFXでファイルマネージャー編 その8 ファイルビューのソースコード - マイペースなプログラミング日記ので今回はLocalDateTimeやDateTimeFormatterを使うように修正した。修正前 priv…

JavaFXでファイルマネージャー編 その8 ファイルビューのソースコード

書くことが無いから適当にソースコードを貼っておく。TableViewを継承したファイルの名前やサイズなどを表示するテーブル用のクラス。Fileの最終更新時間などを取得してLocalDateTimeやDateTimeFormatterに持っていくにはDateを経由すればいいんだろうか?と…

JavaFXでファイルマネージャー編 その7 ファイルのドラッグ&ドロップ

久しぶりにソースコードを載せてみる。とりあえずTableViewに対してデスクトップなどからファイルのドラッグ&ドロップされたときの処理。今はドロップされたファイルの名前が標準出力に行くだけです table.setOnDragOver(event -> { if(event.getGestureSour…

JavaFXでファイルマネージャー編 その6 画像をポップアップ表示

はい、Popup使って見ましたが…現在のところ最前面にでてしまいます。他のアプリケーションのウインドウさえかくしてしまう…とりあえず表示されているイラストはマスもふさんのイラストです

JavaFXでファイルマネージャー編 その4 関連付けられたアプリケーションを起動して開く

JavaFXじゃなくてAWTのAPIだけどDesktop#openで関連付けられたアプリケーションを起動してファイルを開けるようになりました。アイコンの件でキャッシュを導入してみたけど特定の動作をさせるとSwingNodeのprefWidthでNullPointerExceptionが発生する模様…も…

JavaFXでファイルマネージャー編 その3 とりあえずアイコン設定

TreeViewとTableViewへのアイコン設定が終わった…が実はまだ問題が残っていてupdateItemの中でアイコンを取得して設定してるからスクロールなんかの度にちらつきが…明日の課題です

いろいろ調査

JavaFXのTreeViewやTableViewなどのカスタマイズするために参考になりそうなページ。あとで読む aoe-tk.hatenablog.com あと、これからの予定でSwingが絡んできそうなのでJavaFXとSwingの連携に関して調べていかないと。特にUIスレッド周り。JavaFXアプリケ…

JavaFXでファイルマネージャー編 その2

TreeView側のアイコン設定が出来た模様…、あとはTableView側も頑張りたい Java

JavaFXでファイルマネージャー編 その1

しばらく小さな目標に向けてプログラミングしていくスタイル。すでにその3ぐらいだけど、ここからスタートということで…とりあえず左のTreeViewで選んだフォルダのファイルを右のTableViewで表示している様子。アイコンとか設定してないのでファイルかフォル…

簡単なことだった…

File#isDirectoryでTreeItemに追加するかどうかを判断すればよかっただけだよな…感が鈍っててよくない

小さな目標スタート

JavaFXで簡単なファイルマネージャー的な何かを作ってみようかと…左のフォルダビューに余計なファイルが表示されてるのでそれらを排除しないとな…

GWTでWeb Audio API その2

とりあえずデモ(?)が完成した。Web Audio APIに対応したブラウザで下記リンクを開いてボタンを押せば音が鳴り始めるはず… http://d-kami.net/gwt/sound/SoundTest2.html

GWTでWeb Audio API

そんなライブラリは無さそうだ?なのでJSNI使って音を鳴らしてみている。ある程度進んだらデモを公開しながら何かする…何をするのか…?

なんとなくバスドラムとスネアドラムで8ビート

ボタンを押すたびによくあるドラムの8ビートパターンを鳴らすようにしてみました。今回はボタンを押すたびにタイマを毎回生成しない仕様。しかもちゃんとタイマの状態をチェックしているので途中でパターンがおかしくなることもないと思われる import javafx…

なんとなく定期的にバスドラムを鳴らしてみる

JavaFXのタイマ使って8回バスドラムを鳴らしてみます。 参考↓ JavaFX 8でタイマー(処理の定期実行)を実装する -- ぺけみさお下記プログラムの弱点は!ボタンを押すたびに新しいタイマが起動してバスドラムを鳴らすので、実行中のタイマが終わる前にボタンを…

なんとなくMIDIでバスドラムを1発鳴らしてみる

GM(?)ならとりあえず10チャンネルで音を鳴らせばドラムになる模様。バスドラムの音は36らしい。35にもなんかあるけど https://ja.wikipedia.org/wiki/General_MIDIチャンネル10だがプログラム的には0から始まる番号なので9になる。間違えて10って書きそう… i…

なんとなくMIDIデバイス列挙

何かプログラム作らないと…という思いから何かを作り始めているようだ… import javafx.stage.Stage; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ComboBox; import javafx.…

タイマ割り込み

タイマ割り込みも無事動いて満足!

エミュレータ進捗

30日本の11日目まで進みました。ウインドウも表示出来て満足!とはいってもウインドウを表示してるのはOSであってエミュレータはウインドウかどうかもわからずに描画しているだけである。

進んでいます

見た目的には変化ないけどいろいろ変わってます

メモリ32MB

VMに割り当てたメモリは32MB、OSでちゃんと認識しています

JavaScript版のエミュレータ

はりぼてOSを動かしてるけどやはり画面描画はきついなーという感じ。テキストベースなら十分な速さに見えるが…

x86エミュレータ マウスとの戦い

マウスは認識されたようだが…値がオカシイな…

文字もOK

文字もOKといってもフォント読み込んでるのOSだし…描画してるのOSだし…C言語って感じの命令が増えてきた

順調!順調!

きたー!

進捗!進捗!

某エミュレータを作り始めて4日目、ついに画面に変化が!