Schism Tracker on PocketC.H.I.P. 002
Schism Tracker を PocketC.H.I.P. にコンパイルして、インストールした。
したけれども、2つ問題があって、どちらもまだ解決していない。
どちらも重要で、
音が出ない- PocketC.H.I.P. でキーボードのSchism Trackerショートカットが効かない
という2つだが、1をまずクリアすべきです。
1は、どういうことかというと、Schism Trackerが PocketC.H.I.P.のサウンドデバイスを使えないということ。これは、設定次第のはずだ。
Schism Trackerをインストールすると、
home/userディレクトリ
に、
.schism
というフォルダができる。この中に
config
という設定ファイルがある。これを見るには、隠しファイルを表示する必要がある。
ターミナルでは、
chip@chip:~/$ls -a
と ls に -a をつけると、隠しファイルも表示される。
cd .schism
で
chip@chip:~/.schism$nano config
とするとconfigファイルの内容が読める。
中身は
[Audio] sample_rate=44100 bits=16 channels=2 buffer_size=1024 [Mixer Settings] channel_limit=128 interpolation_mode=1 no_ramping=0 surround_effect=1 [EQ Low Band] freq=0 gain=0 [EQ Med Low Band] freq=16 gain=0 [EQ Med High Band] freq=96 gain=0 [EQ High Band] freq=127 gain=0 [Video] driver=sdl fullscreen=0 mouse_cursor=1 gl_bilinear=0 lazy_redraw=0 [General] vis_style=2 time_display=1 classic_mode=0 make_backups=1 numbered_backups=0 accidentals_as_flats=0 meta_is_ctrl=0 altgr_is_alt=1 midi_like_tracker=0 [MIDI] flags=93 pitch_depth=12 amplification=100 c5note=60 start=FF stop=FC tick= note_on=9c n v note_off=9c n 0 set_volume= set_panning= set_bank= set_program=Cc p SF0=F0F000z SF1= SF2= SF3= SF4= SF5= SF6= SF7= SF8= SF9= SFA= SFB= SFC= SFD= SFE= SFF= Z80=F0F00100 Z81=F0F00108 Z82=F0F00110 Z83=F0F00118 Z84=F0F00120 Z85=F0F00128 Z86=F0F00130 Z87=F0F00138 Z88=F0F00140 Z89=F0F00148 Z8A=F0F00150 Z8B=F0F00158 Z8C=F0F00160 Z8D=F0F00168 Z8E=F0F00170 Z8F=F0F00178 Z90= Z91= Z92= Z93= Z94= Z95= Z96= Z97= Z98= Z99= Z9A= Z9B= Z9C= Z9D= Z9E= Z9F= ZA0= ZA1= ZA2= ZA3= ZA4= ZA5= ZA6= ZA7= ZA8= ZA9= ZAA= ZAB= ZAC= ZAD= ZAE= ZAF= ZB0= ZB1= ZB2= ZB3= ZB4= ZB5= ZB6= ZB7= ZB8= ZB9= ZBA= ZBB= ZBC= ZBD= ZBE= ZBF= ZC0= ZC1= ZC2= ZC3= ZC4= ZC5= ZC6= ZC7= ZC8= ZC9= ZCA= ZCB= ZCC= ZCD= ZCE= ZCF= ZD0= ZD1= ZD2= ZD3= ZD4= ZD5= ZD6= ZD7= ZD8= ZD9= ZDA= ZDB= ZDC= ZDD= ZDE= ZDF= ZE0= ZE1= ZE2= ZE3= ZE4= ZE5= ZE6= ZE7= ZE8= ZE9= ZEA= ZEB= ZEC= ZED= ZEE= ZEF= ZF0= ZF1= ZF2= ZF3= ZF4= ZF5= ZF6= ZF7= ZF8= ZF9= ZFA= ZFB= ZFC= ZFD= ZFE= ZFF=
schismtracker configuration
Audio outputの箇所を見ると (2.の問題については、Hook functionsにヒントがありそう。US キーボード以外のキーマップを起動時に読み込めばいいかもしれない。)
[Audio] buffer_size=256 driver=dsp:/dev/dsp1
というようにdriver=で指定したものが、起動時に優先的に設定されるらしい。 PocketC.H.I.P. で使われているのがalsaなのか、pulseaudioなのか調べて正しく設定できれば解決しそう。
ヒントは、コンパイルのときにschismtrackerはSDLを必要としていて、おそらくはSDLからオーディオデバイスを制御するということだ。
aplay --list-devices
**** List of PLAYBACK Hardware Devices **** card 0: sun4icodec [sun4i-codec], device 0: CDC PCM Codec-0 [] Subdevices: 0/1 Subdevice #0: subdevice #0
chip@chip:~$ aplay -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server equal default dsp0 dmixer sysdefault:CARD=sun4icodec sun4i-codec, Default Audio Device dmix:CARD=sun4icodec,DEV=0 sun4i-codec, Direct sample mixing device dsnoop:CARD=sun4icodec,DEV=0 sun4i-codec, Direct sample snooping device hw:CARD=sun4icodec,DEV=0 sun4i-codec, Direct hardware device without any conversions plughw:CARD=sun4icodec,DEV=0 sun4i-codec, Hardware device with all software conversions
user comunity に質問してみる。
質問したが、結局自力でわかった。 schismtrackerのconfigファイルで、
chip@chip:~/.schism$nano config
[Audio] sample_rate=44100 bits=16 channels=2 buffer_size=1024 driver=alsa:default
と指定すると、音がでるようになった。 が、どういうことかわからない。つまり他に選択の余地はあるのかどうか、どうやって解るのだろうか?
サウンドドライバの一覧表示
chip@chip:~$ /sbin/lsmod | grep "snd" snd_seq_dummy 1141 0 snd_seq 49443 1 snd_seq_dummy snd_seq_device 3045 1 snd_seq snd_soc_core 116548 1 sun4i_codec snd_pcm_dmaengine 2943 1 snd_soc_core snd_pcm 68852 3 snd_soc_core,snd_pcm_dmaengine snd_timer 17776 3 snd_pcm,snd_seq snd 47207 7 snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device soundcore 4991 1 snd ac97_bus 1300 1 snd_soc_core
サウンドに関係ありそうなもの
View post on imgur.com
imgur.com
これは、PCMが再生できるのはC(カード):0のD(デバイス):0だよP(CM) ということらしい。
結果的に、どうしてなのか?は置いておいて
この3つのドライバーの指定の仕方は、pocketCHIPのALSAにアクセスできた。 これは、
chip@chip:~$ aplay -L
で表示されるものを、引数に順番にほりこんでいった結果。 経緯は、ここに・・・
How to set up sound device on PocketC.H.I.P. ? · Issue #192 · schismtracker/schismtracker · GitHub
hw:0,0 として指定してもよさそうだが、エイリアスでしかいけないということなのかもしれない。 これは、
hw:0,0 って何?とか、.asoundrcとかをキーワードに検索してみて、数少ない関連情報を検討してみてほしい。
schismtrackerのソースコードでは、 ここに定義が書いてあった。ドキュメント読んでも、まずわからないのでこちらを見るほうがいい。
pocketCHIPでは、コンフィグに上記のように設定されていない場合、起動と同時にサウンドデバイスが”dummy”が選ばれる。それは、Schismがdefaultと認識したaudio deviceにリダイレクトして、そうなるようだった。その条件式が書かれている。
リダイレクトして、defaultのaudio deviceがbusyになるというところまでの流れ 1365行目から
たまたま別の機会に、別のLinuxでGnu Denemoというプログラムで、音が出ない問題があり、そこでAudio Deviceの設定画面があり、そこで見た表示。 こういうことらしい。GUIで見ると、わかりやすい。