Implements an image recognition captcha.

"; break; case 'admin/modules#description': case 'admin/modules/textimage': case 'admin/textimage': $output = t('Implements an image recognition captcha.'); break; } return $output; } function textimage_captchachallenge(&$form) { $form['captcha_response'] = array ( '#type' => 'textfield', '#title' => t('Captcha Validation'), '#default_value' => '', '#required' => TRUE, '#validate' => array('_captcha_validate' => array()), '#description' => t('Please type in the letters/numbers that are shown in the image above.'), '#prefix' => 'Captcha Image: you will need to recognize the text in it.', ); return $form; } function textimage_captchavalidate(&$captcha_word, &$correct) { $captcha_word = drupal_strtolower($captcha_word); if (($_SESSION['captcha'] != '') && $captcha_word == $_SESSION['captcha']) { $correct = true; } else { $correct = false; form_set_error('captcha_response', t('The image verification code you entered is incorrect.')); } } /** * Implementation of hook_menu(). */ function textimage_menu($may_cache) { $items = array(); $suffix = ''; if (arg(2)!=null) $suffix='/'.arg(2); $items[] = array( 'path' => '_textimage/image'.$suffix, 'title' => t('textimage'), 'callback' => '_textimage_image', 'access' => user_access('access textimages'), 'type' => MENU_CALLBACK ); return $items; } function textimage_perm() { return array('access textimages'); } function textimage_settings() { $fonts_path = variable_get("textimage_fonts_path", ""); $images_path = variable_get("textimage_images_path", ""); //check for GD if (!function_exists(imagecreate)) drupal_set_message(t('Image library not available. Textimage needs the GD library extension to be installed. Please install GD.')); //check for TTF support elseif (!function_exists(imagettftext)) drupal_set_message(t('Your image library does not seem to have TrueType font support. Textimage will work, but will use the default inbuilt font.'),'status'); //check for valid font path elseif ($fonts_path!="" && !is_dir($fonts_path)) drupal_set_message(t('The current font path is invalid. The default font will be used.')); //check for valid image path if ($images_path!="" && !is_dir($images_path)) drupal_set_message(t('The current images path is invalid. No images will be used.')); //Fonts settings $form['fonts'] = array( '#type' => 'fieldset', '#title' => t('Fonts settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['fonts']['textimage_use_only_upper'] = array( '#type' => 'checkbox', '#title' => t('Use only Uppercase'), '#default_value' => variable_get('textimage_use_only_upper',0) ); $form['fonts']['textimage_fonts_path'] = array( '#type' => 'textfield', '#title' => t('TrueType Fonts Path'), '#default_value' => $fonts_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the Truetype (.ttf) fonts are stored. If you do not provide any fonts, the module will use the default font for text. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['fonts']['textimage_font_size'] = array( '#type' => 'textfield', '#title' => t('Font Size'), '#default_value' => variable_get('textimage_font_size',24), '#size' => 5, '#maxlength' => 2, '#description' => t('Font size of Captcha text (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_font_size")), ); $form['fonts']['textimage_char_spacing_max'] = array( '#type' => 'textfield', '#title' => t('Character Spacing'), '#default_value' => variable_get('textimage_char_spacing_max',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the kerning between letters in Captcha. Higher numbers indicate more spacing.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_spacing_max")), ); $form['fonts']['textimage_char_jiggle_amount'] = array( '#type' => 'textfield', '#title' => t('Character Jiggle'), '#default_value' => variable_get('textimage_char_jiggle_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of up and down movement in the Captcha letters. Higher numbers indicate more jiggling.'), '#validate' => array("_textimage_number_validate" => array("textimage_char_jiggle_amount")), ); $form['fonts']['textimage_char_rotate_amount'] = array( '#type' => 'textfield', '#title' => t('Character Rotation'), '#default_value' => variable_get('textimage_char_rotate_amount',5), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of rotation in the Captcha letters (in degrees, only works with non-default fonts).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_rotate_amount")), ); $form['fonts']['textimage_char_size_amount'] = array( '#type' => 'textfield', '#title' => t('Character Size Adjustment'), '#default_value' => variable_get('textimage_char_size_amount',2), '#size' => 5, '#maxlength' => 2, '#description' => t('Sets the amount of variation in size between the different letters in the Captcha (in pixels).'), '#validate' => array("_textimage_number_validate" => array("textimage_char_size_amount")), ); //Image settings $form['images'] = array( '#type' => 'fieldset', '#title' => t('Image settings'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['images']['textimage_images_path'] = array( '#type' => 'textfield', '#title' => t('Background Images Path'), '#default_value' => $images_path, '#size' => 30, '#maxlength' => 255, '#description' => t('Location of the directory where the background images are stored. If you do not provide a directory, solid colors will be used. Relative paths will be resolved relative to the Drupal installation directory.'), ); $form['images']['textimage_image_noise'] = array( '#type' => 'textfield', '#title' => t('Image Noise (pixels)'), '#default_value' => variable_get('textimage_image_noise',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random pixels) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_noise")), ); $form['images']['textimage_image_lines'] = array( '#type' => 'textfield', '#title' => t('Image Noise (lines)'), '#default_value' => variable_get('textimage_image_lines',4), '#size' => 5, '#maxlength' => 4, '#description' => t('Sets the amount of noise (random lines) in the Captcha image. Higher numbers indicate more noise.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_lines")), ); $form['images']['textimage_image_margin'] = array( '#type' => 'textfield', '#title' => t('Image Margin'), '#default_value' => variable_get('textimage_image_margin',10), '#size' => 5, '#maxlength' => 4, '#description' => t('Set a distance between the Captcha letters and the edges of the image.'), '#validate' => array("_textimage_number_validate" => array("textimage_image_margin")), ); $form['info'] = array( '#type' => 'fieldset', '#title' => t('Image and font information'), '#collapsible' => TRUE, '#collapsed' => FALSE ); if (isset($fonts_path)) { $imagefontinfo .= t('Number of fonts found: ').count(_textimage_font_list()); } if (isset($images_path)) { $imagefontinfo .= '
'.t('Number of background images found: ').count(_textimage_image_list()); } $gdinfo = gd_info(); $imagefontinfo .= '
'.t('GD Version: ').$gdinfo["GD Version"]; $imagefontinfo .= '
'.t(' FreeType Support: '); $imagefontinfo .= ($gdinfo["FreeType Support"]==true) ? 'True' : 'False'; $imagefontinfo .= '
'; $form['info']['captcha_info'] = array ( '#type' => 'item', '#value' => $imagefontinfo, ); return $form; } function textimage_settings_form_validate ($form_id,$form) { //check for valid font path if ($form['textimage_fonts_path'] !="" && !is_dir($form['textimage_fonts_path'])) form_set_error('textimage_fonts_path', t('The entered font path is invalid')); //check for valid image path if ($form['textimage_images_path'] !="" && !is_dir($form['textimage_images_path'])) form_set_error('textimage_images_path', t('The entered image path is invalid')); } function _textimage_number_validate ($field,$fieldName) { if (!is_numeric($field['#value'])) { form_set_error($fieldName,t("The value for")." ".t($field['#title'])." ".t("must be a number")); } } /** * Prints an image containing a textimage code. */ function _textimage_image() { //if we don't have GD2 functions, we can't generate the image if (!function_exists('imagecreatetruecolor')) return; // Set headers header('Expires: Mon, 01 Jan 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); header('Content-type: image/png'); $string = _textimage_code(); // Get truetype font list $fonts = _textimage_font_list(); // Get the background images list $images = _textimage_image_list(); // Randomization amounts: $charSpacingMax = variable_get('textimage_char_spacing_max',10); // Letter spacing max (pixels) $charSpacingMin = max($charSpacingMax*.5,0); // Letter spacing minimum (pixels) $charJiggleAmount = variable_get('textimage_char_jiggle_amount',5); // Up and down randomization (pixels) $charRotateAmount = variable_get('textimage_char_rotate_amount',5); // Character rotation amount (degrees) $charSizeAmount = variable_get('textimage_char_size_amount',2); // Character size amount (pixels) $imageRotateAmount = variable_get('captcha_image_rotate_amount',12); // Image rotation amount (degrees) // Static amounts: $charInitialSize = variable_get('textimage_font_size',24); // Initial Font $imageNoise = variable_get('textimage_image_noise',4); // Amount of noise added to image $imageLines = variable_get('textimage_image_lines',4); // Amount of noise added to image $imageMargin = variable_get('textimage_image_margin',10); // Margin around image (pixels) // write text using a truetype font if (function_exists(imagettftext) && count($fonts) > 0) { // Initialize variables for the loop $characterDetails = array(); // contains the final info about each character // Build a list of character settings for the captcha string for ($i=0;$i $charSize, "angle" => $charAngle, "x" => $x, "y" => $y, "color" => $foreground, "font" => $font, "char" => $char ); // Increment the image size $imageWidth = $x + $charWidth; $imageHeight = max($imageHeight,$y+$charJiggleAmount); } // Create the image based off the string length and margin if (count($images) > 0) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth+2*$imageMargin, $imageHeight+2*$imageMargin); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Specify colors to be used in the image $foreground = imagecolorallocate($im, rand(0, 80), rand(0, 80), rand(0, 80)); foreach($characterDetails as $char) { // draw character imagettftext($im,$char['size'],$char['angle'],$char['x']+$imageMargin,$char['y']+$imageMargin,$foreground,$char['font'],$char['char']); } } else { // write text using a built-in font $x = 0; $y = 0; $imageWidth = 60 + drupal_strlen($string)*$charSpacingMax*.35; $imageHeight = 30 + $charJiggleAmount; // Create the image if (count($images) > 0 && function_exists(imagecolorallocatealpha)) { // We're going to be using an image, and need a tranparent background to start with $im = _textimage_create_transparent_image($imageWidth, $imageHeight); $noisecolor = imagecolorallocatealpha($im, 0, 0, 0, 127); } else { // Just make a plain-jane color brackground $im = imagecreatetruecolor($imageWidth, $imageHeight); $background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); $noisecolor = $background; imagefill($im, 0, 0, $background); } // Add the text for ($i=0;$i 0) { // Prepare a larger image with a background image $im2 = _textimage_create_transparent_image($imageWidth, $imageHeight); } else { // Prepare a larger image with a solid color $im2 = imagecreatetruecolor($imageWidth, $imageHeight); imagefill($im2, 0, 0, $background); } $result = imagecopyresampled ($im2, $im, $imageMargin, $imageMargin, 0, 0, $imageWidth, $imageHeight, imagesx($im), imagesy($im)); $im = $im2; } // strikethrough imageline($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), $foreground); // Add Noise for ($x=0; $x<$imageWidth; $x++) { for ($row=0; $row<$imageNoise;$row++) { $y = rand(0,$imageHeight); imagesetpixel($im, $x, $y, $noisecolor); } } // Add Lines and Ellipses for ($x=0; $x<$imageLines;$x++) { imageline($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); imageellipse($im, rand(0, $imageWidth), rand(0, $imageHeight), rand(0, $imageWidth), rand(0, $imageHeight), $noisecolor); } // Fill image with a random background image if available if (count($images) > 0) { $image = $images[rand(0,count($images)-1)]; _textimage_apply_background_image($im,$image); } //output to browser imagepng($im); imagedestroy($im); } /** * Returns a random string for use in a captcha */ function _textimage_code() { $consts='bcdgjxvmnprst'; $vowels='aeiou'; for ($x=0; $x < 6; $x++) { mt_srand ((double) microtime() * 1000000); $const[$x] = drupal_substr($consts,mt_rand(0,drupal_strlen($consts)-1),1); $vow[$x] = drupal_substr($vowels,mt_rand(0,drupal_strlen($vowels)-1),1); } $string = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4]; $string = drupal_substr($string,0,rand(4,6)); //everytime we create a new code, we write it to session $_SESSION['captcha'] = drupal_strtolower($string); if(variable_get('textimage_use_only_upper',0)) $string = drupal_strtoupper($string); return $string; } /** * Returns an array of files with TTF extensions in the specified directory. */ function _textimage_font_list() { $fontdir = variable_get("textimage_fonts_path", ""); $filelist = array(); if (is_dir($fontdir) && $handle = opendir($fontdir)) { while ($file = readdir($handle)) { if (preg_match("/\.ttf$/i",$file) == 1) $filelist[] = $fontdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Returns an array of files with jpg, png, and gif extensions in the specified directory. */ function _textimage_image_list() { $imagesdir = variable_get("textimage_images_path", ""); $filelist = array(); if (is_dir($imagesdir) && $handle = opendir($imagesdir)) { while ($file = readdir($handle)) { if (preg_match("/\.gif|\.png|\.jpg$/i",$file) == 1) $filelist[] = $imagesdir.'/'.$file; } closedir($handle); } return $filelist; } /** * Overlays an image to the supplied image resource */ function _textimage_apply_background_image (&$imageResource,$imageFile) { $backgroundResource = image_gd_open($imageFile,substr($imageFile,-3)); // Copy the text onto the background $backX = imagesx($backgroundResource); $backY = imagesy($backgroundResource); $textX = imagesx($imageResource); $textY = imagesy($imageResource); $randomBackX = rand(0,$backX-$textX); $randomBackY = rand(0,$backY-$textY); // Place the text onto a random location of the background image imagecopyresampled($backgroundResource,$imageResource,$randomBackX,$randomBackY,0,0,$textX,$textY,$textX,$textY); // Crop the background image to the original image size imagecopyresampled($imageResource,$backgroundResource,0,0,$randomBackX,$randomBackY,$textX,$textY,$textX,$textY); } /** * Creates transparent image resources for images with graphic backgrounds */ function _textimage_create_transparent_image($x, $y) { $i = imagecreatetruecolor($x, $y); $b = imagecreatefromstring(base64_decode(_text_image_blankpng())); imagealphablending($i, false); imagesavealpha($i, true); imagecopyresized($i, $b ,0 ,0 ,0 ,0 ,$x, $y, imagesx($b), imagesy($b)); return $i; } function _text_image_blankpng() { $c = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m"; $c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADqSURBVHjaYvz//z/DYAYAAcTEMMgBQAANegcCBNCg"; $c .= "dyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAAN"; $c .= "egcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQ"; $c .= "oHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAA"; $c .= "DXoHAgTQoHcgQAANegcCBNCgdyBAgAEAMpcDTTQWJVEAAAAASUVORK5CYII="; return $c; } ?> Путь к совершенству | Odesskiy Listok

Путь к совершенству

user warning: Table './odessapage/cms_sessions' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(sid) AS count FROM cms_sessions WHERE timestamp >= 1544940803 AND uid = 0 in /home/hepa/public_html/new/includes/ on line 121.

О Калио Мюльберге: “Путь к совершенству…” очерк Бориса Турчинского

Когда речь заходит об Одесской консерватории (теперь она носит название Музыкальной академии имени А.В.Неждановой), прежде всего, вспоминают выдающихся исполнителей – ее выпускников. Таких, как Э.Гилельс, Д.Ойстрах, С.Рихтер, К.Данькевич, Н.Мильштейн, О.Благовидова, Я.Зак и многих-многих других музыкантов, заслуженно пользующихся мировой известностью. О педагогах, их воспитавших, зачастую говорят значительно меньше. И это вряд ли справедливо!
Судите сами. В Одесской академии ныне преподают 4 академика, 11 докторов и 45 кандидатов наук, 32 профессора, 22 доцента, 8 народных и 34 заслуженных артистов Украины, 20 заслуженных деятелей искусств и 3 заслуженных работника культуры республики. Многие из них отмечены орденами и медалями, лауреатскими званиями. Подобным подбором высококлассных специалистов-педагогов обладают лишь немногие из высших музыкальных заведений мира. И, пожалуй, не всюду найдешь наставника, труд которого был бы увенчан одной своеобразной и очень престижной зарубежной наградой: Международный биографический центр, находящийся в Кембридже и формирующий сведения о выдающихся музыкантах нашей планеты, в феврале 1991 года включил профессора Одесской академии, заведующего кафедрой духовых и ударных инструментов, заслуженного деятеля искусств Украины Калио Эвальдовича Мюльберга в список музыкальных авторитетов – мировых лидеров художественного творчества.
Как случилось, что сын цирковых артистов (отец Калио был известным в СССР до второй мировой войны акробатом), которому, казалось, сама судьба подсказывала стать продолжателем семейной традиции, вдруг увлекся музыкой? Решающую роль, судя по воспоминаниям К.Мюльберга, сыграл именно… цирк. Когда мальчику было всего 8 лет, он на манеже в Москве увидел выступление двух негров, музыкантов-чечеточников: один играл на банджо, второй – на саксофоне. Калио настолько потряс этот эстрадный номер, что он попросил родителей помочь ему научиться играть на саксофоне. Спустя несколько лет знакомый музыкант посоветовал Мюльбергу-отцу: “Отлично освоить саксофон можно лишь, овладев сначала в совершенстве игрой на кларнете“. Так 12-летний сын акробата взял в руки инструмент, который и определил, по сути, его судьбу.
Это было незадолго до начала войны. Первые ее годы семья Мюльбергов жила в Барнауле. Потом в Свердловске, а после освобождения Украины от немецких оккупантов – в Одессе. И всюду Калио играл на саксофоне и кларнете в оркестрах и небольших ансамблях – в кинотеатрах, в цирке, в парках летом, даже на свадьбах. Как говорил он сам, “на практике постигал музыкальную науку“. Но вскоре Мюльберг понял, что без образования успеха в своем деле ему не добиться. И вот, продолжая работать в оркестре Одесского цирка, Калио поступил в местное музыкальное училище, а в 1948 году – в консерваторию. На вступительном экзамене он настолько вдохновенно и с мастерством исполнил первый концерт К.М. Вебера, что вызвал у председателя приемной комиссии, известного композитора К.Ф.Данькевича, который был в те годы ректором консерватории, огромное одобрение. Он прозорливо предсказал тогда большое творческое будущее К.Мюльберга-кларнетиста. И не ошибся!
На первом курсе в консерватории Калио, как и в музучилище, занимался в классе П.В.Дроздова, вместе они играли в Одесском симфоническом оркестре, куда Мюльберга пригласили после приемных экзаменов. Многое молодой кларнетист почерпнул у своего педагога, у которого настойчивость в достижении поставленной цели и постоянный поиск нового были ведущими принципами в обучении. Значительную часть творческих приемов Дроздова его ученик стал спустя годы применять и в своей педагогической работе. “Например, я всегда с удовольствием слушал звук кларнета Павла Васильевича, наполненный густотой тембра, компактный, с металлическим блеском, - вспоминал Калио Мюльберг. – Однажды в классе музучилища Дроздов в моем присутствии разыгрывался перед концертом. Невольно стал сравнивать свой звук кларнета с его исполнением, мечтая добиться такого же, как у моего педагога, мастерства. И вдруг обратил внимание на выдох Дроздова. Заметил, что он очень цепко удерживает инструмент, а дыхательный аппарат работает с большой активностью. А Павел Васильевич тут же подсказал мне, как “схватить” его манеру исполнительского выдоха. Вскоре, последовав советам педагога, почувствовал: звук у меня стал гуще, плотнее, выразительнее, а сам кларнет - как бы более управляем“. Запомнился Мюльбергу и такой постулат Дроздова, которому он следовал всю свою творческую жизнь: “Перед выступлением в концерте музыкант должен в классе, на репетиции, играть на 110%, так как на сцене, оставшись один на один со слушателями, он обязательно потеряет от волнения 10%, тогда останутся необходимые 100% качества“.
Вскоре учитель и ученик расстались: Дроздов переехал в Киев, а К.Мюльберг, студент второго курса, перешел в класс доцента Веры Петровны Базилевич. И с этим педагогом Калио повезло. Базилевич была удивительно глубоким, тонким и разносторонним музыкантом. Она окончила Одесское музучилище по кларнету и по фортепиано, консерваторию – как музыковед, дирижированию обучалась у профессора А.И.Климова. В оперном театре играла на органе и клавесине, в училище вела класс симфонического оркестра, для музыкантов Одесского военного округа регулярно проводила курсы дирижирования духовым оркестром. В консерватории у нее обучались кларнетисты, баянисты и валторнисты. В.П.Базилевич обладала удивительным педагогическим даром: умела находить ключ к каждому студенту, к его индивидуальным способностям. Как губка, впитал Мюльберг основной принцип своего учителя: дать в руки ученику метод, с помощью которого он сможет познать собственные способности и возможности, поймет, что надо делать, чтобы добиться высочайшей результативности в игре на инструменте.
В.П.Базилевич не только помогла Калио в стремительном росте исполнительского мастерства, что незамедлительно сказалось на его творческой карьере (Мюльберга пригласили на должность солиста симфонического оркестра Одесского театра оперы и балета). Она заметила в своем воспитаннике незаурядный педагогический дар. По ее рекомендации руководство консерватории предложило студенту 5-го курса преподавательскую работу. Так, с 1952 года в жизнь Калио Эвальдовича прочно вошли четыре важных дела: концертная деятельность, работа в театре, воспитание молодой смены кларнетистов в консерватории и научные исследования.
Особую популярность и в СССР, и за рубежом Мюльберг-кларнетист завоевал, после того как стал лауреатом музыкального конкурса, который проводился в рамках Всемирного фестиваля молодежи и студентов в Москве в 1957 году. Чтобы попасть туда, Калио пришлось пройти серию отборочных конкурсов. И он блестяще справился с поставленной задачей: на Республиканском в Киеве удостоился второй премии (первая не была присуждена никому), на Всесоюзном стал победителем. Интересно, что первую премию и золотую медаль ему вручал выпускник Одесской консерватории выдающийся скрипач Д.Ойстрах. Эти успехи привлекли внимание к молодому исполнителю. Как из рога изобилия, посыпались приглашения на гастроли. Мюльберг объездил с концертами практически всю Украину, не раз и не два выступал в Москве, Ленинграде, Тбилиси, Челябинске, других городах СССР, восторженно встречали его слушатели в Финляндии, Италии, Португалии, Германии, Болгарии и в других странах.
В чем заключался секрет мастерства этого музыканта, собиравшего на своих концертах переполненные изощренными ценителями прекрасного залы? Вот что писал один из известнейших специалистов профессор Ю.Усов:
«Кларнет Мюльберга всегда звучит глубоко, насыщенно, выразительно будь то произведение классического наследия, эры романтизма или современных авторов. Вышедшая в 1983 г. грампластинка фирмы “Мелодия” “Калио Мюльберг“ еще убедительнее подтвердила существующее высокое мнение о талантливом музыканте. Записанные на ней сонаты Ф.Пуленка и П.Подковырова, сонатина Б.Мартину, каприччио Г. Глазачева отмечены замечательным художественным вкусом, великолепным чувством стиля. О К.Мюльберге можно сказать, что, унаследовав богатые традиции кларнетного исполнительства, он привнес в него какое-то собственное отошение, его трактовка наделена чертами индивидуального понимания музыки и роли в ней инструмента”.
И еще одна важная деталь творческого почерка Калио Эвальдовича: в концертной деятельности всегда стремился идти непроторенными путями. Он оказался первым исполнителем в бывшем СССР произведений для кларнета с оркестром Р.Кубина, А.Копленда, Г.Глазачева и других авторов. Настоящим новаторством в музыкальной жизни стало появление на сцене концертного дуэта кларнета и фортепиано. С 1965 года, К.Мюльберг начал плодотворно сотрудничать с талантливой пианисткой М.Глазуновой. Интерес к этому камерному дуэту рос от гастролей к гастролям. В немалой степени способствовало тому стремление музыкантов к новому: они тщательно готовили программы из разнохарактерных произведений В.А. Моцарта, Д. Бортнянского, Н.Ракова, С. Танеева, Ф.Пуленка, Л. Бернстайна, Г.Глазачева.
Новизной отличалась и другая сторона исполнительской деятельности К.Мюльберга. Многие композиторы писали раньше и пишут сейчас музыку для кларнета. И все же интересных произведений было явно недостаточно. Потому Калио Эвальдович, думая о расширении репертуара, начал поиск сочинений, которые можно было бы переложить под “свой“ инструмент.
Однажды по телевидению выступал композитор Р.Щедрин. Он сыграл свою новую фортепианную пьесу “Бассо-остинато“. Спустя годы К.Мюльберг вспоминал: “В какой-то миг я представил, что эта пьеса может очень интересно прозвучать на кларнете.… Сначала решил поднять тональность, чтобы можно было использовать низкий звук “ми“, придумал в середине противосложение в нисходящем, а к конце в восходящем движении. Так постепенно новое произведение для кларнета начало формироваться…“. Завершив задуманную работу, Мюльберг отправил ноты автору, чтобы заручиться его согласием на подобную интерпретацию сочинения. И Р.Щедрин быстро прислал ответ: одобрил переложение и внес некоторые существенные предложения по басу. Пьеса получилась очень интересная и Калио Эвальдович потом всегда с удовольствием исполнял ее на концертах…
Удалось Мюльбергу установить творческое содружество и с одесскими композиторами Г.Глазачевым, А.Красотовым, Я. Фрейдлиным, Г.Успенским, И.Ассеевым, П.Захаровым, Т.Рябчиковой, А.Станко, Н.Генари. Некоторые из них (например, А. Красотов, Я. Фрейдлин) предложили дуэту законченные сочинения. С другими авторами К.Мюльбергу и М.Глазуновой приходилось в разной степени участвовать в поисках окончательно редакции их произведений. Не забыт был и опыт работы с пьесой Р.Щедрина. Спустя годы, Калио Эвальдович стал известным не только в Украине, бывшем СССР, но и во многих странах мира автором переложений для кларнета и для ансамблей деревяных духовых инструментов сочинений композиторов – ноты этих его произведений до сих пор постоянно переиздают за рубежом.
Трудно даже представить себе, какие нравственные, эмоциональные и просто физические нагрузки выпадали на долю Мюльберга. Ежедневная многочасовая работа с инструментом. Репетиции и выступления в театре… Концертная деятельность в составе дуэта… Встречи с композиторами и буквально “прощупывание“ каждой ноты их новых сочинений для кларнета… Авторское творчество: созданных им лично переложений становилось все больше и больше.… Теперь добавьте ко всему этому занятия со студентами в качестве преподавателя консерватории, административную деятельность: Мюльберг с 1965 по 1979 и с 1985 года по настоящее время – заведующий кафедрой духовых и ударных инструментов, с 1967 г. – декан оркестрового факультета, с 1979 (когда он стал профессором) до 1995 г. – проректор Одесской музыкальной академии по научной работе. Собственные научные исследования. Нет, не случайно коллеги так высоко ценили его работоспособность, называя ее “фантастической“.
Наукой, как утверждал сам Калио Эвальдович, он занялся… вынужденно. С первых же дней преподавательской работы Мюльберг вдруг обнаружил огромные методические пробелы в подготовке кларнетистов: отсутствовала необходимая литература, в обучении студентов использовалось пособие С.Розанова “Основы методики преподавания и игры на духовых инструментах“, изданное еще в… 1935 году. Школа для кларнета этого автора, в соответствии с которой было воспитано несколько поколений музыкантов, не содержала целого ряда важных сторон начальной подготовки кларнетистов. Потому-то на практике не только у новичков, но и у выпускников музыкальных учебных заведений часто наблюдались серьезные ошибки при удержании кларнета, постановке губ, языка, дыхания и других компонентов техники. К.Мюльберг - после десяти лет занятий со студентами, размышлений, наблюдений – решил попытаться восполнить эти методические пробелы, И взялся за написание пособия “Теоретические основы обучения игре на кларнете“.
В 1975 году эта первая научная работа Калио Эвальдовича была издана в Киеве. Она стала фактически первой не только в Украине, но и в СССР книгой одного автора (в сборниках иногда появлялись статьи по отдельным проблемам обучения) в области кларнетной методики. А потом на основе материалов научных экспериментов, обобщенных в этом своем пособии, Мюльберг подготовил и блестяще защитил диссертацию “Исследование некоторых компонентов техники кларнетиста“, что заслуженно принесло ему ученое звание кандидата искусствоведения.
Какие бы административные должности ни занимал Калио Эвальдович в музыкальной академии, какие бы огромные нагрузки ни выпадали на его долю в других сферах творческой деятельности, Мюльберг продолжал выкраивать время для занятия наукой. В солидном перечне его публикаций учебные пособия “Организация обучения игре на кларнете“ и “Практика музыканта самодеятельного духового оркестра“. Исследования, потребовавшие от него настоящего поиска в архивах, “Из истории исполнительства на духовых инструментах в Одессе (19 – начало 20 вв.)“ – в соавторстве с Э.Дагилайской, “Исполнители на духовых инструментах в истории музыкальной культуры Одессы». В 1995 году К.Мюльберг опубликовал “Записки кларнетиста“, работу, которая превратилась в настольную книгу для каждого кларнетиста, – в ней они находили ответы на многие животрепещущие вопросы, связанные с овладением исполнительским мастерством. В 2002 году вышла из печати новая книга К.Мюльберга “О мастерстве кларнетиста”, в 2003-м - “Путь к совершенству игры на кларнете“, в 2008-м - “Оркестровые трудности для кларнета и особенности их воплощения в творчестве П.И.Чайковского”…
Если вдуматься, приходишь к закономерному выводу: все эти научные исследования К.Мюльберга не были лишь самоцелью, они помогали в обучении молодых кларнетистов, открывая перед ними тайны техники и мастерства. И студенты, занимавшиеся на кафедре духовых и ударных инструментов Одесской музыкальной академии, жадно впитывали в себя опыт и знания своего наставника. Ученики Калио Эвальдовича ныне успешно трудятся в оркестрах Москвы, Киева, Харькова, Одессы, других городов бывшего СССР и в музыкальных коллективах дальнего зарубежья (в Португалии, Германии, Китае, США, Израиле). Опорой в жизни К.Мюльберга всегда была и есть, верная спутница-жена Лариса Николаевна. Думается, в том, что и сейчас, перешагнув девятый десяток лет, Калио Эвальдович продолжает с молодым задором осуществлять свои многочисленные дела, и ее весомая заслуга.
Среди сотен питомцев, прошедших за долгие годы, как говорится, через руки педагога, К.Мюльберг особо выделяет своих особенно талантливых учеников: заслуженного артиста России, доцента Российской академии музыки им. Гнесиных, Лауреата международного конкурса- солиста симфонического оркестра И.Оленчика, доцента академии им. Гнесиных, заслуженного работника культуры России, кандидата искусствоведения Н.Волкова. Заслуженного артиста Украины, известного дирижера Л.Джурмия. Профессора Лиссабонской консерватории (Португалия), дирижера В.Стоянова. Доцента Киевской национальной академии музыки, солиста оркестра Киевского национального театра оперы и балета В.Тихонова. Доцента Донецкой академии музыки Е.Сурженко. Лауреата республиканского конкурса, доцента Одесской академии музыки, кандидата искусствоведения З.Буркацкого,доцента Одесской академии музыки М.Крупея, Лауреата многих международных конкурсов, преподавателя Фрайбургской музыкальной академии (Германия) А.Старченко, преподавателя Одесского музыкального училища С.Воронкина, солистов-кларнетистов Одесского оперного театра В.Попова и Ю. Петелько, преподавателей музыкальных учебных заведений в Израиле В.Ватмахера и Ф.Теплова. Список этот можно было бы и продолжить…
В прошлом году Калио Эвальдовичу исполнилось 80 лет. Какой замечательный путь к совершенствованию прошел этот талантливый кларнетист, педагог и ученый. Какая интереснейшая жизнь, подчиненная ТВОРЧЕСТВУ! От имени всех почитателей его таланта, бывших и настоящих учеников, хочу выразить огромное спасибо за подвиг в музыке и любовь к людям.
За все то хорошее, что мы унаследовали от великого маэстро кларнета-Калио Мюльберга.

Борис ТУРЧИНСКИЙ (выпускник Одесской консерватории-ученик К.Мюльберга)

Теперь напечатано

Научно-популярный журнал "ОРКЕСТР"- №15
Москва-сентябрь 2009год

Отправить новый комментарий

Содержимое этого поля хранится скрыто и не будет показываться публично.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br> <tr> <td> <table>
  • Строки и параграфы переносятся автоматически.
  • Images can be added to this post.
Больше информации о возможностях форматирования