の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
オーディオの世界/自作
|
|
作った経緯
某会館で公演した際、iPadは音が割れてパソコンは音が割れないという奇妙な現象に遭遇した。 いろいろ試してもやっぱり音は割れるまま。 どうしたものか...と思っていた。
時は過ぎ、次の本番一週間(未満)前。 ふと思い立って表題のものを作ってみることにした。(遅すぎ)
|
結果できたもの
|
単純にインピーダンス変換、平衡/不平衡変換をしただけ。 おまけ機能としてモノミックスもつけてみた。(ほんとはオペアンプで電流を吸い出せばいいけど、おまけだから、ね。) ちなみにローノイズのオペアンプを使ったけど実は抵抗の熱雑音よりもオペアンプの熱雑音の方が少ない。 ちなみに抵抗の熱雑音はVn=sqrt(4k * T * R * B)という式で求められる。 ためしにk=(ボルツマン定数(1.38 * 10 ^ -23))、T=(273 + 20)=293、R=1k(1000)、B=(20000 - 20)=19980と置く。 そうすると0.0000005684615449V、つまり抵抗自ら発するノイズは約0.5uVとなるってわけ。 それで、利得1倍のアンプだからノイズは0.5uV...みたいな感じ。
話を元に戻すと、初段は4558、二段目は4580を採用。 もちろん低雑音選別品。 二段目が肝になっていて、4580を採用することで多少配線が長かったりしてミキサーの入力インピーダンスを下げないといけなくても大きい力で送り出せるってわけ。 電源は手に入りやすい9Vの角形電池。(とはいっても最近は廃止に向けて動いてるみたいだけどね...) ちなみにこれは祝日の夜22時から始めて、23時ぐらいに完成。 原理はわかっていて頭で回路図を書けるほど簡単だけど...やっぱりそれなりにかかるなぁ... あとこれは安定度が高いオペアンプだからできること。 他のオペアンプで試すと入力抵抗が高過ぎて発振したり動作が不安定になったりするかもね。 ちなみに今回なにげにブレッドボード初使用。 ハンダ付けより手軽で、やっぱり一度使ったら手が離せない... ただし、ちょっと配線にさわれば「バリッ」とか「バチッ」とか鳴るから基板に書き起こさないとなぁ... ちなみにサンハヤトの蛇の目基板は入手済み。 落書きも描いてるからあとは作るだけ。(いつになるかな...でも22日までに作らないと...)
|
2024/9/18 基板を起こした...けど...
基板の左半分が余ったから何かに使えないかなぁ... あっ!なんか部品が1つ余るなぁと思ったら+出力のバッファを作り忘れてた! あーあ...(試行錯誤はまだ続く) ちなみにsansuiのアンプにインスパイアされてなんとなーく左右対称に回路を組んでみた。 あと、GNDをオペアンプの下に敷いてみた。 ...ほとんど変わらなかったけど...
|
|
|