【PCMファイル編集】Cygwinとコマンドプロンプトにて

f:id:TurnipCucumber:20171221165620p:plain

 

こんにちは、かぶきょうりです。

 

先日、PCMファイルを編集していて初めて気づいた事があったので

記事にしておこうと思います。

 

PCMファイルとは

音をデータ化した最も基本的な音声フォーマットです。

特徴としては、

  1. 量子化ビット数が16bitで構成されている点です。
  2. データ部のみで構成されており、1サンプル毎にデータが記載されている。

サンプリング周波数は、場合によって変更されている事があります。

 

※サンプリング周波数・・・1秒間の数値回数

 量子化ビット数・・・1回のサンプリングあたりのビット数

 

作業目的

2つのマイクを使用して収録したPCMファイルを各マイクごとの音声に分解するという事を実施しました。

 

ツール等を使用すれば簡単にできると思うのですが、C言語を使用して挑戦してみました。

 

作業環境

 

今回躓いたところ

Cygwinでのプログラミング作成は、何事もなく進み完成しました。

最後に出来心で

「Cならプロンプトでも問題なく動くだろう」

とか思ってしまい、

 

gccMinGWからインストールして実行したところ、分割した音声ファイルがおかしなことに。。。

 

原因究明の為にいろいろ調査したところ、以下のことが判明した。

  • 分割後のファイルサイズが大きくなっていたと

結論

調査の結果、書き込み処理で音声ファイルに異常が発生している事がわかった。

特にファイルを開く際に問題があり、fopenコマンドで以下のように記載していた為音声ファイルが異常な状態となっていた。

 

  ファイルポインタ  =  fopen( 対象ファイル , "a" );

 

そう、PCMファイルはバイナリファイルなのでfopenコマンドでは"b"オプションを追加して以下のように記載しなければならない。

 

  ファイルポインタ  =  fopen( 対象ファイル , "ab" );

 

なぜ

無事に問題は解決したものの、一つ釈然としない問題が。。。

なぜ、Cygwinでは問題なく動作していたのにコマンドプロンプトではだめだったのだろうか。。。。?

 

今回の問題、プロンプトで実施してみなければ直面しなかったことなので、見識を深めるためにももう少し調査してみた。

 

調査結果

 

結果、バイナリファイルを扱う場合にfopenの"b"オプションが不足しているとWindows環境では特有の挙動をすることが分かった。

 

  • Windows環境以外では、バイナリ操作を行う際に改行コードにLF(ラインフィード)が挿入されるが
  • Windows環境では、CR+LF(キャリッジリターン+ラインフィード)が挿入されるらしい、なのでWindows環境では"b"オプションを指定して改行コードをLFにしてあげる必要がある。

 

上記の理由で、Cygwinでは正常に実行できていたが、コマンドプロンプトでは異常な音声ファイルとなってしまったようです。

 

まとめ

  • Windows環境でバイナリファイルを扱う際は改行コードに注意。
  • C言語でfopenを実行する際は環境ごとに挙動がかわるので注意。

 

いやぁ、解決できたすっきりしました。

 

今回はPCMファイル編集プログラム(C言語)について記載しました。

ご覧戴き、ありがとうございました。

 

マイナンバーカードが失効したかと思った件について

f:id:TurnipCucumber:20171129132335p:plain

こんにちは、かぶきゅうりです。

 

マイナンバーカードの事でどったんばったん大騒ぎだった(大嘘)ので

事の顛末をまとめておきます。

 

事の始まり

先日、ふるさと納税のワンストップ申請資料を書いていたのですが

ある事に気づきました。

 

そう、

マイナンバーカード(通知カード)の住所が引っ越し前の住所になっている。。。!?

 

「え、コレ、このままで大丈夫なんだっけ???」

 

ワンストップ申請資料にはマイナンバーカード(通知カード)の写しが必要なのですが

 ※通知カードの場合は両面の写しが必要

 

「そもそも住所が変わっているんだけど、このまま写し添付しても?」

と思い調べてみると、

 

何やら90日以内に住所変更の手続きをしないと失効になるという記事を見つけ戦慄。。。

 

「マジですか。。。orz

 再申請どのくらいかかるのだろう、日付的にもお金的にも。。。

 果たして、ワンストップ申請間に合うかな?。。。」

 

mayonez.jp

という訳で、住所変更も兼ねて役所で確認してきました。

イソイソ。

 

失効対象について

 役所で確認したところ、

「90日以内に住所変更していないと失効される」

この対象は、申請して作成したマイナンバーカードのみとのことです。

 

つまり、マイナンバーカード(通知カード)は対象とならないそうです。

※というか、個人番号は基本変更されないみたいです。

 (ただし、紛失の場合は変更するしかない)

 

良かった!!!

ふるさと納税がただの寄付になるような事態を避けられて本当に良かった。

 

ついでに、通知カードの裏面に引っ越し先の住所を記載してもらいました。

(15分くらいで終わりました。)

 

これで、問題なくふるさと納税用の資料が作成できそうです。 

 

そもそも

マイナンバーカードの事に無知過ぎて、記事に書かれている

マイナンバーカードと通知カードの区別があまりできていなかったようです。

 

マイナンバーカードを作成した方は、

引っ越しの際は住所変更をお忘れなきよう、お気を付けください。

 

マイナンバーの導入から2年が過ぎようとしていますが、

自分みたいな方がいる気がしたので記事にしてみました。

(いますよね。。。?え、いない?マジですか。。。)

 

まとめ

  • マイナンバーカードは、引っ越し後90日以内に住所変更をしていないと失効される
  • 個人番号は基本変更されない(紛失の場合は、変更される)

 

今回は、マイナンバーカードについて記事にしました。

ご覧戴き、ありがとうございました。

 

LPIC Level2 合格を目指して~DNS編~

f:id:TurnipCucumber:20171119231631p:plain

こんにちは、かぶきゅうりです。

LPIC Level2 202の勉強を進める中で、教科書で分からなかった事があったのでメモとして記載します。

 

digコマンドとは

 

DNSサーバを使ってホストやドメインに関する詳細な情報を取得できるコマンドです。

コマンドの書式が以下のようになっており、オプションの他にクエリタイプを指定する事が出来ます。

 

書式

 

【書式】

dig  [@問い合わせ先DNSサーバ]  ホスト名/ドメイン名/IPアドレス  [クエリタイプ]

 

クエリタイプ

 

この中でクエリタイプが9種類あり、覚えにくいものもあったので略称をまとめてみました。

少しは覚えやすくなると思うので、ご活用ください。

 

クエリタイプ 説明 略称
a ホスト名に対応するIPアドレス -
ptr IPアドレスに対応するホスト名 Pointer
ns DNSサーバ Name-Server
mx メールサーバ Mail-Exchange-Information
soa SOAレコード情報 Start-Of-Authority
hinfo ホスト情報 Host-Information
axfr ゾーン転送 Authoritative-Transfer
txt 任意の文字列 -
any すべての情報 -

 

 今回は、digコマンドのクエリタイプの略称をまとめてみました。

ご覧戴き、ありがとうございました。

 

LPIC Level2 合格を目指して

f:id:TurnipCucumber:20171113005527p:plain

 

こんにちは、初めましてかぶきゅうりです。 

今回はLPIC Level2の合格を目指して記事を書いていこうと思います

取得動機

まず、なぜ合格取得を目指す事にしたのかについて記載します。

理由は3つあります。

  1. 所属している会社から資格手当が支給される
  2. 情報処理試験が終了して手持ち無沙汰感があるので何かしたかった
  3. 実は半年程前に201を取得していてそのまま放置気味になっていた為

 

上記の理由で今回取得を目指そうと思いました。

※ブログを書いたのは、モチベーションの維持と取得を目指している・目指そうとしている方の手助けやきっかけを作れたら良いなと思い記載する事にしました。 

 

資格説明 

LPIC Level2について簡単に説明したいと思います。

LPIC Level2は、Linuxの応用的なシステム構築、ネットワーク構築が行えるエンジニアであることを証明する為の資格になります。

 

試験範囲は、二つに分けられ201試験と202試験があります。

それぞれ試験内容が異なります。

【201試験】

【202試験】

  • ドメインネームサーバ
  • HTTPサービス
  • ファイル共有
  • ネットワーククライアントの管理
  • 電子メールサービス
  • システムのセキュリティ

www.lpi.or.jp

 

それぞれに合格する必要がありますが、順番はどちらが先でも問題ありません。

順当に201試験→202試験で受験する事をおすすめします。

先にも記載しましたが私は201試験にすでに合格している為、残りの202試験合格を目指します。

教材

次に使用している教材について記載します。

 以下の2つを使用しています。

  1. Linux教科書 LPIC レベル2 Version 4.5
  2. Linux教科書 LPIC レベル2 スピードマスター問題集 Version 4.5対応

割と定番の書籍なのではないでしょうか。

「1.」で基本的な知識を学び「2.」で問題と解くといった流れです。

 

今回は、簡単ですがこんなところで終わろうと思います。

合格目指して頑張って行こうと思います。

ご覧戴き、ありがとうございました。