SSブログ
前の10件 | -

NanoPi Neo2 メモ (RPi.GPIOをarmbianで利用)

NanoPi NEO2 で手っ取り早くFriendlyARM な RPi.GPIO ライブラリーをarmbianで使うとか。

以下ダラダラ記述...

Access GPIO Pins/Wirings with RPi.GPIO_NPInstall RPi.GPIO_NPにあるように

The RPi.GPIO_NP library is integrated in all the UbuntuCore images that are and will be released after June 5, 2017.

今回使用した元ネタイメージ
 ⇒ nanopi-neo2_ubuntu-core-xenial_4.11.2_20170630.img.zip

ってことで、以下のファイルを取り出し。

root@NanoPi-NEO2:/# s -l /usr/local/lib/python2.7/dist-packages/RP*
-rw-r--r-- 1 root 126  813 Jun  5 11:49 /usr/local/lib/python2.7/dist-packages/RPi.GPIO-0.5.8.egg-info

/usr/local/lib/python2.7/dist-packages/RPi:
total 148
-rwxr-xr-x 1 root 126 145936 Jun  5 11:49 GPIO.so
-rw-r--r-- 1 root 126      0 Jun  5 11:49 __init__.py
-rw-r--r-- 1 root 126    141 Jun  5 11:49 __init__.pyc
root@NanoPi-NEO2:/#


で、armbian のイメージは NanoPi Neo 2 – armbian Ubuntu server – mainline kernel (Nightly Build) を使用。
※最近、NanoPi NEO2に限らずH5の更新かかってないような..、

NanoPi NEO2 のarmbianにlogin 出来ようになったら、↑の方で取り出したファイルをarmbinの同ディレクトリに配置(コマンドとか省略)

■本題
/usr/local/lib/python2.7/dist-packages/RPi/GPIO.so バイナリを編集&保存

とりあえずemacs (hexl-mode)
GPIO.so オリジナル
下段は /proc/cpuinfo 表示
FriendlyARM ubuntu-core-xenial_4.11.2_20170630
bef.png
GPIO.so 編集後
armbian Armbian_5.32.170704_Nanopineo2_Ubuntu_xenial_dev_4.11.8
/proc/cpuinfo のHardwareに合わせてGPIO.soを編集(下段の表示 )
aft.png
これで RuntimeError: This module can only be run on a NanoPi NEO/NEO2! で蹴られることなく、今のところ普通に動作
nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

NanoPi NEO2 SPI LCD接続とか。 [NanoPi Neo]

NanoPi NEO2 メモ
参考にさせて頂いたページはこちら。⇒ NanoPi-NEOとMPDとOLEDで音楽再生サーバ
MPD関連は特に変更なし。
a.jpgd.jpgb.jpg
■ 主な変更点
・interface: i2c → SPI
・device: OLED ssd1306 → LCD ST7735S (これを使用)
・luma.lcd library

■ 使用libraryとか、OS imageとか
luma.lcd 0.5.0 python library
・Official rom image
 nanopi-neo2_ubuntu-core-xenial_4.11.2_20170605.zip
・RPi.GPIO 0.5.8 (上記、nanopi-neo2_ubuntu-core-xenial_4.11.2_20170605.zip に含まれる)
NanoHatOLED source

■ 注意点
ここの記述にあるように、 NanoPi用RPi.GPIOは"June 5, 2017" 以降のimage(2017/07/03時点 nanopi-neo2_ubuntu-core-xenial_4.11.2_20170605.zip のみ)に含まれているので、これ以外のイメージ(nanopi-neo2_ubuntu-oled_4.11.2_20170531.zip)などに含まれている RPi.GPIO 0.5.11では動作せず。

★ RPi.GPIO 0.58の控えと戻し(重要)
 1. ubuntu-core-xenial_4.11.2_20170605 imageインストール & OS初期設定
 2. RPi.GPIO 0.58の控え
    # cd /usr/local/lib/python2.7/dist-packages/
    # tar cvf  ~/RPi_0.58.tar RPi*

 3. NanoHatOLED インストール
  「NanoHat OLED関係を入れる」を参照
 4. luma.lcd インストール
 5. RPi.GPIO 0.58への戻し
  ※この時点で RPi.GPIO 0.5.11(NanoPiでは動かない...)にupdateされているハズなので戻す。
    # cd /usr/local/lib/python2.7/dist-packages/
    # rm -rf RPi*
    # tar xvf  ~/RPi_0.58.tar
    # pip list | grep RPi
    RPi.GPIO (0.5.8)
    #
■物理接続
--------------------------------------------------------------
 LCD          NanoPi Neo2 (CN1 Pin No.)
--------------------------------------------------------------
 VLED   ----  2    5V
 VCC    ----  17   3.3V
 DC/A0  ----  18   UART1_CTS/GPIOG9  (gpio_DC=18)
 SDA    ----  19   SPI0_MOSI/GPIOC0
 GND    ----  20   GND
 RST    ----  22   UART2_RX/GPIOA1  (gpio_RST=22)
 SCLK   ----  23   SPI0_CLK/GPIOC2
 CS     ----  24   SPI0_CS/GPIOC3
--------------------------------------------------------------
 
■ハマッたところ
serial = spi(bus_speed_hz=32000000, transfer_size=64, port=0, device=0, gpio=GPIO, gpio_DC=18, gpio_RST=22)
device = st7735(serial, h_offset=1, v_offset=2, rotate=1)

 1. h_offset=1, v_offset=2
  ⇒ 要画面表示位置調整
 2. transfer_size=64 指定必須
   ⇒ 未指定時4096がデフォだが64を指定しないとspi dev open後のデータ送信不可
 3. rotate=1 or 3 設定時は framebuffer="full_frame" 指定不可
   ⇒ エラーは出ないが画面表示ぐちゃぐちゃ

■code
/root/NanoPi-NEO_OLED_MPD/oled_mpd.py
#!/usr/bin/env python
# -*- encoding:utf8 -*-
#
#	apt-get install fonts-takao-pgothic
#	apt-get install python-mutagen python3-mutagen

import os
import sys
import time
import signal
import socket
import errno
import subprocess

import RPi.GPIO as GPIO
from luma.core.serial import spi
from luma.lcd.device import st7735
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw

mpd_music_dir	= "/media/"
scroll_unit		= 1

title_height	= 18

font_title              = ImageFont.truetype('TakaoPGothic.ttf', 14, encoding='unic')
font_info		= ImageFont.truetype('TakaoPGothic.ttf', 11, encoding='unic')
font_audio		= ImageFont.load_default()
font_time		= ImageFont.truetype('TakaoPGothic.ttf', 27);
font_date		= ImageFont.truetype('TakaoPGothic.ttf', 16);

mpd_host		= 'localhost'
mpd_port		= 6600
mpd_bufsize		= 8192


def receive_signal(signum, stack):
	try:
		soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		soc.connect((mpd_host, mpd_port))
		soc.recv(mpd_bufsize)

		if signum == signal.SIGUSR1:
			print 'K1 pressed'
			soc.send('previous\n')
			soc.recv(mpd_bufsize)

		if signum == signal.SIGUSR2:
			print 'K2 pressed'
			soc.send('status\n')
			buff        = soc.recv(mpd_bufsize)
			state_list  = buff.splitlines()
			for line in range(0,len(state_list)):
				if state_list[line].startswith(r"state: "):
					info_state      = state_list[line].replace(r"state: ", "")
					print(info_state)
					if info_state == 'play' :
						soc.send('stop\n')
						soc.recv(mpd_bufsize)
					else:
						soc.send('play\n')
						soc.recv(mpd_bufsize)
		if signum == signal.SIGALRM:
			print 'K3 pressed'
			soc.send('next\n')
			soc.recv(mpd_bufsize)

	except socket.error as cerr:
		if cerr.errno == errno.EINTR:
			buff        = soc.recv(mpd_bufsize)
			print("Exception! :", sys.exc_info())
			pass

signal.signal(signal.SIGUSR1, receive_signal)
signal.signal(signal.SIGUSR2, receive_signal)
signal.signal(signal.SIGALRM, receive_signal)

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
serial = spi(bus_speed_hz=32000000, transfer_size=64, port=0, device=0, gpio=GPIO, gpio_DC=18, gpio_RST=22)
#device = st7735(serial, framebuffer="full_frame", h_offset=1, v_offset=2)
device = st7735(serial, h_offset=1, v_offset=2, rotate=1)

oled_width  = device.width
oled_height = device.height
# cover_size  = oled_height - title_height - 20
cover_size  = device.width - 12

# OLED image
image			= Image.new('RGB', (oled_width, oled_height))
draw			= ImageDraw.Draw(image)
draw.rectangle((0,0,oled_width,oled_height), outline=0, fill=0)

music_file     = ""
cover_image   = Image.new('RGB', (cover_size, cover_size))
title_image   = Image.new('RGB', (oled_width, title_height))
title_offset   = 0

# Draw opening image
try:
	device.display(Image.open('opening.png').resize((oled_width,oled_height)).convert('RGB'))
	time.sleep(0.4)
except:
        device.display(image)

soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.connect((mpd_host, mpd_port))
soc.recv(mpd_bufsize)
# soc.send('commands\n')
# rcv = soc.recv(mpd_bufsize)
# print("commands:")
# print("----- start ----------")
# print( rcv )
# print("----- end ----------\n")

while True:
	try:
		soc.send('currentsong\n')
		buff        = soc.recv(mpd_bufsize)
		song_list   = buff.splitlines()
		# print("currentsong:")
		# print("----- start ----------")
		# print( buff )
		# print("----- end ----------\n")
		soc.send('status\n')
		buff        = soc.recv(mpd_bufsize)
		state_list  = buff.splitlines()

		# print("status:")
		# print("----- start ----------")
		# print( buff )
		# print("----- end ----------\n")

		info_state      = ""
		info_audio      = ""
		info_elapsed    = 0
		info_duration   = 0
		info_title      = ""
		info_artist     = ""
		info_album      = ""
		info_file       = ""
	except socket.error as e:
		if e.errno == errno.EINTR:
			buff        = soc.recv(mpd_bufsize)
			print("Exception! :", sys.exc_info())
			continue

	for line in range(0,len(state_list)):
		if state_list[line].startswith("state: "):     info_state      = state_list[line].replace("state: ", "")
		if state_list[line].startswith("audio: "):     info_audio      = state_list[line].replace("audio: ", "")
		if state_list[line].startswith("elapsed: "):   info_elapsed    = float(state_list[line].replace("elapsed: ", ""))
		if state_list[line].startswith("time: "):      info_duration   = float(state_list[line].split(":")[2])

	for line in range(0,len(song_list)):
		if song_list[line].startswith("file: "):       info_file       = song_list[line].replace("file: ", "")
		if song_list[line].startswith("Artist: "):     info_artist     = song_list[line].replace("Artist: ", "")
		if song_list[line].startswith("Album: "):      info_album      = song_list[line].replace("Album: ", "")
		if song_list[line].startswith("Title: "):      info_title      = song_list[line].replace("Title: ", "")

	# clear the image
	draw.rectangle((0,0,oled_width,oled_height), outline=0, fill=0)

	if info_state != "stop":

		if info_title == "" :
			name    = info_file.split('/')
			name.reverse()
			info_title  = name[0]

			try:
				info_album  = name[1]
			except:
				info_album  = ""

			try:
				info_artist = name[2]
			except:
				info_artist = ""

		if info_file != music_file :

			music_file  = info_file;
			file_path   = mpd_music_dir + info_file
			cover_path  = mpd_music_dir + os.path.split(music_file)[0] + "/front.jpg"

			print('--------------------------------------------')
			print(file_path)

			try:

				from mutagen import File
				file = File(file_path) # mutagen can automatically detect format and typeof tags

				if hasattr(file,'tags') :

					# for FLAC
					if hasattr(file,'pictures') :
						print( 'type = pictures' )
						print( file.pictures )
						artwork = file.pictures[0].data

					# for mp3
					elif 'APIC:' in file :
						print( 'type = APIC' )
						artwork = file.tags['APIC:'].data

					# for m4a
					elif 'covr' in file :
						print( 'type = covr' )
#                       print dir( file.tags['covr'][0])
						artwork = file.tags['covr'][0]

					else:
						print('NoPicture!, dump tags')
						print( file.tags )

					with open('front.jpg', 'wb') as img:
						img.write(artwork) # write artwork to new image

					cover_path  = "front.jpg"

				else:
					print( 'type = NO TAGS')

			except:
				print("Exception! :", sys.exc_info())
				## print( file.tags )
				continue

			print( cover_path )
			cover_draw  = ImageDraw.Draw(cover_image)
			####### cover_draw.rectangle((0,0,cover_size-1,cover_size-1), outline="white", fill=0)
			if os.path.isfile( cover_path ) :
				front_image = Image.open(cover_path).convert('RGB').resize((cover_size-1,cover_size-1),Image.ANTIALIAS)
				cover_image.paste( front_image.convert('RGB'), (0,0))
			else:
				text_x, text_y = font_audio.getsize("NoImage")
				cover_draw.text(((cover_size-text_x)/2, (cover_size - text_y)/2 ), "NoImage", font=font_audio, fill="white")
			# Generate title image
			title_width, dmy_y   = font_title.getsize(unicode(info_title,'utf-8'))
			title_offset    = oled_width / 2;
			title_image     = Image.new('RGB', (title_width, title_height))
			title_draw      = ImageDraw.Draw(title_image)
			title_draw.rectangle((0,0, title_width, title_height), outline=0, fill=0)
			title_draw.text((0,0), unicode(info_title,'utf-8'), font=font_title, fill="white")

		# Title
		x   = 0
		y   = cover_size + 2
		if oled_width < title_image.width :
			if title_image.width < -title_offset :
				title_offset    = oled_width / 2

			if title_offset < 0 :
				x   = title_offset

                        time.sleep(0.04)
			title_offset    = title_offset - scroll_unit

		image.paste(title_image, (x,y))
		x   = 0;

		# Current playback position
		y =  cover_size
		r	= (oled_width * info_elapsed / info_duration) if 0 < info_duration else oled_width
		draw.line((x, y, r, y ), fill="red")

		# Cover Image
		y   += 2;
		image.paste( cover_image, (5,0))

		# artist name, album name, audio format
		### x   = cover_size + 3;
		x   = 0
		y   += title_height -5;
		draw.text((x, y), unicode(info_artist,'utf-8'), font=font_info, fill="lime")
		draw.text((x, y + (oled_height - 10 - y) / 2), unicode(info_album,'utf-8'), font=font_info, fill="cyan")
		draw.text((x, oled_height - 10), unicode(info_audio,'utf-8'), font=font_audio, fill="navy")
	else:

		music_file  = ""

		draw.text((2, 4),time.strftime("%A"),		font=font_date,fill="skyblue")
		draw.text((2,21),time.strftime("%e %b %Y"),	font=font_date,fill="skyblue")
		draw.text((2,77),time.strftime("%X"),		font=font_time,fill="white")

	device.display(image)


   ★参考コード
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

メモ:Cubietruckとか [Cubietruck]

おー、CubieTruckにArmbianのLegacy kernel乗せていじり始めたけどなかなか調子良い。
I/O周りも割とサポートされてるし。基本ツール(スクリプト)関連もinstallされる。
Audio関連では「Enabled audio devices: analog, 8 channel HDMI, spdif and I2S (if wired and enabled in HW configuration)」な感じ。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

メモ:Cubietruck NW [Cubietruck]

いじる時間ができたので、CubietruckのNW関連とか。

基本事項
CubieTruck
 SSD: CT500MX200SSD1

$ uname -a
Linux cubietruck 3.4.79 #6 SMP PREEMPT Fri Feb 14 23:58:54 CST 2014 armv7l armv7l armv7l GNU/Linux
$
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
$

で、NW関連をいろいろざっくりと。
CubieTruck(C) -- iperf -> MacMini(S) 410 Mbits/sec
CubieTruck(S) <- iperf -- MacMini(C) 157 Mbits/sec

CubieTruck(C) --- scp --> MacMini(S) 7.6 MB/s
CubieTruck(C) <-- scp --- MacMini(S) 7.4 MB/s
CubieTruck(C) --- ftp --> MacMini(S) 24.3 MB/s
CubieTruck(C) <-- ftp --- MacMini(S) 14.1 MB/s
CubieTruck(S) --- scp --> MacMini(C) 7.6 MB/
CubieTruck(S) <-- scp --- MacMini(C) 7.6 MB/
CubieTruck(S) --- ftp --> MacMini(C) 37.5 MB/s
CubieTruck(S) <-- ftp --- MacMini(C) 6.2 MB/s
CubieTruck(S) <-- nfsv3 --- MacMini(C) 12.9 MB/s

sambaとか。
スクリーンショット 2016-05-04 02.10.36.png
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

また変更

反映
$ diff radiko.ksh_old radiko.ksh
86c86
<     rtmpe://w-radiko.smartstream.ne.jp/${ID}/_definst_/simul-stream.stream \
---
>     rtmpe://f-radiko.smartstream.ne.jp/${ID}/_definst_/simul-stream.stream \
$

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

radiko録音 HE-AAC (Mac) [Mac]

HE-AACな感じで。多分radikoスクリプト関連の更新は最後

・iTunes 11.1.5 /iPod touch 5G iOS 7.1/AK120/VLC etc...で普通にシーク&再生かくにんOK
要MP4box X11のインストールは不要

・rtmpdump → ffmpegでaudio(aac)データを無劣化で抜いて、MP4box -sbrでaacをmp4(m4a)なコンテナに
 突っ込んで、ffmpegでaudioデータはそのままcopyでmetadataを書き込む感じで。
・サブシェル(get_auth.sh)は変更無しなので、radiko録音その4(Mac)あたりを参照
・イメージファイル埋め込みなど mp4v2
$ svn checkout https://mp4v2.googlecode.com/svn/releases/2.0.0 mp4v2
$ cd mp4v2
$ autoreconf -fiv
$ rm -fr build/
$ mkdir build/
$ cd build/
$ ../configure --enable-shared -enable-static --disable-debug
$ make
$ sudo make install

・その他
 (1) 最初からこうしておくんだった。サイズも小さいし。
 (2) HE-AACなファイルはplayerによって音質が凄く変化する。
   iTunesやiPod touch 5Gはほぼオリジナルっぽい音だけど、AK120は凄くこもった音...

MP4Box -sbr の効能
forces importing the AAC-ADTS file as AAC SBR (aka HE-AAC, aka aacPlus) with backward compatible signaling (eg non SBR aware decoders should play the file).

でスクリプト
#!/bin/ksh
#-----------------------------------------------------------------
# $1:ID (必須)
#       TBS      TBSラジオ
#       QRR      文化放送
#       LFR      ニッポン放送
#       NSB      ラジオNIKKEI
#       INT      INTERFM
#       FMT      TOKYO FM
#       BAYFM78  BayFm
#       NACK5    NACK5
#       JORF     ラジオ日本
#       YFM      FM yokohama
#       ---------------------
#       ABC      ABCラジオ
#       MBS      MBSラジオ
#       OBC      ラジオ大阪
#       CCL      FM COCOLO
#       802      FM802
#       FMO      FM大阪
#
# $2:OFILE (必須)
#       任意のファイル名(UTF-8可)
# $3:TIME (必須)
#       録音時間(分)
#
# -t "VALUE" (省略可)
#       タイトル
# -a "VALUE" (省略可)
#       アーティスト
# -A "VALUE" (省略可)
#       アルバム
# -g "VALUE" (省略可)
#       ジャンル
# -I "埋め込みイメージファイル名(Artwoyk)" (省略可)
#       FULL PATH
#-----------------------------------------------------------------
export LANG="ja_JP.UTF-8" LC_ALL="ja_JP.UTF-8"

USAGE=\
"Usage:$0 ID OFILE TIME [-t \"TITLE\"] [-a \"ARTIST\"] [-A \"ALBUM\"] [-g \"GENRE\"] [ -I IMAGE(Artwork) ]"

if [ $# -lt 3 ];then
    print "${USAGE}\n`head -n37 $0 | grep -v ksh | sed 's/^#//g' `" 1>&2
    exit 1
fi

ID="$1"
OFILE="$2"
TIME=$3
#------------------------------------------#
GetAuth_SRC="${HOME}/get_auth.sh"
#------------------------------------------#
TOUT=1800  # sec
DELAY=20   # sec
RDIR=/tmp
((TIME=TIME*60+DELAY))

date "+%Y %m %d %H %M %S" | read YYYY MM DD hh mm ss
RYEAR="${YYYY}-${MM}-${DD}T${hh}:${mm}:${ss}Z"
DATE1="${YYYY}-${MM}-${DD}_${hh}${mm}${ss}"
DATE2="${YYYY}-${MM}-${DD}"

shift 3
while getopts a:g:t:A:I: opt
do
    case ${opt} in
        t) TITLE="${OPTARG} ${DATE2}";;
        a) AUTHOR="${OPTARG}";;
        g) GENRE="${OPTARG}";;
        A) ALBUM="${OPTARG}";;
        I) IMAGE="${OPTARG}";;
        *) echo ${USAGE} 1>&2
           exit 1;;
    esac
done

RFILE1="${RDIR}/${ID}_${OFILE}_${DATE1}.aac"
RFILE2="${RDIR}/${ID}_${OFILE}_${DATE1}_nh.m4a"
RFILE3="${RDIR}/${ID}_${OFILE}_${DATE1}.m4a"

### authentication
${GetAuth_SRC} | read playerurl authtoken

/opt/local/bin/rtmpdump -B ${TIME} -m ${TOUT} -qvr \
    rtmpe://w-radiko.smartstream.ne.jp/${ID}/_definst_/simul-stream.stream \
    -W ${playerurl} -C S:"" -C S:"" -C S:"" -C S:${authtoken} \
    -o - 2>/dev/null | \
/opt/local/bin/ffmpeg -y -i - -vn  -acodec copy "${RFILE1}"
/Applications/Osmo4.app/Contents/MacOS/MP4Box -add "${RFILE1}#audio" "${RFILE2}" -sbr
/opt/local/bin/ffmpeg -y -i "${RFILE2}" -vn -acodec copy \
    -metadata author="${AUTHOR}" \
    -metadata artist="${AUTHOR}" \
    -metadata title="${TITLE}" \
    -metadata album="${ALBUM}" \
    -metadata genre="${GENRE}" \
    -metadata date="${RYEAR}" \
    "${RFILE3}"

if [ "${IMAGE}" ] && [ -f "${IMAGE}" ]; then
    /usr/local/bin/mp4art --add "${IMAGE}" "${RFILE3}"
fi

if (( $(sw_vers -productVersion | awk -F"." '{ print $1$2}') >= 107 )); then
    F_DIR="Automatically Add to iTunes.localized"
else
    F_DIR="iTunes に自動的に追加"
fi
### iTunes_DIR=`find "${HOME}" -name "iTunes に自動的に追加" -type d | grep -vi trash`
iTunes_DIR=`find ${HOME} -name "${F_DIR}" -type d | grep -vi trash`

if [ "${iTunes_DIR}" ]; then
    cp "${RFILE3}" "${iTunes_DIR}"
    if [ "$?" = "0" ]; then
        rm -f "${RFILE1}" "${RFILE2}" "${RFILE3}"
    fi
fi


iTunesに取り込み時の「概要」表示など。(プロファイルと、謎のビットレート:46 kbps に注目w)
he.png
イメージ(Artwork)埋め込み実行例
~/radiko.ksh TBS tokyopod 60 -t "東京ポッド許可局" -a "マキタスポーツ,プチ鹿島,サンキュータツオ" -A "TBSラジオ" -g "ラジオ" -I ~/IMAGES/tpod.jpg >/dev/null 2>&1
スクリーンショット 2014-04-06 02.24.38.png


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

iPod touch 5GをUSB DACにグサっと刺してFLACとかDSD再生とか。PHA-2 [Mac]

勢い余ってSONY PHA-2にグサッと刺して、HF Playerで確認とか。

Apple Lightning - USBカメラアダプタ
・USB[A]オス - mini USB[B]オス ケーブル
 → こんなケーブル
・USB[A]オス - micro USB[B]オス 7cmケーブル(秋葉で売ってたやつ)
・セルフパワーのUSB HUBは不要!

<ポイント>
・左 mini USB-B(Walkman接続用)
  ⇒ DSD(DoP出力)再生は不可かも...
   ※Mac + SONY Hi-Res Audio Player or Audirvana PlusでもNGだったよ(PHA-2交換後も)
   ※Windowsは繋いでなので不明...

   ---- 2013/11/12 -------------------------------------------------------------------
   やっぱり mini USB-B(Walkman接続用)はDSD未対応ってことで。
   SONYのPHA-2単体のpageには書いてないけど、
   「製品情報>総合サポート>ハイレゾリューション・オーディオ>対応フォーマット」に書いてあった....
   ------------------------------------------------------------------------------------

・中央 USB-A
  ⇒ 48kまで。
   ※ケーブルが1本で済むので楽
・右 micro USB-B(PC 接続用)
  ⇒ 2.8MHz/1bit DSD(DoP)再生OK (iPod tpuch 5G + Apple Lightning - USBカメラアダプタ)
   ※電源ON/OFF順序性あり。(iPod tpuch 5GをPHA-2より先に上げると、
    「接続したデバイスは消費電力が大き過ぎます。」でNG、後からPHA-2を上げても
    認識されない場合あり)

で、まず【mini USB-B(Walkman接続用)】にぶすっと。
IMG_0014.png

★FLAC 192kHz/24bit 良い感じ。
2013-11-03 00.59.55.jpgjavascript:;

★DSF 2.8MHz/1bit (DSD設定 DoP) んー、HF Playerには「2.82 MHz DSD」と表示されるものの...
 ヘッドホンからは、さーーーーっと言う静かなノイズの後ろで僅かに曲が聞こえる。
 昔のラジオかよw(mini USB-B)

で、次に【micro USB-B(PC接続用)】にぶすっと。
 ---------- 2103/11/9 追記 ---------------------------------------------------------
 micro USB-Bに接続時はDSD DoP出力OK
 ※結局、初期不良で交換してもらったらOKとか。
 ddd.png
 -----------------------------------------------------------------------------------

★DSF 2.8MHz/1bit (DSD設定 PCM) 192kHzでOK
IMG_0015.png
 ---------- 2014/1/6 追記 ---------------------------------------------------------
 micro USB-B 接続時のDevice認識画面を追加
IM.png
2014-01-06 12.32.01.png
 -----------------------------------------------------------------------------------

<その他>
・CCKじゃなかったよ... Lightning - USBカメラアダプタだったよ。混同して書いてた。
・昨日は障害対応連絡で叩き起こされたので、今日は平和でありますように..

------ 悩ましいケーブル繋ぎ (親ガメ子ガメ)------
んー、不細工だけどこれ以上は無理
001.png

002.png

003.png
nice!(0)  コメント(21)  トラックバック(0) 
共通テーマ:日記・雑感

iPod touch 5GをUSB DACにグサっと刺してFLACとかDSD再生とか。 [Mac]

雨降りジメジメな土曜の暇つぶしなど。

使ったもの
・Apple iPod touch 5G (iOS 7.0.3)
・ONKYO iOS 用の音楽プレーヤーアプリ ONKYO HF Player
 オプションの「HD Player Pack」(1000円)を購入
Apple Lightning - USBカメラアダプタ
・USB-DAC TEAC UD-501
・USBはぶ(ACアダプタ付きのやつ)
 ※直にDAC接続したいところだけど、ほとんどの場合バスパワーが足りないかと。
  TEAC UD-501はMENUで「USB POWER」を「ON」に設定しても
  2013-10-26 14.03.08.png
  な感じなので、ELECOMのやつを噛ませて...
  で、デバイス認識OK
  2013-10-26 12.38.09.png

で、再生
★FLAC 192kHz/24bitな曲 普通にノイズも音飛びのなく良い感じ。
  2013-10-26 12.38.46.png
  2013-10-26 11.49.34.jpg
  
★DSF 2.8MHz/1bitな曲 (DSDの出力形式はDoPに設定) おー、ちゃんと再生されてるw
  2013-10-26 12.39.10.png
  2013-10-26 12.58.25.jpg
  
・その他
 1.ONKYO HF Playerの操作性は普通。リピートの種類が少ないのと再生時間が3桁分数の曲になると、
  表示が切れちゃうところが少し残念
 2.USB HUBとかUSB DACとの相性が有るようで、TEACのAI-501DAでは、
  最初の5秒程度は普通に再生されるものの、それ以後ノイズ(同期外れ?)が
  酷く全然NGっすね。(Apple 純正のミュージックアプリも同様)
 3.ONKYO HF PlayerのiPad版は無いのね。横向き対応してほしー。
 4.バッテリー減りは早い気がする。
 5.遠くに行きたい。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

MacBook Air (Mid 2012) GbE USB3.0 いろいろ [Mac]

GbE USB3.0のしっぽが多少は増えたようなので、またMacBook Air (Mid 2012) に繋いでiperfで確認など。
どれも同じchip(AX88179)なんで似たり寄ったり。
実売価格だとUSB3.0の口が3つ付いて3,980円でゲットしたLogitec LAN-GTJU3H3、小ささならGREEN HOUSE GH-ULA30BWな感じ。

サイズ比較
左からKanex USB3GBIT3X、Logitec LAN-GTJU3H3、GREEN HOUSE GH-ULA30BW、玄人志向 GbE-USB3.0、Apple Thunderbolt - ギガビットEthernetアダプタ、Apple USB Ethernet アダプタ
2013-05-05 21.23.46.jpg

< Kanex USB3GBIT3X>
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.127 port 50857 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.6 GBytes 886 Mbits/sec
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.127 port 50877 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.6 GBytes 886 Mbits/sec
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.127 port 50896 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.6 GBytes 889 Mbits/sec


<Logitec LAN-GTJU3H3>
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.96 port 50163 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.6 GBytes 886 Mbits/sec
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.96 port 50182 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.5 GBytes 884 Mbits/sec
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.96 port 50195 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.6 GBytes 887 Mbits/sec


<GREEN HOUSE GH-ULA30BW>
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.100 port 49853 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.4 GBytes 876 Mbits/sec
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.100 port 49867 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.4 GBytes 877 Mbits/sec
------------------------------------------------------------
Client connecting to macpro, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.1.100 port 49883 connected with 192.168.1.106 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-180.0 sec 18.6 GBytes 886 Mbits/sec

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

懐かしのxgolgo [Mac X11]

xgolgo
つい懐かしくなってで入れてみたw
※要X11、imake
$ curl -O ftp.kuban.ru/.1/FreeBSD-Dist_2.X-6.X/ftp.freebsd.org/pub/FreeBSD/ports/distfiles/xeyes-g.tar.gz $ tar xvzf xeyes-g.tar.gz $ cd xeyes/ $ xmkmf $ make $ sudo make install
$ xeyes & sc_2013-03-20 23.15.54.png $ xgolgo & sc_2013-03-20 23.16.03.png

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感
前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。