﻿
    これらは、ほぼ何も分からないまま、ただ動画を見、曲を聞いて、
        気に入ったものを寄せ集め並べただけのものである。
      チベット語、英語、中国語、どれも解らないので、歌詞も、演者や楽曲の情報も、
          諸般の事情も、分からないし、調べることも難しい。
      私は、チベットとは何の関わりもないし、その民俗や、宗教(チベット仏教)、或いは
          社会的・政治的な問題といったものなどに、特に関心があるのでもなく、
          そういったところから、これらの歌を聞き始めたのではない。
      音楽については大分素人以下であって、音楽的にどういうものであるか等も、
          知る所ではない。
      ただ周りによくある音楽に気に入るものは余りないが、これらには何故か馴染める
          ところがある(言葉-意味が分からないから良いのかも知れないが。)
  
==================================================
■ リスト
  各動画の項の、
      英数等の11文字のリンクは、YouTube の動画を指す。これのクリックは、
          ページ内部で、プレーヤーを表示しているなら、
              その動画を、内部のプレーヤーで再生するが、
          表示してない場合は、普通のリンクとして、
              他のウィンドウ(タブ)で、動画のページを開く。
      長い動画は、左側の主たるリンクを空にして、右端にリンクを置いた。
          (内部プレーヤーでリストをリクエストする時に、含まれないようにする為)
      長い動画中の一部分を指定しているリンクがあるが、これは機能しない場合がある。
          他のウィンドウで開く場合や、内部プレーヤーでも YouTube API を
            使わない場合、終わり(end=)の指定は無効で、途中では止まらない。
      リンク(ポイント時)のポップアップに、動画の日付とチャンネル名を示した。
      失われたと分かった(リンク切れの)動画は、リンクをグレー(色)で示した。
          多分、確認してないリンク切れも、多くあると思われる。
      
      リンクの次に、歌手別でまとめている所では、曲名を記している。
          そうでない所では、歌手名 ／ 曲名 としている。
      日付は、動画がアップロードされた日であって、
          その動画や曲の実際の日付とは関係ない。また設定(時差)によるずれあり。
      最後に付け足している右端のリンクは、同曲の別映像などである。
  
  歌手別(Singers)リストは、歌手単位で動画をまとめたもので、
      歌手を並べるのに、文字順ではなく、最初の動画の出現年を使った。
          歌手についての実際の日付で、並べているのではない。
        歌手群を括っている年は、見付けられた限りで、その歌手のYouTube動画が
            最初に出現した年で、その為、古くても 2006年である。
      新しく現れた歌手を上方に、先(以前)に現れた歌手は下方(後ろ)に置いた。
          新しい動画でも、先に現れた歌手の動画は、下の方にある。
          全ての動画(曲)の新旧の並びは、日付順(Date)リストの方を。
          或いは、検索に、日付(例えば 2018/ や 18/10 など)を入れて見る。
      年数のすぐ下には、歌手単位にまとめられなかった動画を置いた。
  
  曲別(Songs)リストでは、同じ(と思われる)曲を違う歌手が歌っているもの、
         或いは曲中で引用・挿入されているもの、などを集めた。
      歌手別と曲別リスト中で、黄色の背景に # のリンクは、リスト表示を切り替えてから、
          該当箇所へ移動(スクロール)する (場合によっては動作しないかも)。
  
  日付順(Date)リストでは、歌手別リストの中の各動画を、
      アップロードの日付順に並べ替えた。
      背景が薄暗い項目は、歌手別リストで、年数の下にまとめられている群であり、
          これらは、プレーヤーへのプレイリストには加えない。
          これら以外は、歌手別リストで、各歌手の項目に置かれていて、同年の下には
              置かれていないものである。
          ただし、年数下の曲数が少ない場合(値は初期時の設定による)は、これを分けない。
  
  リストのデータは、スクリプトファイルの中に記している。
          → dataTibSingers.js, dataTibSongs.js
  
  [F] ボタンは、チベット文字のサイズやフォントを変更する欄を表示する。
  
  チベット文字の表示の変更欄
      使われているフォントによって、サイズ等の変更が必要な場合があるので加えた。
          例えば、サイズは、Microsoft Himalaya を想定し 1.8em にしてあるが、
              Noto Sans Tibetan が使われていたら、大き過ぎるし、行間が足りない。
      各欄は左から、font-size, line-height, vertical-align, font-family を変更する。
          line-height は行の高さ(行間)。 vertical-align は、行中での垂直位置。
              ( 名前が長いので、ラベルは、適当に縮めて付けている。)　
          Font欄には、フォント名(font-family)を記入し、[Enter]キーか、
              右の[⏎]ボタンを押す。
      [C]ボタンは、これらで加えた変更を元に戻す。
      チベット文字部分に指定してあるのは、font-size: 1.8em; line-height: 1.2em; 　
          で、vertical-align, font-family は、無指定。
      
      HTA(IE7モード)では、チベット文字のフォントとそのサイズによって、
          同じ行にあるリンクの下線(underline)が、文字より随分離れてしまう事がある。
  
  [r] ボタンは、このファイルの内容を表示する。
      ローカルファイルの場合、ブラウザによってはファイルの読み取りに制限あり、
          これが出来ない場合あり、その時は他のタブやウィンドウに開く。
  
==================================================
■ プレーヤー
     (※ 今の処、充分に 実際に使って試す事が出来ない為、
         このスクリプトが、まともに動作するか分からない。)
  
[Player] ボタンを押すと、YouTube の埋め込みプレーヤーを表示する。
    プレーヤー表示後には、このボタンを押せば、プレーヤーを隠す。
  
  プレーヤーが表示されている時、動画へのリンクや、リストのボタン[▶]の
      クリックで 動画は、この内部のプレーヤーに映る。
  プレーヤーを表示してない時、動画へのリンクは、
      YouTube のページを、別のウィンドーで開く。
      リストは、リクエスト出来ないので、[▶] ボタンは表示してない。
  
API チェックボックス ～ [Player]ボタンの隣の。
    API が使用可能な YouTube プレーヤーを取り込むかどうか。
    チェックを付けてから、[Player] ボタンを押すと、API 付きプレーヤーになる。
        (一度プレーヤーを表示してからでは、この変更できない。)
    
  プレーヤーの API 使用について
    API 使用時には、一つの動画の終りを知る事ができるので、
        自動的に連続する再生が可能になる。
      ( API は、YouTubeプレーヤーを、こちらのスクリプトから操作可能にし、
        またプレーヤーの状態変化が、こちらへ通知されるようになる。)
    
    非API の時、動画の再生は、IFRAME 要素の src に、
          ( SWFでは、Embet要素の src か Object要素の movie属性に)、
        各動画の指定のつど、その URL を指定し直しているだけである。
           ( API使用時には、動画は、APIを通して指定する。)
        この場合に、１動画中の部分指定は、start は有効だが、end は無効らしい。
      リスト再生では、動画リクエストの URL に、
          リスト中の動画ID を、まとめて指定している。
        この時、１動画中の部分指定は、リクエストに入れられないので、無効。
    
    非API の時、[Player] ボタンを押した後の初期状態は、
        IFRAME 要素の src(url) は指定してなく、about:blank である。
        ( Object,Embet要素を使用の場合は、SWF(Flash)の url が、未指定。)
      API 使用時では、[Player] ボタンを押した時は、YouTube へアクセスする。
    
    このファイルが、ローカルにある場合は、API は使う事は出来ない。
        ( ローカルファイルと、ネット上のスクリプトは普通、隔てられている。)
  
SWF チェックボックス (※使用不可・無効)
    HTA,IE であるなら、最初にプレーヤーを表示する前まで表示する。
    プレーヤーを IFrame 要素でなく、SWF(Object,Embet要素)を使用するように
        変更する。(プレーヤーを一度出してしまった後は、無効。)
    SWF使用により、HTA や IE で、バージョンが古くてエラーになるのを、
        避けられるかも知れない。
    (※ YouTube ではもう、Flash (ShockWave-Flash、swfはそのファイル)は
        使われてないらしく、「Flash-embedded videos are no longer supported,
        but you can still watch this video on YouTube.」とエラーメッセージが出る。
    (※ その為、HTA (＝IE 7) や古い IE では、ページ内部＝埋め込みのプレーヤーは
        使えなくなった。それらでは、object,embet要素で動く Flash(swf) なら使えたのだが、
        IFrame のプレーヤーは、HTML5 だというので、古いブラウザでは動かない。
  
Split チェックボックス
    チェックが付いているなら、ページを上下に分割し、
        プレーヤーを上部に常に表示し、下部にリストをスクロール付きで表示する。
    プレーヤー表示中に、このチェックをクリックするなら、
        ページを上下分割か、一体表示するかを切り替える。
  
▼ プレーヤー操作部
    埋め込みプレーヤーの操作用のボタンやチェックボックス等のある行。
    ここが表示されない場合、プレーヤーの取込みは失敗している。
  
  [<<] [>>] ボタンは、前の|次の動画を再生する。
      部分的なリストが選択されている時は、そのリスト内部での前後移動。
          ( 最後の次は リストの一つ目、最初の前は 最後、と循環する。)
      リスト再生時( [▶]を押した後)でない場合は、
          セクション全体での前後移動である。
      
      非API プレーヤーで、リスト再生ボタンを押した場合、
        こちらからプレーヤーは操作できない為、この [<<] [>>] ボタンで、
          リスト内の移動はできない。
        そのリスト再生中に [<<] [>>] ボタンを押すと、リスト再生は中止され
          そのリストの１つ(最初等)の動画のみの再生になってしまう。
      しかし、非API では、リスト内の移動は、プレーヤー内部で可能。
          ( リストは、YouTubeへのリクエストに含まれている。)
        逆に API 使用時には、YouTubeへ リストを渡しているのではないので、
          プレーヤー内部で、このリストの操作はできない。この場合、プレーヤー
          内部のリストは、YouTube側のもので、こちらとは関係ない。
      
      シャッフル再生時には、前 [<<] ボタンは、戻るボタンとなり、
          その前に再生していた動画を再生する。
        その戻った時、[>>] ボタンは、戻りから戻る(進む)ボタンとなり、
            戻る前に再生していた動画を再生する。( 戻りが解消されるまでは、
            進むであるが、自動進行や動画リンクのクリックでも解消される。)
        履歴がない場合には、戻る[<<] ボタンは、[>>] と同じくただ次を選択する。
  
  [■] STOP(停止)ボタン
      再生を止める。( 一時停止はプレーヤー内部で出来る。)
  
  チェック □run 
      自動的に連続再生するかの選択。
      API 使用時のみ有効。チェックあれば、自動的に、次の動画を再生する。
        ( 非API ならプレーヤー内部で、進行は制御できる。)
      チェック無ければ、次へは進まない。( [>>] では、次へ進める。)
    (※ 致命的な事に、この自動進行は、動画が存在しなかったり、削除されていると、
        そこで止まってしまう。これについては、こちらのスクリプト側のバグか、
        それとも見付からないというエラーの通知が無いのものなのか、不明。
        追記：自動的にスキップされるようになった？？
    (※ 非API では、このチェックは無効だが、リストの[▶]ボタンで、
          部分的リストを渡した場合は、プレーヤー内部で自動進行になる。
          セクション全部のリストは長過ぎるので、渡さないようにしている。
    (※ 追記、バグ。時間指定のある動画から、自動で移行する場合、
          次の動画を再生しないで、次の次の動画へ行ってしまうようになった。
  
  進行方向の選択欄。
      自動進行時の、または前後のボタンでの、進行方向。
      [ -> ] 前方(次)へ進む。
      [ <- ] 後方(前/戻)へ進む。
      [Shuffle] ランダムに選択して進む。
    前方/後方 選択時に、[<<][>>]ボタンの意味は変わらず、自動進行時に
        のみ、この選択は意味を持つ。
    [Shuffle] を選択した場合、非-自動進行時にも、
        [>>]ボタンで、ランダム進行する。
        ただし、[<<]バックした時は、[>>]は、バックからの戻りである。
  
  チェックボックス □roop 繰返し
      リストを或いは１曲を繰り返す。
  
  サイズ選択欄
      プレーヤーの要素のサイズを変更する。
  
▼ 動画とリストのタイトル表示部分
  プレーヤー操作部の下に、現在プレーヤーへ送られた動画と、
      選択されているリストがあればそのタイトルを、表示する。
    ここで、→# は、このページの中の下部のリスト表示部分の中の
      動画か部分リストへのアンカーリンクであるが、
    
    ブラウザによっては、これをクリックすると全体の表示が壊れてしまう事があった。
      これは、プレーヤーを上部に固定させ、下部はリストを表示するように
        ページを分割している場合(チェックボックスで切替可能)に、起きた。
        ( リスト部分にスクロールバーが付くようにしている。窓の大きさが充分で
          ない時、全体のバーは消さないので、バーは二重になる。)
      ページの中へのリンクは、ページの中がスクロールされて、その位置が見える所に
        来るのであろうけれど、デフォルトのスクロールバーでなく、別の任意に
          付けられたバーをスクロールしないとならないとなると、、
      リンクがまともに動作すると期待する方が、無理難題かも知れない。
  
  --------------------------------------
(※ IE 以外で、プレーヤーに、SWF(Embet,Object要素)を使うようにするには、
    最初にプレーヤーを出す前に、テスト用入力欄を表示させ、そこに、
    ytp_setting.flgSwf = true;  と入力し [実行] する。
    更に ytp_setting.flgSwf2 = true; では、version=3(AS3)を指定しない。
(※ プレーヤーの API を使わないように(単に動画のsrcを指定するだけに)するには、
    最初にプレーヤーを出す前に、ytp_setting.flgNoAPI  = true;  とする。
  
==================================================
■ ファイル
  songs_tib.html
      本体の HTML ファイル。
  songs_tib.hta
      上を HTA として使う場合は、こちらから実行する。(転送ファイル)
  
  dataTibSingers.js
  dataTibSongs.js
      この２つは、リストのデータ。
  
  songs_tib.js
      設定の一時変更(上書き)用スクリプトファイル。
  songs_tib.css
      スタイルの一時変更(上書き)用ファイル。
  ut.js
      汎用的関数群のスクリプトファイル。
  ytplayer.js
      プレーヤーについてのスクリプト。
      実際に使っているのは、この中の記述の一部である。
        使ってない部分は、まともにテストもしてないため、動作は不明である。
        また、使用部分についても、ネットを存分に使って試す事ができない為、
          まだ信頼できるものとは言えない。
  test_ytp.html
      ytplayer.js のテスト用。
  
==================================================
テスト用入力欄
   [t] ボタンで、テスト用入力欄の部分を表示する。
       ( 通常のブラウザには、F12ツールがあるので不要かとも思うが。)
   
   [Ctrl]+[Enter] か [実行]ボタンで、実行。
       入力欄のテキストを、スクリプトとして実行し、結果の値を下部へ表示する。
     
     列挙 にチェックあれば、値がオブジェクトなら、そのプロパティを一覧表示する。
         字順 にチェックあれば、名前順にして、一覧表示する。
   
   HTA,IE での、入力欄(TextArea)のサイズ変更用キーとして、
       [Ctrl]+[1] で高さを、[Ctrl]+[2] で幅を、拡大 (押し続けで連続拡大)。
         上に [Shift] を加えるか、[Ctrl]+[3]/[4] で縮小。
       他のブラウザでは、サイズ変更可能なので、このキーは設定してない。
   [Ctrl]+[T] か [Ctrl]+[I] で、入力欄(TextArea)に、タブ文字を入れる。
       (その欄にキーフォーカスがある時の動作)
       ブラウザにより、[Ctrl]+[T] の新規タブを開くを、キャンセルできず、
         そのため、HTA,IE 以外では、もう一つ [Ctrl]+[I] も用意した。
         HTA,IE では、[Ctrl]+[T] のみ。
   
   $enum( オブジェクト値 ) 
       オブジェクトのメンバ(の名前と値)の一覧を表示する。
       値文字列が長い場合は、80 文字で切り捨てるが、これは 
           変数 $enum_v_max で変更可能。
       メンバ名順に並べ替えて表示するが、２つ目引数に false を渡すと、
           もとの出現順のまま表示する。
   $html( 要素 )
       引数は要素または要素idで、その要素のHTML文を返す。
       outerHTML があるなら、それを、無ければ innerHTML を返す。
         (outerHTML ある場合、２つ目引数に false で、innerHTML に)
   $html()
       HTML要素 のHTML文を返す。
   $body()
       Body要素 のHTML文を返す。
   $cp( 値 ) または $copy( 値 )
       HTA,IE で、クリップボードへ、値の文字列をコピーする。
   
   $cs( 要素 )
       要素.currentStyle または getComputedStyle(要素) を返す。
       列挙 にチェックあれば、内容を一覧表示する。
   $addSS("セレクタ { プロパティ: 値; ... } ...")
       スタイルシートを追加する。
   
   $yt( vid )
       引数は YouTube の 動画 ID 文字列。
       埋め込みプレーヤーが表示されていれば、その動画をリクエスト・再生する。
         そうでない時は、別の window でその YouTube のページを開く。
  
==================================================
■ 変更・修正

2024/08/
    リスト切り替え時、一旦表示を隠すようにした為か、リストを切り替えて移動する # リンク
        が、リスト切り替えのみで、その箇所へ移動しなくなっていた。
    リストを切り替えて移動する # リンクに背景色(黄色)を付けた。
    曲別リストから、歌手別リストの該当部や歌手部へ移動する # リンクを加えた。
    歌手別リストで、その歌手の別の動画の id を紹介しているコメントを、その曲についての
        補足(のコメント)とは別にして、その曲の項目の最後に置くようにした。
    日付順リストで、歌手別リストで、歌手名でなく、年でまとめられている曲群は、
        (プレイヤーの)プレイリストには加えないようにし、それらは背景色をやや暗くした。
2024/07/末
    歌手別、曲別などのリスト切り替え時、一旦表示を隠すようにした。
2022/05/初
    最初に表示が現れる所を少し修正。
    画面拡大の設定があって、HTA の時の px の値の問題への対処。
2019/07/末
    readme.txt の読み取りの所のバグを修正。
    歌手別の目次の歌手名に、別の文字列を指定できるようにした、他。
2018/11/中
    説明(readme.txt)を内部で表示するようにした。
    テスト欄を表示するスクリプトを修正。
2018/11/上
    チベット文字部分のサイズやフォントを変更する欄を加えた。他。
2017/10/下
    video の id の無い項( - ? - などと表示している)も、クリックに反応し、
        またリストに含まれてしまい、プレーヤーを呼び出すようにしていた、
        バグを修正した。(リストの進行が、そこで止まっていた。)
2017/05/中
    動画の各項の表示(行)の高さが、その行(項)にチベット文字が含まれるかで、
        大きく違ってしまうので、含まない行(項)にもチベット文字が入るように、
        データのチベット語曲名の空の箇所になるべく、U+0F0B の文字を
        入れて置くようにした。
2017/04/中
    2016/12 に修正した、HTMLの特殊な文字をエスケープする関数で誤りあり、
        エスケープされてなかったバグを修正。
    エラーメッセージの表示場所をプレーヤーの表示の有無で変更に。
    プレーヤー表示時、任意の動画をリクエストできるように、VideoIDを入力する
        ボックスを出すボタン[..]を加えた。実際の動作は未確認。
    プレーヤーを分離表示させるスクリプトを少し修正。
2016/10/末
    先頭が数字の歌手名から、アンカー名(id)を作れるように、スクリプトを修正。
2016/10/始
    テスト用入力欄の部分が、プレーヤー(Flash)と重なると、プレーヤーが上に
        載ってしまうので、上下分割表示にしている時は、下部へ表示する事にした。
    HTA,IE では、プレーヤーを IFrame でなく、SWF(Object,Embet要素)に、
        変更するチェックボックスを置くようにした。
    テスト用入力欄周辺の修正、
      テスト用入力欄の部分は、他の部分の上に重ねて表示するのだが、
          プレーヤーの方が、より前面に来てしまい、テスト部を覆ってしまう。
        通常時は、スクロールして避ければいいが、ページを上下に分割した表示に
          している時は、テスト部を閉じる事も出来なくなってしまう為、
          テスト部は、下部(リスト部)の上に置くようにした。
        しかし、まだ問題あり、そのようにテスト部を表示した後に、プレーヤーの
          サイズを大きくすると、先と同様、テスト部を閉じるボタンが隠されてしまい、
            ページを更新する他なくなってしまう。
          プレーヤーのサイズ変更時には、下部(リスト部)の位置とサイズも変更
            しているが、テスト部の位置とサイズの変更は行ってない。
      $enum(window); が、IE11 と、Edge で、値 window["external"] を、
          文字列に変換する所で、エラーになるので、
          値を得る部分を、try-catch で囲むよう変更した。
2016/09/末
    曲別(Songs) のページの作成時、歌手別のページの該当の曲の所に、
        曲別のそれへのリンクを挿入するようにした。
    テスト用入力欄の辺りも修正。
2016/09/25
    日付順 のページを追加 (歌手別のページ中の曲を日付で並べ替えた)。
    選(Selection) のページの作成方法を上に伴い変更。また、これも、
        日付で並べるようにした。
    YouTube動画へのリンクを作る際の(&start=..&end=..の所の)バグを修正。
  
(※HTAでこのファイルを中で表示する時、要素.innerText を使っているためか、
    空行が無視されるようなので、改行だけとせずに、空白文字などを入れて置く必要がある。)
  
==================================================
■ 付：参考ページ
  何か事情が分かるようなサイトやページはないかと多少検索してみたが、
  
https://www.jstage.jst.go.jp/article/shikohinbunka/2017/2/2017_07/_pdf
山本達也  近代経験のアリーナとしての歌手の身体
  ―チベタン・ポップ制作に見る「屈折する近代」と嗜好品の動態性  2017
  
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/235456/1/Tibeto-Himalayan_175.pdf
山本達也 「作る」と「パクる」の狭間で 
  ―チベタン・ポップをめぐる権利言説と実践から見る難民社会の今  2018
  
https://ir.lib.hiroshima-u.ac.jp/44015/files/20913
坪野和子,増山賢治  現代チベット音楽の変容と伝統回帰 
  ―中国領チベットにおける民族文化の独自性をめぐって―
	2002.3.23 広島大学 学術情報リポジトリ (MusicCultEduc_14_57.pdf)
  
http://lung-ta.cocolog-nifty.com/lungta/2014/01/20131231.html
alanの涙 - ちべログ＠うらるんた 2014.01.01
  
http://www.graffiti-cat.jp/dayanulus/1483/
小野田俊蔵「チベットの撥弦楽器ダムニェンの奏法と演奏曲」ダヤンウルス 2010-7-15 
    #※このページは無くなっていた。
  
==================================================
