среда, 22 сентября 2010 г.

Добавление своих мелодий/звуков

  Всем привет,
  Возникло у меня как-то желание озвучить своего робота(модель - собачка). Захотелось мне сделать что бы она лаяла и нюхала во время движения по комнате. Проблема в том, что по умолчанию в LabView их(звуков собачки) нет. И пришлось мне импровизировать и искать способы их залить в робота. Итак, все по порядку.

  Перед тем как начать искать, я заглянул в LabView и посмотрел на расширение звуковых файлов для NXT. Выяснил что формат файла .rso. RSO  - это специфичный для NXT айдио формат, каждый звук/мелодия должны быть в формате .rso.
  Полез я в гугл, наивно полагая что меня там ждут уже огромное количество библиотек с .rso.  Вообщем обломался я по крупному:(  Почти ничего не было.
  Иду  снова в google, набираю "звуки, собака". Захожу по первой ссылке, скачиваю архив с .wav файлами(не с .rso). Дальше решил поискать конвертер .wav файлов в .rso. Мне повезло, наткнулся на целых две и еще нашел интересный сайт с программами для NXT.
  Wavrsocvt и wav2rso - конверторы. Я рассмотрел обе программы и и склонился все таки ко второй. Дело в том, что wavrsocvt - это консольное приложение(не очень удобно), а wav2rso имеет отличный наглядный интерфейс.
Интерфейс wav2rso

Интерфейс wavrsocvt
  И вот только я подумал что все... вот оно счастье!! Выбираю файл, нажимаю "Convert" иииии..... тут абзац.. Вдруг выясняется что wav  файл должен быть не любым, а очень даже особенным. А точнее ошибка звучит так: "Error processing D:\NIIT\Lego MindStorm NXT\Projects\DogBot\Sounds\Прочие\dog.wav: wave files must be in PCM, MS ADPCM, or IMA ADPCM format". Оказывается .wav файл должен быть в PCM или MS ADPCM (IMA ADPCM формат на момент написания статьи не поддерживался).
  И тут я снова в гугл. Что б я без него делал:) Уже потратив пол часика, я наконец-то наткнулся на сайт, на котором есть информация о треках и о wav файлах(ссылка). Кстати, на этом сайте я нашел все нужные мне звуки. Скачиваю их, выбираю в wav2rso и кликаю "Convert", в результате у меня готовый rso файл.
  А дальше... Надо как-то получить доступ к этому файлу из LabView. Единственное что мне пришло в голову, это пойти в папку где установлена "MINDSTORMS NXT", быстро пробежавшись по директориям я наткнулся на дефолтовские .rso файлы(в моем случае путь был такой: C:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Sounds\). Копирую созданный .rso файл в эту папку, выбираю в LabView эелемен Sound и в списке звуков появилась наша мелодия. Урра!!!! (Если элемент Sound уже был - удалите его, и добавьте новый.)
  Еше один нюанс.. Из-за малого количества места на NXT компьютере, пришлось один файл обрезать. Для редактирования файла я использовал Audacity. Бесплатный редактор wav файлов. Для того что бы мелодия повторялась постоянно,  в элементе "Sound" ставлю галочку напротив "repeat"
  Вот вообщем-то и все.. Собираем программу. Активизируем её на роботе и наслаждаемся результатми. Надеюсь эта информация кому-нибудь поможет:)

P.S. Есть еще один вариант озвучить робота, но это уже в следующий раз.

2 комментария:

  1. Если вы работаете с LabVIEW - добро пожаловать к нам на сайт:
    http://labviewportal.eu/index.php

    ОтветитьУдалить
  2. Проблема при запуске программы на блоке с новым звуком он воспроизводится неправильно

    ОтветитьУдалить

Related Posts Plugin for WordPress, Blogger...