記事一覧

らじる★らじる録音エラー REC2

先日NHK録音をffmpegに変更したがどうも開始時刻より41秒前から記録が始まっている。

13:45開始の英語NEWSは13:44:19から録音されており、しかしながらDurationは正確なので番組最後が切れてしまっている。

cronは正確な時刻で起動しているようなので
らじる★らじる側からの送り出し時刻がずれているのかも知れない

他の録音を調べても41秒のずれは発生しているので、とりあえず先頭41秒を破棄するようにshellを変更した

↓こんな感じ

#DELETE ffmpeg -loglevel quiet -y -t ${DURATION} -i ${aspx} -acodec libmp3lame -ab 48k -ar 44100 "${savedir}${filename}.mp3"

ffmpeg -loglevel quiet -y -t ${DURATION} -i ${aspx} -acodec libmp3lame -ab 48k -ar 44100 "/tmp/${filename}.mp3"

ffmpeg -i "/tmp/${filename}.mp3" -ss 41 -t ${DURATION} -acodec libmp3lame -ab 48k -ar 44100 "${savedir}${filename}.mp3"

rm "/tmp/${filename}.mp3"

参考
https://qiita.com/yang_orz/items/4f19e88a456e56aadc55

ひょっとしたら
録音時に「 -ss 41 」を付ければ良いのかも知れないけど、それはまた後日で

らじる★らじる録音エラー

英会話講座や英語NEWSをLinuxサーバーで録音(正確にはストリーミングキャプチャ?)していたのだが、9月4日を最後に録音が出来ていない。

原因はらじる★らじるの配信がrtmpからHLS(HTTP Live Streaming) に完全移行し、rtmpを廃止した為にcronに登録したスクリプトがこけていた。

参考(http://tech.matchy.net/archives/241

サンプル(https://gist.github.com/matchy2/9515cecbea40918add594203dc61406c)を参考にスクリプトを修正

結果こうなった(NHK第2専用です)
-------------------------------------
#!/bin/sh

#ORG date=`date '+%Y-%m-%d-%H:%M'`
date=`date '+%y%m%d_%H%M'`
station=NHK2

if [ $# -eq 2 ]; then
DURATION=`expr $1 \* 60`
else
echo "usage : $0 duration(minuites) LABEL"
exit 1
fi

label=$2
ub="_"
filename=${date}${ub}${label}${ub}${station}
#echo ${filename}

mydir="/home/miya/radio/"
savedir="${mydir}${label}/"

if [ -d ${savedir} ]; then
echo ${savedir}
else
mkdir ${savedir}
fi


# 2017/09/27 https://gist.github.com/matchy2/9515cecbea40918add594203dc61406c

aspx="https://nhkradioakr2-i.akamaihd.net/hls/live/511929/1-r2/1-r2-01.m3u8"

ffmpeg -loglevel quiet -y -t ${DURATION} -i ${aspx} -acodec libmp3lame -ab 48k "${savedir}${filename}.mp3"
-------------------------------------

久々に

1年半以上放置でした。
その間にLEDパー2種類増えて合計12台になりました
操作卓も大中小3台になりました。
何処に向かっているのだろう。。。。(笑)

7月に寿歌やるので、ぼちぼち復活します

LED PARライトを買ってみた(分解編 その3)

LED側の写真
ファイル 12-1.jpg
どこかで見た様なレンズだ

ファイル 12-2.jpg
偶然1個外れた。
これは秋月電子のこれではないかと思いサイズを測ってみる

ファイル 12-3.jpg
残念ながら秋月は直径24mm、こちらは21mm
まぁ、探せばありそうだが3000円以上払ってレンズを替える事も
ないか。

ファイル 12-4.jpg
ちなみにLED側の直径は8mmでした。

LED PARライトを買ってみた(分解編 その2)

内部ユニットを取出したところ
ファイル 11-1.jpg
左からLED基板、ヒートシンク、FAN、レギュレーター電源、制御基板

ファイル 11-2.jpg
移動の振動とかで絶対緩みそうな組み方だ。
又はヒートシンクとの距離調整をし易くしているのか。(んなわけない)

ファイル 11-3.jpg
レギュレーター電源の出力は1系統のみ
出力は後で出てくるけど23V

ファイル 11-4.jpg
制御基板の様子
フラットケーブルは設定用の7Segとスイッチ、赤白黒の単線はDMX用
太い赤線はAC

ファイル 11-5.jpg
設定バネルの裏

LED PARライトを買ってみた(分解編 その1)

ヤフオクで108W、4in1のLED PARライトを購入

ファイル 10-1.jpg

2台で12800円
1台6400円 激安!!

しかし当然大陸製
早速通電してみるが、FAN音がやたらうるさく、
小劇場ではとても使えない orz

とりあえずFAN交換の可能性を探るべく分解してみる

ファイル 10-2.jpg
正面のカバーを外す

ファイル 10-3.jpg
ハンダ付けはこんな感じで手作り感満載

ファイル 10-4.jpg
そして何故かLEDユニットを取り付けてあるパネルのネジがひとつない!!

この謎は後に判明

清水邦夫作「楽屋」の舞台

ファイル 9-1.jpg

鏡はアルミ(0.1mm)の板を張って、ハレ防止にファンデーションを塗った。

電球は100Wの丸ボールをシーンに合わせて個別に点灯出来る様に照明の回路に入れている。

黒パネルは劇場の借り物なのでバインドで裏からグリグリ固定

格安で出来た割には概ね好評でした。

音響用操作キーパッドをつくる その4

miniBコネクタにアクセス出来る様に穴をあける
ファイル 8-1.jpg
ファイル 8-2.jpg

組立てて完成
ファイル 8-3.jpg

ボタンもちょうどよい大きさで、
操作性が増しました。

音響用操作キーパッドをつくる その3

内部の基板は片面基板なので、ざっくり秋月基板が入るように切り込みを入れる
ファイル 7-1.jpg

で、秋月基板を一旦ユニバーサル基板に載せた上で
ネジ止めする。
ファイル 7-2.jpg
ファイル 7-3.jpg

SWへの配線はこんな感じ
ファイル 7-4.jpg

次はケース加工

音響用操作キーパッドをつくる その2

Windowsからキーボードとして認識させれば良い(もしくはMIDIの機能を持たせる必要がある)ので、USB上にHIDを実装してキーが押されたら対応するキーコードを送信するプログラムが必要になる。

以下、構成

CPU: Microchip 18F2550(秋月の基板を使用)
USBStack:Microchip Libraries for Applicationsから流用
キー入力処理:自作

まぁ、御約束の構成となる。

インストールすしたディレクトリにある以下の場所が、HID関連のものとなる。

C:\Microchip Solutions v20XX-XX-XX\USB\Device - HID - Keyboard\Firmware

プロジェクトファイルはこれ
USB Device - HID - Keyboard- C18 - PICDEM FSUSB.mcp

最低限必要なファイルだけにするとこうなる。
ファイル 6-1.jpg

修正が必要なファイルは
rm18f4550 - HID Bootload.lkr

----------------------
LIBPATH .

FILES c018i.o
FILES clib.lib
//FILES p18F4550.lib
FILES p18F2550.lib
---------------------
2550用のlibを使用する様に変更する。

とりあえずブレッドボードにCPUボードを組んで書込んでみる
ファイル 6-2.jpg

書込み完了後にUSBケーブルでPCとつなぐと、0~z迄が
延々と繰り返されて出力される。

なんで、繰り返し出続けるかというと、秋月基板はRBポートがプルアップされていないので、sw3(RB5)が押された事になっている。
なので、HardwareProfile - PICDEM FSUSB.h

#define mInitSwitch2() TRISBbits.TRISB4=1;

#define mInitAllSwitches()INTCON2bits.RBPU=0;TRISBbits.TRISB4=1;
に変更してポートBの内部プルアップを有効にする。
あとはKeyboard.cを適当に修正して、各キーが押された時に、対応するキーコードが送信されるようにする。

以下、適当に抜粋

BOOL SwitchIsPressed(unsigned char *keycode)
{
if(sw_PLAY != old_play_key){
old_play_key = sw_PLAY; // Save new value
if(sw_PLAY == 0){ // If pressed
*keycode = 0x28;// HID KeyCode
return TRUE; // Was pressed
}
}//end if
if(old_up_key != sw_UP){
old_up_key = sw_UP;
if(sw_UP == 0){ // If pressed
*keycode = 0x52;
return TRUE; // Was pressed
}
}
if(old_dn_key != sw_DN){
old_dn_key = sw_DN;
if(sw_DN == 0){ // If pressed
*keycode = 0x51;
return TRUE; // Was pressed
}
}
if(old_l_key != sw_L){
old_l_key = sw_L;
if(sw_L == 0){ // If pressed
*keycode = 0x50;
return TRUE; // Was pressed
}
}
if(old_r_key != sw_R){
old_r_key = sw_R;
if(sw_R == 0){ // If pressed
*keycode = 0x4f;
return TRUE; // Was pressed
}
}
if(old_sp_key != sw_SP){
old_sp_key = sw_SP;
if(sw_SP == 0){ // If pressed
*keycode = 0x2c;
return TRUE; // Was pressed
}
}


return FALSE; // Was not pressed
}//end Switch3IsPressed
void SendKeyMakeEvent(unsigned char key)
{
//Load the HID buffer
hid_report_in[0] = 0;
hid_report_in[1] = 0;
hid_report_in[2] = key;
hid_report_in[3] = 0;
hid_report_in[4] = 0;
hid_report_in[5] = 0;
hid_report_in[6] = 0;
hid_report_in[7] = 0;
//Send the 8 byte packet over USB to the host.
lastINTransmission = HIDTxPacket(HID_EP, (BYTE*)hid_report_in, 0x08);
}


void Keyboard(void)
{
static unsigned char key = 4;
unsigned char keycode;
//Check if the IN endpoint is not busy, and if it isn't check if we want to send
//keystroke data to the host.
if(!HIDTxHandleBusy(lastINTransmission))
{
if(SwitchIsPressed(&keycode))
{
SendKeyMakeEvent(keycode); //CR
}
else
{
SendKeyMakeEvent(0);
}
}


次は加工編

ページ移動