'Home', 'M' => 'Melody', '2' => '2 Voices', '3' => '3 Voices', '4' => '4 Voices', 'P' => 'Pianistic', 'R' => 'Rhythm', 'I' => 'History' ); $typestrings = array ( 'M' => 'These are problems of melody dictation.
Each problem has 8 measures.
Whole tune is played at first, next the first half 3 times, whole tune, the latter half 3 times, whole tune at last.', '2' => 'These are problems of dictation of 2 voices.
Each problem has 8 measures.
Whole tune is played 6 times.
Beginner\'s class is for intermediate students of melody dictation.', '3' => 'These are problems of dictation of 3 voices.
Each problem has 8 measures.
Whole tune is played 6 times.
Beginner\'s class is for intermediate students of melody dictation.', '4' => 'These are problems of dictation of 4 voices.
Each problem has 8 measures.
Whole tune is played 6 times.
Beginner\'s class is for intermediate students of melody dictation.', 'P' => 'These are problems of dictation of variable voices like piano pieces.
Each problem has 8 measures.
Whole tune is played 6 times.
Beginner\'s class is for intermediate students of melody dictation.', 'R' => 'These are problems of rhythm dictation.
Each problem has 8 measures.
Whole tune is played 6 times.' ); } else { $grades = array ('', '入門', '初級', '初級+', '初級++', '中級', '中級+'); $typetitles = array ( 'H' => 'ホーム', 'M' => '旋律', '2' => '2声', '3' => '3声', '4' => '4声', 'P' => 'ピアノ曲', 'R' => 'リズム', 'I' => '履歴変更' ); $typestrings = array ( 'M' => '旋律聴音の問題集です。8小節で、最初に通して演奏、次に前半だけ3回、続いて通し、後半だけ3回、最後に通して演奏します。', '2' => '二声の聴音の問題集です。8小節で、6回通して演奏します。
旋律聴音中級程度から。', '3' => '三声の聴音の問題集です。8小節で、6回通して演奏します。
旋律聴音中級程度から。', '4' => '四声の聴音の問題集です。8小節で、6回通して演奏します。
旋律聴音中級程度から。', 'P' => 'ピアノ曲のように同時に鳴る音の数が変化する聴音の問題集です。8小節で、6回通して演奏します。
旋律聴音中級程度から。', 'R' => 'リズム聴音の問題集です。8小節で、6回通して演奏します。' ); } #このページで使うのはこれだけ。 $typetitle = $typetitles [$type]; $typestring = $typestrings [$type]; #クッキー if ($type == "confirm") { $ck = $_COOKIE["his"]; if ($_POST["hd"]) { $ps = str_repeat ("0", strlen($ck)); $newtunes = explode(",", $_POST["h"]); foreach ($newtunes as $id) { if(!$id) { continue; } $keta = floor ($id / 4) + 1; if ($keta > strlen($ps)) { $ps .= str_repeat ("0", ($keta - strlen($ps))); } $byteme = $id % 4; $bit = 1 << $byteme; $mojime = floor ($id / 4); $konochar = dechex ($bit | hexdec ( substr ($ps, $mojime, 1))); $ps = substr($ps, 0, $mojime) . $konochar . substr($ps, $mojime + 1); } setcookie ('hi2', $ps); } else { $ps = $_COOKIE['hi2']; } } $pleaseusecookie = ""; if (!$_COOKIE["his"]) { $pleaseusecookie = ($lang == 'ja') ? '
このサイトで履歴管理の機能を使うためにはブラウザのCookie(クッキー)を有効にしてください。' : '
Please make coockie of your browser effective to manage the history on this site.
'; $pleaseusecookie = "\n\n"; } if ($_POST["act"]) { $timeout = time() + 3652 * 86400; setcookie ('his', $_COOKIE["hi2"], $timeout, '/'); setcookie ('hi2', '', time() - 365 * 86400); } #グレードごとの出力 function getpro ($grade) { global $files, $grades, $type; $pro = preg_grep ('/^\d+_' . $grade . '\d_' . $type . '/', $files); if (!$pro) { return (0); } usort ($pro, "cmp"); echo "

$grades[$grade]

\n
    \n"; foreach ($pro as $eachpro) { lines($eachpro); } echo "
\n"; return (count ($pro)); } #一問ごとの出力 function lines ($name) { global $lang; preg_match('/^(\d+)_(\d+)_([A-Z1-9])([a-z]*)_([A-Ha-hR])([ies]*)_([0-9]+)\-([0-9]+)(a*)_([0-9]+)$/', $name, $matches); list ($all, $id, $grade, $shurui, $onbukigo, $kanon, $haseion, $bunshi, $bunbo, $auftakt, $hiduke) = $matches; if ($onbukigo == "f") { $kigo = ($lang == 'ja') ? "ヘ音記号 " : "F clef, "; } elseif ($onbukigo == "g") { $kigo = ($lang == 'ja') ? "大譜表 " : "Grand staff, "; } elseif ($shurui != "R") { $kigo = ($lang == 'ja') ? "ト音記号 " : "G clef, "; } if ($lang == 'ja') { $durmoll = (preg_match('/[A-Z]/', $kanon)) ? 'Dur' : 'Moll'; } else { $durmoll = (preg_match('/[A-Z]/', $kanon)) ? 'major' : 'minor'; $kanon = strtoupper($kanon); if ($kanon=="B" || $haseion=="es" || $haseion=="s") { $haseion = " flat"; } if ($haseion=="is") { $haseion = " sharp"; } if ($kanon=="H") { $kanon = "B"; } } if ($kanon=="R") { $kanon = ""; $durmoll = ""; } if ($auftakt) { $auftakt = ($lang == 'ja') ? " 弱起" : " pickup"; } #Coockie $ck = $_COOKIE["his"]; $mojime = floor ($id / 4); $byteme = $id % 4; $bit = pow (2, $byteme); $tchar = substr($ck, $mojime, 1); $mita = $bit & hexdec(substr($ck, $mojime, 1)); $midokuopen = ($mita) ? '...' : ''; #$midokuclose = ($mita) ? '' : ''; #$litype = (!$mita) ? 'square' : 'circle'; #$litype = ($mita) ? ' type=circle' : ''; #1行表示 if ($_GET['display'] == 'all') { print "
  • $name
    \n"; } else { print "$midokuopen$kigo$kanon$haseion $durmoll $bunshi/$bunbo$auftakt [$id]$midokuclose
  • \n"; } } #問題の並び方 function cmp ($a, $b) { global $fileorder; preg_match('/^(\d+)_(\d+)_/', $a, $matches); list ($aall, $aid, $agrade) = $matches; preg_match('/^(\d+)_(\d+)_/', $b, $matches); list ($ball, $bid, $bgrade) = $matches; if($agrade == $bgrade) { return ($fileorder[$aid - 0] < $fileorder[$bid - 0]) ? -1 : 1; } else { return ($agrade < $bgrade) ? -1 : 1; } } ?> <?php if ($lang == 'ja') { ?> mimicopy.com — <?php if ($type != "H" && $type) {echo $typetitle;} ?>聴音 問題集 <?php } else { ?> mimicopy.com — Problems of Music Dictation — <?=$typetitle?> <?php } ?>

    mimicopy.com

    聴音問題集

    曲の順序が変わることがあります。

    Problems of Music Dictation

    The order of the tunes varies.

    $value) { if ($key == $type) { echo "$value\n|\n"; } else { $one = $dot = $two = $language = $tograde = ''; if ($_GET['lang']) { $language = "lang=$lang"; $one = "?"; $dot = "."; } if ($key != "H") { $tograde = "type=$key"; $two = ($one) ? "&" : ''; $one = "?"; $dot = "."; } echo "$value\n|\n"; } } $totype = ($type == "H") ? '' : "&type=$type"; if ($lang == 'ja') { echo "English"; } else { echo "Japanese"; } ?> |
    mimicopy.comへようこそ。初歩から聴音の学習ができるページです。現在、全部で問題が問あります。聴音のタイプを選んでください。
    管理者のページ - 楽典
    Welcome to mimicopy.com. You can study music dictation from the first step. There are problems now. Select a type of tune to study music dictation.
    Administrator's Pages

    履歴変更

    履歴の修正ができます。
    履歴を変更するには、学習した曲の[  ]内の数字を「,」で区切ってください。

    History

    You can handle your history.
    Put the numbers in the [  ]'s of the tunes you've visited with commas between the numbers to change your history.

    履歴変更の確認

    以下の変更を行います。

    Confirmation of History change

    Handling your history as below.

    $typetitle\n

    $typestring

    \n"; for ($i = 1; $i <= 6; $i++) { getpro ($i); } } ?>

    © Copyright 2007- by Takuya Shigeta