メディアの支配者2009/07/06 11:32

● 読書記録
メディアの支配者  中川 一徳著
★★★★☆
『メディアの帝王といわれたフジサンケイグループの議長・鹿内信隆。フジテレビを日本一のキイ局に育て上げ、息子の春雄を後継者にした後に引退を表明。鹿内家の支配は完璧に見えた。しかし、春雄の急死、それに伴う娘婿・宏明の議長就任―グループ内部は静かに揺れ始める。そしてクーデターが起きたのだ』

力作です。メディア企業の成り立ちから個人によるグループ支配、クーデターとその後の混乱まで、膨大な量の取材・調査に基づいて書かれています。文章にも気品が漂い、著者の知的水準の高さがうかがえます。
元々フジテレビに対しては、バブル期の浮かれた空気の元凶のようなイメージがあって良い印象を持っていなかったのですが、今回さらにその感を強くしました。メディア企業は「公器」といわれますが、上層部の強欲社員と下層の浮かれ社員の集合体というのがフジテレビの実態のようです。
内容的には、一部調査結果の羅列的な、不要と思われるところがあったのが残念です。

MCP49222009/07/07 21:48

dsPICからのアナログ出力用に秋月で購入したDAコンバータMCP4922を使ってみました。AD端子から入力した信号をそのまま出力しています。
//
//
#include 
#include "adc10.h"
#include "timer.h"

// dsPic
// AN0   ---   audio signal in
// RE0   ---   -CS(mcp4922)
// RE1   ---   SCK(mcp4922)
// RE2   ---   SDI(mcp4922)
// RE3   ---   LDAC(mcp4922)
//
// Configuration bits--------------------------------------------------------
_FOSC(CSW_FSCM_OFF & FRC_PLL8);   //FRC with 8xPLL oscillator, Failsafe clock off
_FWDT(WDT_OFF);                  //Watchdog timer disabled
_FBORPOR(PBOR_OFF & MCLR_EN);    //Brown-out reset disabled, MCLR reset enabled
_FGS(CODE_PROT_OFF);             //Code protect disabled

// Setup Data for 10bits A/D Converter
// start by timer 3
unsigned int ValueADCON1 = ADC_MODULE_ON & 
                                              ADC_IDLE_STOP &                       
                                              ADC_FORMAT_SIGN_FRACT &
			                      ADC_CLK_TMR & 
                                              ADC_AUTO_SAMPLING_ON & 
                                              ADC_SAMPLE_INDIVIDUAL & 
			                      ADC_SAMP_OFF;
unsigned int ValueADCON2 = ADC_VREF_AVDD_AVSS & 
                                            ADC_SCAN_OFF &
                                            ADC_CONVERT_CH0 &
                                            ADC_SAMPLES_PER_INT_1 & 
                                            ADC_ALT_BUF_OFF & 
                                            ADC_ALT_INPUT_OFF;
unsigned int ValueADCON3 = ADC_SAMPLE_TIME_1 & 
                                            ADC_CONV_CLK_SYSTEM  &
                                            ADC_CONV_CLK_2Tcy;
unsigned int ValueADPCFG = ENABLE_AN0_ANA & 
                                            ENABLE_AN1_ANA & 
                                            ENABLE_AN2_ANA &
                                            ENABLE_AN3_ANA;
unsigned int ValueADCSSL = 0;
unsigned int Channel0 = ADC_CH0_POS_SAMPLEA_AN0 &                           
                                           DC_CH0_NEG_SAMPLEA_NVREF;

// variables
fractional SigIn;

// ADC割り込み処理
void _ISRFAST _ADCInterrupt(void)
{
	int d_in, d_out, i;
	
	IFS0bits.ADIF = 0;			

	SigIn = ReadADC10(0);	
  	
	d_in = ((0x8000 + SigIn)>>6) -512;
	// do something
  	d_out = 0x7000 | ((d_in + 512)<<2);
  	
  	LATEbits.LATE0 = 0;  //CS=0
  	for(i=0; i<16; i++){
    	     if(((d_out << i) & 0x8000) != 0){
      		LATEbits.LATE2 = 1;  //SDI=1
    	     }else{
      		LATEbits.LATE2 = 0;  //SDI=0
    	     }
    	     LATEbits.LATE1 = 1;  //SCK=1
    	     LATEbits.LATE1 = 0;  //SCK=0
  	}
  	LATEbits.LATE0 = 1;  //CS=1
  	LATEbits.LATE3 = 0;  //LDAC=0
  	LATEbits.LATE3 = 1;  //LDAC=0
}

//main-----------------------------------------------------------------------
int main(void)
{
	int i,j;
	
//Initialize
	LATE = 0x0000;	//

// Setup Port
	TRISB = 0x01;	//AN0 input
	TRISE = 0x00;	//all output
	
	SRbits.IPL=4;	//Set CPU priority Set core priority level to 4

// Setup ADC10		
	OpenADC10(ValueADCON1, 
                           ValueADCON2, 
                           ValueADCON3, 
                           ValueADPCFG, 
                           ValueADCSSL);
	SetChanADC10(Channel0);
	ConfigIntADC10(ADC_INT_PRI_7 & 
                                ADC_INT_ENABLE);

// Timer3 open 16kHz = (7.37MHz*8/4)/921
	OpenTimer3(T3_ON & T3_GATE_OFF & T3_PS_1_1 & T3_SOURCE_INT,921-1);

// init mcp4922
	LATEbits.LATE0 = 1;	//CS
	LATEbits.LATE1 = 0;	//SCK
	LATEbits.LATE2 = 0;	//SDI
	LATEbits.LATE3 = 1;	//LDAC

//Idle Loop
	while (1){};
}

c言語ではじめる音のプログラミング2009/07/21 23:09

● 読書記録
c言語ではじめる音のプログラミング 青木直史著
★★★★★
dsPICを使ってボイスチェンジャーを作ってみようと思い参考書として購入しました。いろいろなデジタルサウンドイフェクトの方法がサンプルプログラムとともに解説されています。いずれもPC上でwaveファイルを変換するかたちになっています。全部読んだわけではありませんが、説明もわかりやすくプログラムも著者のサイトからDLできるので難なく理解できました。windowsのサウンドレコーダを使って自分なりに試してみることもできると思います。
この著者は割とはずれがないですね。北大の先生のようですが、一般人の知りたいところのツボを押さえている感じです。
応用としてボコーダ(人の声と楽器音の合成?)を作ってみました。プログラムをのせておきます。線形予測+合成フィルタという構成です。フィルタ生成用の音源はニュース音声、楽音は250Hzのインパルス波形です。現状まだ無音部でも楽音が鳴ってしまっています。

#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "wave.h"

#define BUF_LEN		320
#define LPC_ORDER	14

int main(void)
{
	MONO_PCM pcm0, pcm1, pcm2;
	int buf_cnt=0;
	int n,m,k;
	int i,j;
	int start;
	double in_buf[BUF_LEN];
	double m_buf;
	double out_buf[LPC_ORDER+1];
	double r[LPC_ORDER];
	double a[LPC_ORDER];
	double b[LPC_ORDER];
	double alfa;
	double km,alfam,t;
	double rnd;

	mono_wave_read(&pcm0, "speech.wav");
	
	pcm2.fs = pcm0.fs; /* 標本化周波数 */
	pcm2.bits = pcm0.bits; /* 量子化精度 */
	pcm2.length = pcm0.length; /* 音データの長さ */
	pcm2.s = calloc(pcm2.length, sizeof(double)); /* メモリの確保 */

	for(i=0; i=BUF_LEN)buf_cnt = 0;
		//機械音生成
		if(n%64==0){
			m_buf=1;
		}else{
			m_buf=0;
		}
		
		if(n%BUF_LEN==0 && n>0)
		{
			//LPC計算
			//自己相関関数( <- 8/5修正)
			for(i=0; i= BUF_LEN)
		{
			out_buf[0] = -(a[1] * out_buf[1]
					+ a[2] * out_buf[2]
					+ a[3] * out_buf[3]
					+ a[4] * out_buf[4]
					+ a[5] * out_buf[5]
					+ a[6] * out_buf[6]
					+ a[7] * out_buf[7]
					+ a[8] * out_buf[8]
					+ a[9] * out_buf[9]
					+ a[10] * out_buf[10]
					+ a[11] * out_buf[11]
					+ a[12] * out_buf[12]
					+ a[13] * out_buf[13]
					+ a[14] * out_buf[14])
					+m_buf;
			//出力の配列をプッシュする
			for(i=LPC_ORDER; i>0; i--){
				out_buf[i] = out_buf[i-1];
			}
			pcm2.s[n] = out_buf[0];
		}else{
			pcm2.s[n] = in_buf[0];
		}
	}
	mono_wave_write(&pcm2, "result.wav");
	free(pcm0.s);
	free(pcm2.s);
  
	return 0;
}

ヒルズ黙示録2009/07/22 21:30

● 読書記録
ヒルズ黙示録  大鹿 靖明著
★★★★☆
『時代を象徴する一大経済事件へと発展したライブドア、村上ファンド事件。六本木ヒルズを舞台にしたマネーゲームの全内幕を暴き、ホリエモン、村上世彰ら時代の寵児たちの栄華と失墜、生々しいまでの裏の顔を描き切った第一級ルポ』
前回「メディアの支配者」を読んでいるときにたまたま聞いた”くりらじ”のバックナンバーでBJさんが紹介していたので読んでみました。まさに「メディア~」の続編という感じです。ライブドア、楽天など、当時ITビジネスの寵児ともてはやされたわけですが、本書の中身がほとんど株やファンド、M&Aの話になっているのも象徴的です。
先日書店で目にした堀江著「新資本論」ですが、極大フォント、すかすかの行間が笑いを誘いました。

「週刊新潮」が報じたスキャンダル戦後史2009/07/28 19:33

● 読書記録
「週刊新潮」が報じたスキャンダル戦後史  週刊新潮編集部著
★★★☆☆
『政財界事件から皇室報道、芸能ゴシップまで、半世紀に亘る膨大な記事の中から選りすぐった傑作を収録。戦後日本の「裏側」がここに集大成されている。』
過去の記事がそのまま掲載されています。ニュージャパンの火災、小野田さん帰還等、少年時代に見聞きしたニュースや事件をあらためて大人の観点から読み直すことができました。
現時点からみた編集部のコメントなどが書かれていればなおよかったと思います。それと週刊誌の文体というのはなぜか知性が感じられませんね。