ポタフェス2014 12/20、21

気になるヘッドホンがいくつかあったので、ポタフェスの2日目に行ってきました。

千葉方面からも近いし、出展ブランドも増えてきたし、
エスカレーターでフロア移動できるのも楽でいいですね。

ヘッドホン祭の方はフロア移動が大変なのよね~
もうポタフェスだけでいいかな...と思っちゃいます。(;´д`)


さてと、普段使っているイヤホン・ヘッドホンは
 DENON AH-D1100
 AKG K530
 SONY MDR-10RC
 JVC HA-FX700
プレイヤーは
 iPod touch 3G
になります。

以下、感想~


・Pioneer
HDJ-C70
パイオニアのDJ向け新製品ということで聴いてみました。iPodでも普通のボリュームで鳴ってくれます。音はバランスのいい音って感じでしょうか。
パイオニアの場合、DJ向けのヘッドホンが音はいい気がしますね~。DJ向けってことで、買い替え候補には入れてなかったけど、まじめに検討するのもいいかもしれない...(´~`)


・Skullcandy
CRUSHER
 サブウーハー搭載しているそうな。ウーハーが鳴っている時はホームシアターのような感じで面白かった。ただ、なったりならなかったりして少々不自然な感じですね。でも、面白いヘッドホンですわ。


・Polk Audio
buckle
 AH-D1100のように低音が盛られているヘッドホンでした。ただ盛り方に少々違和感を感じます。なだらかに持っていくのではなく、ある周波数以下を断崖絶壁のように急に盛っているような感じです。でも、音の響きは AH-D1100 と似ている感じがします。
右側のイッチはボリュームの上げ下げ、ミュートができました。ボリュームの上げ下げは iPod touch のボリュームと同じくらい音量が変わります。ので、このスイッチなくてもいいじゃ...と思っちゃいました。iPod touchのボリュームの間を刻める感じならよかったのなぁ~。
あと折り畳みもできませんでした。

ultrafocus 8000
 ノイズキャンセルが付いているのですが、その割には全然、違和感がなかったです。
でも、ポタフェスの会場が主に人の声しかしない状態だったのでキャンセル具合はよくわかりませんでした。装着感もよく、音はbuckleに比べるとバランスの良い音でした。


・OPPO
HA-2、PM-3 これなかなかいいですね。
PM-3 直差しや、HA-2を普通に使う場合はフラットな普通にいい音って感じですが
私の好みの音ではなかったです。
しかしPM-3のBassをONにすると自然な感じで低音を盛ってくれます。
音の響き方もいい感じで、すごい好みの音に化けます。
装着感もよかったです。
この組み合わせ、安ければ買いたいと思うけど...OPPOの製品は値段が高いイメージがあるのよねぇ~(;´д⊂)


・おまけ(1か月くらい前に家電量販店で聴いた物)

オーディオテクニカ ATH-MSR7
 ささるほどではないんだけど...高音がシャープすぎるかな。シルバーに関してはソニーMDR-1Aよりいいカラーリングだと思います。

SONY MDR-1A
 普通にいい音!デザインもいい!しかし、もうちょっと低音がほしい。でも、そういう人はMDR-10Rがいいのだろうけど、1Aと比べると、音のこもりがひどい(>_<)
1Aなどの高いヘッドホンと比べてはいけませんね...
MDR-1ADACは古いiPodは繋がらないのでパス。
MDR-XB950は低音出過ぎですわ。




Raspberry Pi でタッチパネル

Raspberry Pi でタッチパネルを試してみました。

使用した液晶モジュールや接続、設定は以前の記事どおりです。
そのM028C9325TPにはタッチパネルも付いているので、これを使ってみます。
あとRPiはB+でないとGPIOの数が足らないです...(´~`)

ハード的な接続は
を参考に繋いでます。

Linuxカーネルのビルドや準備は
を参考に手元のカーネルソースに追加・設定しビルドしました。

/boot/config.txt を以下のように修正して画面サイズを小さくしています。
framebuffer_width=640
framebuffer_height=480
hdmi_group=2
hdmi_mode=4
タッチパネルの調整も必要なので入力イベントをコンソール上で見れるツールもインストールしておきます。
sudo apt-get -y install xinput evtest
カーネルビルドで参考にしたHPにも書いていますがヘルパーモジュールも必要なので
cd
git clone https://github.com/notro/fbtft_tools.git
cd ~/fbtft_tools/ads7846_device; make && sudo make install
でインストールしています。

ここで一旦タッチパネルを使えるようにして調整~
sudo modprobe ads7846_device gpio_pendown=4
evtest
しかし、調整しようと思ったらXY座標が入れ替わってるっぽいので
sudo modprobe -r ads7846_device
sudo modprobe -r ads7846
でモジュールを削除して、 swap_xyの引数を追加して組み込みしなおします。
sudo modprobe ads7846_device gpio_pendown=4 swap_xy
でも、まだおかしい...Y方向のみ逆になってる...
しかも、入れ替える設定がないっぽい?
仕方ないので、モジュールのソースコードを修正しました。
カーネルソースの linux/drivers/input/touchscreen/ads7846.c の 861 行目辺り
if (Rt) {
    struct input_dev *input = ts->input;

    if (ts->swap_xy)
        swap(x, y);

    y = (y-4095)*-1;

    if (!ts->pendown) {
            input_report_key(input, BTN_TOUCH, 1);
            ts->pendown = true;
            dev_vdbg(&ts->spi->dev, "DOWN\n");
    }

    input_report_abs(input, ABS_X, x);
    input_report_abs(input, ABS_Y, y);
    input_report_abs(input, ABS_PRESSURE, ts->pressure_max - Rt);

    input_sync(input);
    dev_vdbg(&ts->spi->dev, "%4d/%4d/%4d\n", x, y, Rt);
}                
オレンジ色の1行を追加してY座標を反転させています。
これをコンパイル、組み込みしなおし
evtest
を起動している状態で4隅をタップしてXY座標の最小値、最大値をメモします。
最小値、最大値を引数にして組み込みなおします。
私の環境だと以下のようになりました。
sudo modprobe ads7846_device gpio_pendown=4 swap_xy x_min=523 x_max=3822 y_min=451 y_max=3711
これで調整完了。

今回、動作確認アプリにはJavaFX8を使用しました。
JavaFXだとXWindowなしでUIアプリが作れます。

からARM用JDKをダウンロードして
sudo tar zxvf jdk-8u6-linux-arm-vfp-hflt.gz -C /opt
でインストール。
アプリを640x480の画面サイズで作成し、
/opt/jdk1.8.0_06/bin/java -cp test.jar fx.JavaFXMain
などで実行できます。
JavaFXアプリはRPiに依存することなく、ごく一般的な作り方をすればOKです。

動作確認のため、以下のようにし液晶表示できるようにします。
sudo modprobe fbtft_device name=itdb28 fps=15 rotate=90 gpios=reset:13,dc:5,wr:12,cs:6,db00:14,db01:15,db02:17,db03:27,db04:22,db05:23,db06:24,db07:25
fbcp &
(3行に見えるかもしれませんが、2行です。)

で、実際に動かしてみた動画は以下になります。


JavaFXアプリの起動はさすがに遅いですね (;´д`)
タッチパネルの反応もいまいちな感じです。



BABYMETAL LEGEND 1999&1997 Blu-ray

BABYMRTALの「LIVE ~ LEGEND 1999&1997 APOCALYPSE」が届いたのでホームシアターで鑑賞してみました。('∇')
1枚のBDに2公演分収録されています。

まずは LEGEND 1999 から~
・低音成分がふくまれていない!?
 2曲目の「いいね」で気づいたのですが、全然ウーファーが鳴ってくれません。
 前作の LEGEND Z ではガンガンに鳴ってなのになぁ~(´~`)
 少々残念です。
・後半の生演奏になってから楽器の音が大きすぎてボーカルが聞こえにくくなってます。
 音のバランスが悪すぎます。(>_<)
 でも、何度も聞いていたら、これはこれでありかなと思い始めました。
 バンドの音を爆音で聴きたいときはいいかもしれない。
・だんご3兄弟がヒットしたのが1999だったのにショック
 YUIMETAL、MOAMETALが生まれた年に流行ってたんですね...
 つい最近の出来事なきがするけどそんなに時間がたっていたとは...
 紙芝居を見てた時、軽くショックでしたわ ヽ(;´д`)ノ

次に LEGEND 1997
・音のバランスは前半、後半ともに問題ありませんでした。
・やっぱり低音成分は含まれていない!?
 こちらもサブウーファーがガンガン鳴ることはなかったです。
・ラストのほうでステージ上に長靴!?が落ちているのが気になった。


1999の方は音のバランスのせいで少々不満ですが1997の方は普通に楽しめると思います。



Raspberry pi I2S PCM1716でハイレゾ再生

moraでKalafinaのハイレゾ音源(24bit、96kHz)を購入したのでRPiのI2S出力で再生してみようと思います。

PCM1716を使用するにはシステムクロックが必要になるので
Raspberry Pi I2S 出力で外部クロック使用 その2
のようにPLL1707で外部クロックを生成するのですが、当時は16bit、48kHzまでしか想定していないのと768fsを使いたかったせいで、そのままでは使えませんでした。
そんなわけでシンプルにしてみました。


PLL1707は96kHzだと384fsまでしか出せないっぽいので、システムクロックにはPLL1707のSCKO3の384fsを。
RPiの入力に必要なビットクロック64fsはSCKO2の256fsを74AC163で4分周しました。


次にI2Sドライバー側です。過去の記事とほぼ一緒ですが...
以下、GPIOのピン番号はRPi B+用になってます。

sound/soc/bcm/bcm2708-i2s.c
53行目辺り
#include <linux/gpio.h>
#include <linux/delay.h>
539行目辺り
gpio_request_one(26, GPIOF_OUT_INIT_LOW, "MyTest");
if (sampling_rate == 48000 || sampling_rate == 96000) {
  gpio_set_value(26, 0);
} else {
  gpio_set_value(26, 1);
}
gpio_free(26);

gpio_request_one(13, GPIOF_OUT_INIT_LOW, "MyTest");
if (sampling_rate == 96000) {
  gpio_set_value(13, 1);
} else {
  gpio_set_value(13, 0);
}
gpio_free(13);

gpio_request_one(16, GPIOF_OUT_INIT_LOW, "MyTest");
if (data_length == 16) {
  gpio_set_value(16, 0);
} else {
  gpio_set_value(16, 1);
}
gpio_free(16);
GPIO26をPLL1707のFS1に繋いで44.1kHzか48kHzかを設定。
GPIO13をPLL1707のSRに繋いで上記周波数を2倍にするか否かを設定。
GPIO16をPCM1716のIWOに繋いで16bitか24bitかを設定しています。

694行目辺り
struct bcm2708_i2s_dev *dev = snd_soc_dai_get_drvdata(dai);
uint32_t mask;
int myerr;

switch (cmd) {
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
  myerr = gpio_request_one(12, GPIOF_OUT_INIT_LOW, "MyTest");
  if (myerr == 0) {
    gpio_set_value(12, 1);
    gpio_free(12);
    mdelay(100);
  }

  bcm2708_i2s_start_clock(dev);

  if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
          mask = BCM2708_I2S_RXON;
  else
          mask = BCM2708_I2S_TXON;

  regmap_update_bits(dev->i2s_regmap,
                  BCM2708_I2S_CS_A_REG, mask, mask);
  break;

case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
  myerr = gpio_request_one(12, GPIOF_OUT_INIT_LOW, "MyTest");
  if (myerr == 0) {
    gpio_set_value(12, 0);
    gpio_free(12);
    mdelay(100);
  }

  bcm2708_i2s_stop(dev, substream, dai);
  break;
GPIO12をPCM1716のMUTEに繋いでます。

791行目辺り
static struct snd_soc_dai_driver bcm2708_i2s_dai = {
        .name   = "bcm2708-i2s",
        .probe  = bcm2708_i2s_dai_probe,
        .playback = {
                .channels_min = 2,
                .channels_max = 2,
                .rates =        SNDRV_PCM_RATE_8000_192000,
                .formats =      SNDRV_PCM_FMTBIT_S16_LE
                  // : disable for now, it causes white noise with xbmc
                                | SNDRV_PCM_FMTBIT_S24_LE
                                | SNDRV_PCM_FMTBIT_S32_LE
                },
        .capture = {
                .channels_min = 2,
                .channels_max = 2,
                .rates =        SNDRV_PCM_RATE_8000_192000,
                .formats =      SNDRV_PCM_FMTBIT_S16_LE
                                | SNDRV_PCM_FMTBIT_S24_LE
                                | SNDRV_PCM_FMTBIT_S32_LE
                },
        .ops = &bcm2708_i2s_dai_ops,
        .symmetric_rates = 1
};
24bitの所がコメントアウトされていたので外しました。しかし、最新のソースコードだと元々上記のようになってますね。

sound/soc/codecs/pcm1794a.c
24行目辺り
static struct snd_soc_dai_driver pcm1794a_dai = {
        .name = "pcm1794a-hifi",
        .playback = {
                .channels_min = 2,
                .channels_max = 2,
                .rates = SNDRV_PCM_RATE_8000_192000,
                .formats = SNDRV_PCM_FMTBIT_S16_LE |
                           SNDRV_PCM_FMTBIT_S24_LE |
                           SNDRV_PCM_FMTBIT_S32_LE
        },
};
一応、SNDRV_PCM_FMTBIT_S32_LEを追加。

sound/soc/bcm/rpi-dac.c
45行目辺り
static struct snd_soc_dai_link snd_rpi_rpi_dac_dai[] = {
{
        .name           = "HifiBerry Mini",
        .stream_name    = "HifiBerry Mini HiFi",
        .cpu_dai_name   = "bcm2708-i2s.0",
        .codec_dai_name = "pcm1794a-hifi",
        .platform_name  = "bcm2708-i2s.0",
        .codec_name     = "pcm1794a-codec",
        .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                                //SND_SOC_DAIFMT_CBS_CFS,
                                SND_SOC_DAIFMT_CBM_CFS,
        .ops            = &snd_rpi_rpi_dac_ops,
        .init           = snd_rpi_rpi_dac_init,
},
};
外部クロックを使うように設定しています。

あとはドライバーをコンパイルして適当な場所にコピーして組み込めばOK。
sudo insmod snd-soc-bcm2708-i2s.ko
sudo insmod snd-soc-pcm1794a.ko
sudo insmod snd-soc-rpi-dac.ko

MPDで再生してみるとみごと鳴ってくれました。ヽ(´▽`)ノ




BABYMETALにはまった~(´~`)

9月にBABYMETALにはまってしまいました。(´~`)

随分前に海外の反応で取り上げられていて、メギツネのPVを見たのですが
その時はいい曲だなと思いつつも、メタル系の曲は聞かない人だったのでピンときませんでした。
今年の9月ごろになって、また海外の反応で取り上げられていて、なんでかな~と思って見てみると
海外のフェスに出たり、海外ツアーしていたんですね~(゜д゜)
今だとYouTubeにライブやフェスの映像が上がっていて、それを見ていらBABYMETALにはまってしまいました。(´∀`)

今年の初めにアルバムを出してるので、さっそく購入~





新品でも価格が安いのがいいですね。
BABYMETALはそんなに曲出してないので、ライブで歌う曲はほぼ収録されているようです。
どれもいい曲なのですが、挙げるとすれば
 BABYMETAL DEATH
 メギツネ
 紅月-アカツキ-
 おねだり大作戦
 4の歌
 Catch me if you can
 ヘドバンギャー! !
辺りが好みかな~。
「BABYMETAL DEATH」「Catch me if you can」辺りを上げているのはライブの影響だと思います。



CDもいいのですが私はライブ映像ではまったこともあり、おすすめはライブBDです!(=゜ω゜)ノ
今は残念なことにライブBDはまだ一つしか発売されていないようです。
こちらも早速購入~(´∀`)





なんと!このライブBD3公演分が収録されています。(ノ゜o゜)ノ
ただ、どれも2012年の公演なのでアルバムに収録されている新しめの曲がセットリストになかったりします。
それでも十分楽しめるかと思います。
あと、このBD見る前に背景を知っておいたほうが、より楽しめると思うので、(特にLEGEND "Z")
Amazonのレヴューの「女神降臨伝説。その時に何が起こったか想像しつつ見てほしい傑作。」を見ておくといいと思います。

ライブのほうですが、MCが一切ありません。その代り動画とナレーションが流れるようになっていて、その内容も会場を盛り上げるようになっています。そのせいで最初から最後まで会場のテンションが高く維持されている状態でした。(;゜ロ゜)
そのせいかな?観客が観客の上を波乗りしてたり、ペットボトルが飛んでたりもします。(笑

可能であるならこのライブBDはホームシアターの環境で視聴することをお勧めします。
AVアンプのYAMAHA RX-A3010 のシネマDSPをロキシーシアターに設定。
何度かLEGEND"Z"をホームシアター環境で視聴したのですが、ウーファー(impact-10 Velodyne)がかなり効いていて迫力があります。(´∀`)
1曲目の「イジメ、ダメ、ゼッタイ」はそうでもないのですが、2曲目の「いいね!」からウーファーの鳴り方がヤヴァイです。ヽ(;´д`)ノ
低音がよく出るヘッドホンやイヤホンで聞くのとはまったく違います。いわゆるこれが体で感じる音ってやつかもしれません。

10月末には新しいライブBD「LIVE~LEGEND 1999&1997 APOCALYPSEが発売されるので、こちらも楽しみですね~('∇')



ライブBDやYouTubeのライブ映像をみていると、やっぱ自分も現地に行きたくなりますよね~?
丁度、来年
 2015/01/10 さいたまスーパーアリーナで
「BABYMETAL LEGEND “2015” ~新春キツネ祭り~」
が開催されるとのこと。
さっそくファンクラブに相当する?「BABYMETAL APOCALYPSE」に加入というか購入?
して先行抽選に申し込んで当選!ヽ(´▽`)ノ
最初なのでアリーナ立見は怖くて、スタンド指定席の方にしておきました。
アリーナ立見はサイリウムやメガネがふっとんだり、靴が脱げたり、人が降ってきたりするそうなので
かなりハードっぽいです。でも、盛り上がれるのはアリーナ立見でしょうね~

ちなみに「BABYMETAL APOCALYPSE」を購入するとバインダーとブックレットが送られてきます。


中身はこんな感じ。






ホームシアター サブウーファー買換え Velodyne impact-10

発売日に買ったはいいけど半年ほど放置していたパシフィック・リムをホームシアターで鑑賞しました。 

しかし!サブウーファー(スーパーウーファー)からノイズが...
派手にウーファーが鳴るときにノイズが出ているようです。
そんなわけでウーファーを買い替えました。
 
 
Velodyne impact-10
店頭でパシフィックリムを再生してノイズが出ないのを確認して購入しました。
実際、自宅でも問題なくノイズなしで再生できています。
  

さっそく設置。
フロントとリアにもスピーカー追加して9.1chに。
足置きは買ってきたトイレットペーパーのパッケージに布をかぶせてます。意外といい!(´∀`)

この状態でいくつかBDを視聴してみました。

  
まずは ラブライブ!μ’s→NEXT LoveLive! 2014~ENDLESS PARADE です。
AVアンプ RX-A3010 のシネマDSPは ロキシーシアター で視聴しました。
大画面だとカメラの揺れが気になりますね~(;´д`)
それ以外は特に問題なし。
ユニット曲あたりからウーファーが効いているのを実感できますね。

  

次に ガールズ&パンツァー これが本当のアンツィオ戦です! です。
4.1chの音声で視聴しました。シネマDSPはストレートです。
いい感じで0.1chが鳴っています。
TVシリーズでは低音成分がぶつ切りされる箇所があり違和感がありましたが、
このOVAでは起きていないようです。



Raspberry Pi B+ 到着 & I2S出力確認

Raspberry Pi B+ が届きました。
しかし、P5がなくなってI2Sが使えるか謎でなんですよね~(´~`)
でも、公式フォーラムによると使えるとのことで試してみました。

sudo rpi-update

でファームウェア更新。

カーネルソースコードもってきてコンパイル。

bcm2708-i2s.c を以下のように赤字部分を修正。
static void bcm2708_i2s_setup_gpio(void)
{
        /*
         * This is the common way to handle the GPIO pins for
         * the Raspberry Pi.
         * TODO Better way would be to handle
         * this in the device tree!
         */
#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
#define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))

        unsigned int *gpio;
        int pin;
        gpio = ioremap(GPIO_BASE, SZ_16K);

        /* SPI is on GPIO 7..11 */
        for (pin = 18; pin <= 21; pin++) {
                INP_GPIO(pin);          /* set mode to GPIO input first */
                SET_GPIO_ALT(pin, 0);   /* set mode to ALT 0 */
        }

#undef INP_GPIO
#undef SET_GPIO_ALT
}

でもって、このドライバーを組み込み、
http://elinux.org/RPi_BCM2835_GPIOs
を見つつ GPIO18、19、21 をDACに繋げば今までと同じように使えました。

/etc/modules に bcm2708_dmaengine も追加する必要あり。







Raspberry Pi に液晶(LCD)を繋いでみました

Raspberry Pi に液晶(LCD)を繋いでみました。
使用したのは Aitendo の M028C9325TP です。


参考HPは以下の通り。
https://github.com/notro/fbtft/wiki
http://www.raspberrypirobot.com/tft-2-8-lcd-raspberrypi-240x320-ili9325c-touch-screen-display-monitor/
http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
http://www7b.biglobe.ne.jp/~nobosan_flute/lab_theme31.htm


まずは M028C9325TP を8bitモードにしなくてはなりませんが、
参考HPによるとAitendoのHPの説明が間違っています!
実際、動作しなかったしね...(;´д⊂)

ガバッ!っと液晶をはがして、緑丸で囲ったR2の抵抗をはがして、R1をショートさせる必要があります。
 

あとは
https://github.com/notro/fbtft/wiki/LCD-Modules#itdb02-28
のParallel databusのように繋いでおきます。
(今回はタッチパネルは使用しません)

次に
https://github.com/notro/fbtft/wiki
からSDカードイメージ(2014-01-07-wheezy-raspbian-2014-03-12-fbtft-master-firmware.zip)をダウンロードして起動~!
以下のコマンドで、ドライバをインストール。
sudo modprobe fbtft_device name=itdb28 gpios=reset:17,dc:3,wr:2,cs:27,db00:9,db01:11,db02:18,db03:23,db04:24,db05:25,db06:8,db07:7,led:4 rotate=90
配線間違っていなければ、以下のように表示されると思います。






正面だと白飛びが激しいですね (;´д`)


ちょっと角度をつけると、いい感じです。

動画の再生は fbcp と omxplayer を使えばハードウェア支援ありで再生可能です。
でもLCD自体が10~20fpsみたいなので、少々カクカクですがね~(´~`)
あと、4:3に縮小されるようなので、
omxplayer --win "0 150 1704 870" bbb.mp4
のように横長表示させてあげればLCD上では丁度いいサイズになってくれます。



Raspberry Pi i2s出力とPCM1716でノイズ対策

raspbian だと標準で I2S 出力できるようになりましたが、
手元の PCM1716 を普通に繋いで MPD で再生すると
以下のケースでノイズが出てしまいます。

・再生開始時
・停止時
・シーク時
・音楽フォーマット変更時(16bit<=>24bit、44.1kHz <=> 48kHz など)

いくつか試した結果、外部クロックにしてドライバ内で設定が変わるたびに PCM1716 をミュートして0.1秒のウェイトを入れると、いい感じになりました。ヽ(´▽`)ノ
今まで出ていたポップノイズみたいなのが聞こえなくなってます。
以下、その改良内容です。

クロスコンパイルしたカーネルにRPi上でコンパイルしたドライバを組み込もうとすると、
ハングアップしちゃいます。
前はうまくいってたのになぁ~(;´д⊂)
しかたないのでRPi上でカーネル、ドライバをコンパイル!

https://github.com/raspberrypi/linux
から branch rpi-3.10.y を選択してダウンロード。

いざ、コンパイルしようとすると bc がないと言われちゃいます。
ので、
sudo apt-get install bc
でインストール。
でもってコンパイル!
5~6時間放置!!

コンパイルしたカーネル&ドライバでI2S出力できることを確認してから改良していきます。
赤文字が追加緑文字が更新です。

rpi-dac.c
53行目辺り
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
             //SND_SOC_DAIFMT_CBS_CFS,
             SND_SOC_DAIFMT_CBM_CFS,
これで外部クロックを使えるようになります。

bcm2708-i2s.c
41行目辺り
#include <linux/gpio.h>
#include <linux/delay.h>
を追加。

462行目辺り bcm2708_i2s_hw_params() 内
switch (params_channels(params)) {
case 2:
    format = BCM2708_I2S_CH1(format) | BCM2708_I2S_CH2(format);
    format |= BCM2708_I2S_CH1(BCM2708_I2S_CHPOS(ch1pos));
    format |= BCM2708_I2S_CH2(BCM2708_I2S_CHPOS(ch2pos));
    break;
default:
    return -EINVAL;
}

int myerr = gpio_request_one(4, GPIOF_OUT_INIT_LOW, "MyTest");
if (myerr == 0) {
  if (sampling_rate == 48000) {
  gpio_set_value(4, 0);
  } else {
  gpio_set_value(4, 1);
  }
  gpio_free(4);
}

myerr = gpio_request_one(8, GPIOF_OUT_INIT_LOW, "MyTest");
if (myerr == 0) {
  if (data_length == 16) {
  gpio_set_value(8, 0);
  } else {
  gpio_set_value(8, 1);
  }
  gpio_free(8);
}
フォーマットに応じてPCM1716とPLL1707の設定を変更しています。
GPIO4はPLL1707のFS1 (PIN 5)、GPIO8はPCM1716のIW0 (PIN 23) に繋いでいます。
PCM1716のフォーマット選択はしなくても音鳴ってたけど、ついでなので制御するようにしました。

645行目辺り bcm2708_i2s_trigger() 内
int myerr;

switch (cmd) {
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
    myerr = gpio_request_one(7, GPIOF_OUT_INIT_LOW, "MyTest");
    if (myerr == 0) {
      gpio_set_value(7, 1);
      gpio_free(7);
      mdelay(100);
    }

    bcm2708_i2s_start_clock(dev);

    if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
        mask = BCM2708_I2S_RXON;
    else
        mask = BCM2708_I2S_TXON;

    regmap_update_bits(dev->i2s_regmap,
            BCM2708_I2S_CS_A_REG, mask, mask);
    break;

case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
    myerr = gpio_request_one(7, GPIOF_OUT_INIT_LOW, "MyTest");
    if (myerr == 0) {
      gpio_set_value(7, 0);
          gpio_free(7);
      mdelay(100);
    }

    bcm2708_i2s_stop(dev, substream, dai);
    break;
default:
    return -EINVAL;
}
停止や再開の時にPCM1716をミュートにして0.1秒ウェイトしています。
GPIO7をPCM1716のMUTE (PIN 25)に繋いでいます。

以上の修正をしたらドライバをコンパイルして組み込めばOK~

MPDクライアントでどんな操作してもポップノイズみたいなのが出なくなりました。ヽ(´▽`)ノ





EDWIN ジャージーズ

久々にジーパンで出かけようとしたら、ちょっとおキツイ...(;´д`)
随分お腹が出てきたものです。
それだけならまだいいんだけど、財布やスマホが前ポケットに入らない!!
この状態はさすがに不便すぎますね。

新しいのを買わないといけいないな~(´~`)

ってなわけで、ゆったりとしたジーパンないかなぁ~と探していると、
EDWIN ジャージーズ (ER403-593)というのを見つけたので買ってみました。


これいいですね!('∇')
私のジーパンのイメージとはずいぶん違う感じで、期待していた通り、柔らかくゆったりとしたジーパンでした。
前ポケット左右にスマホと財布を入れても全然キツクなく、その状態で椅子に座っても楽だし、
そこそこ前ポケットの深さがあるので、Galaxy Note II のような大きいスマホでも足の付け根に食い込むこともないです。

いいジーパンに出会えましたわ~ヽ(´▽`)ノ




Raspberry Pi 最近のI2S出力事情

最近のRPiは標準でI2S出力ができるようですね。
一昔前はドライバのコンパイルが必要だったのに~(;´д⊂)

どんな感じなのか 2014-01-07-wheezy-raspbian で試してみました。
インストール直後は使えないのかな?
/etc/modules
を以下のように編集すると使えるようになりました。
赤字の部分を追加しています。
snd-bcm2835
snd_soc_bcm2708_i2s  
bcm2708_dmaengine  
snd-soc-pcm1794a   
snd_soc_rpi_dac
以前と同じようにPCM1716を繋いで鳴らしてみました。
システムクロックはBCKをICS570を使って4倍にしてます。


普通に使えてます。
随分手軽に使えるようになったのね~(´∀`)






Raspberry Pi で XBMC

RPiを購入したころにRaspBMC(RPi用XBMC)を使ってみましたが、
当時はあまり有効な使い方を思いつきませんでした。

しか~し!最近、知ったのですがRaspBMCってリモートコントロールできるんですね!(;゜ロ゜)
リモートコントロールできるなら使い道がありそうです。

でも、個人的に便利に思う機能はデフォルトOFFになっていました。
以下のようにAirplay、UPnPの機能をONにできます。



AirplayをONにするとiTunesやiPodから出力先をRaspBMCにすることができます。
でも残念なことにRaspBMCでAirplayは少々不安定なようです。

また、UPnP関係の機能をONにするとRaspBMCをDMRにすることができるようです。
Windows8から「Play To」で動画や音楽ファイルをRaspBMCで再生させることができます。




MPEG2ライセンスを購入してRaspBMCに設定しておけば、TSファイルもスムーズに再生可能でした。しかし、途中で解像度が変わるような物はダメですね。解像度が変わるタイミングで映像が止まってしまいます。こういうファイルはTsSplitterなどで切り出しておく必要がありますね。




Raspberry Pi で音楽ファイルのリモート再生 Windows8[Play To]編

Windows8でwavファイルを右クリックすると「Play To」という見慣れないメニューがあるのに気付きました。
マウスカーソルを合わせてみるとAVアンプの名前が表示されるではないですか!(;゜ロ゜)
これはリモート再生の類かなと思って調べてみると、やはりそのようです。
どうもDMRに対応したDLNA機器をネットワークに繋いでると表示されるみたい。

もしや...RaspberryPi(以下RPi)使えばDLNA非対応な自宅TVDMRのようにできちゃうかも!

ってことで、まずは簡単に実現可能な音楽ファイルの再生をやってみました。

以下のHPの手順で GMediaRenderer をインストールします。

これだけでAndroidアプリのUPnPlayなどで、Andtoid内とかDLNAサーバ上の音楽ファイルをRPiでリモート再生できます。

Windows上の「Play To」を使えるようにするには以下のHPの通りにします。

そうすると以下の画像のように「Play To」からRPiを選択できちゃいます。


ただ、少々問題がありますね。
 ・曲の頭1秒ほど再生されない場合がある。(1曲目は100%再現!?)
 ・WindowsMediaPlayerのプレイリストの再生はうまくいかない。
 ・たまに不安定になる。

上記以外は特に問題なさそうです。wav、Apple Losseless、iTunes購入曲、AmazonMP3購入曲なども再生できました。



電子書籍

先週アルペジオBD3巻届きましが、原作のほうも気になってきたので
電子書籍で購入しました。

2巻辺りから先が気になって、現在発売されている8巻まで一気に読んでしまいましたわ(´~`)

Koboだと3/28までコミック30%OFFで購入できちゃいます。
30%OFFって結構いい割引率ではないかな~!?
これ以外にも、結構な頻度でKoboのAndroidアプリのほうに30%OFFクーポンが表示されたりします。

この機会に電子書籍デビューしてみてはいかが?(´∀`)

http://kobo.rakuten.co.jp/event/camp-comic20140307/?scid=wi_kb_top_right_comic20140307





Raspberry Piで動画再生 VLC編

omxplayerで久々にMPEG2-TSを再生しようとしたら再生できない!
GPUメモリが足りなかったようです。
前は64MBで再生できたような気がするけど128MBに設定したら再生できるようになりました。

あと、いつのまにかVLCでもハードウェア支援が受けられるようになっていたんですね。
http://intensecode.blogspot.jp/2013/10/tutorial-vlc-with-hardware-acceleration.html
GPUに128MB確保した旧256MB版RPiだとメモリが足らずコンパイルできなかったので
新512MB版RPiを使用したほうがいいです。
コンパイルには6時間くらいかかります。寝ている間にコンパイルしておくのがいいかと思います。

このVLC、XWindow上でもコンソール上でも実行できます。

実際にMPEG2-TSを再生してみましたがomxplayerに比べるとコマ落ちしちゃってます。
アニメなら許容範囲だと思いますが、実写だと気になるレベルかもしれません。




蒼き鋼のアルペジオ ‐アルス・ノヴァ‐ Blu-ray

アルペジオはキャラクターふくめてCGってことで視聴も録画もしていませんでした。
しかし、結構よかったみたいで気になっていたんですよね~。

2/7にニコニコ動画で一挙放送があるという情報をキャッチし、タイムシフト視聴してみたら
評判通りおもしろかった!('∇')
後半はキャラクターがCGであることを気にしなかったし、CGアニメの可能性を感じることができましたよ。

この視聴をきっかけにアルペジオ関連のコンテンツを調べてみると...
「蒼きラジオのアルペジオ」ニコ生出張版が独特な雰囲気でおもしろいです!


さらに、ED曲やそのカップリング曲、出張版の中で紹介されていた
ャラクターソングの出来がかなりいい!(゜∇゜)
 ●蒼き鋼のアルペジオ EDテーマ ブルーフィールド
 ●蒼き鋼のアルペジオ -アルス・ノヴァ-「Blue Field」キャラクターSongs
どれも耳に残るいい曲ばかりです。





キャラクターソングは配信のみかなと思っていましたが、どうもBDの特典で偶数巻に付いてくるようです。

そんなわけで、2013秋アニメ BDマラソンをのんのんびよりからアルペジオに乗り換えました。
特典を比べてみると、アルペジオの方が特典いいんですよね~(´∀`)
アルペジオ
・オーディオコメンタリ キャスト30分、スタッフ30分
・サントラ(奇数巻) or キャラソン 3本(偶数巻)
・海上自衛隊レポート
のんのんびより
・オーディオコメンタリ 30分
・キャラソン 1本
・ラジオ 5分





RaspberryPi SDカードイメージのミラー

久しぶりにRaspberryPiのSDカードイメージを公式(http://www.raspberrypi.org/downloads)から
ダウンロードしょうとしたらものすごく遅い!(>_<)

前は我慢できないほど遅くなかったはずなんだが...

ミラーないかな~と思って探してたら...あったんですね!(゜∇゜)
http://ftp-admin.blogspot.jp/2013/02/raspberry-pisd.html
30分ほどでダウンロード完了しました。




ffmpegの-ssオプションの位置

自宅の録画&動画ファイル管理Webアプリで60秒スキップなどを実装したいな~と思いました。

PCからの再生だとパワーあるのでVLCでTSファイルをそのまま再生していますが、
Androidタブレットだとパワー不足のためスムーズに再生できません。
ので、h264にリアルタイムエンコードしながらタブレットに送っています。

PCで再生の場合(TSファイルをそのまま送信)、VLCでシークバーを動かすと
HTTPリクエストヘッダーに「nバイト目から送ってくれ」みたいな情報を付けてくれます。
しかし、Andoridだとエンコードしながらなので難しいんですよね。

仕方ないので、簡単な動画再生Andoridアプリを作成し、再生秒数をカウントしておき、
スキップボタン押すとスキップしたい秒数を足して「先頭からn秒後からエンコードしてくれ」
という方式にしました。

最初はffmpegのオプションを以下のようにしました。
ffmpeg.exe -i インプットファイル名 -f flv -acodec libvo_aacenc -vcodec h264 -s 1280x720 -b 1500k -ss 60 -threads 4 -loglevel quiet pipe:1
これだと指定位置からのエンコード開始がものすごく遅い...(;´д⊂)
どうもエンコードしながら60秒の位置まで来たら出力開始しているようです。

Google先生に聞いてみると-ssオプションは位置によってパフォーマンスが結構変わるとのこと!
次は以下のようにしてみました。
ffmpeg.exe -ss 60 -i インプットファイル名 -f flv -acodec libvo_aacenc -vcodec h264 -s 1280x720 -b 1500k -threads 4 -loglevel quiet pipe:1
これだと、シークが一瞬で終わってくれて、60秒の位置からエンコード開始してくれます。
実際にプレイヤー側で再生、スキップしてみても問題ないパフォーマンスが出てくれました。('∇')




梶浦由記つながりCD&BD

梶浦由記つながりのCD&BDをいくつか購入しました。

Kalafina Consolation



Kalafinaらしいアルバムですね。
ただ、2曲目の「Consolation」に「ジッ」って感じのノイズが一瞬入っているのが残念。




Kalafina LIVE TOUR 2013 “Consolation” Special Final



 

私の場合Kalafinaの曲はCDのイメージが強いのでライブだと違和感があるかな~と思って
購入を迷っていましたが、結局買ってしまいました。(´д`)
全体的にいい感じでした。特にラスト2曲はフルートもライブに加わって最高です。
ただ、前回のライブBDと同じく、Magiaだけいまいちだったかな。Magiaはライブでは難しい曲なのかな。CD音源のバランスがよすぎて、その印象が強いせいもあるかも。
あと映像がたまにぼやけるシーンがあり、これまた残念。演出かもしれませんが、これはいらないと思いますね。




FictionJunction elemental



私の場合、FictionJunctionのほうはKalafinaと違ってライブ音源の印象強いんですね~。
しかし、久しぶりのアルバムだし、新曲も数曲入っているのでいいんじゃないかなと思います。
ただ、こちらも9曲目の「野原」にかすかですが、音割れしているようなノイズが入っているのが残念。






古いMX動画プレイヤーをインストール

ドコモ ARROWS Tab F-05E にインストールしていた
MX動画プレイヤーを最近アップデートしたらハードウェアアクセラレーション HW+
使えなくなってしまいました。

Google先生に聞いても解決方法わからず...(;´д⊂)

GooglePlayのレヴューにも12月末あたりからダメみたいな書き込みがありますね。

公式HP https://sites.google.com/site/mxvpen/ 行けば何か情報あるかな~
と思って行ってみると、
なんと!
古いバージョンのapkが置いてありますね (゜∇゜)
(今はページがなくなっているようです。)

とりあえず12月半ばの 1.7.20 をインストールしてみたら無事HW+が使えるようになりました。
しばらくはこのままアップデートしないほうがいいのかね~