vs1003 как миди синтезатор
- Войдите на сайт для отправки комментариев
Ср, 04/07/2018 - 13:45
Достался модуль нахаляву (больше года работал оповещателем на заводе) на микросхеме vs1003. Файлы mp3 поигрался, послушал, но теперь хочу, чтоб он, как миди синтезатор заиграл (благо миди-клава валяется давно). Для пробы написал такой скеч
#include <SPI.h>
#include <arduino.h>
#include <MusicPlayer.h>
/*
* GND - GND
* XDCS - D6
* DREQ - D7
* XRES - D8
* XCS - D9
* SCLK - D13
* SI - D11
* SO - D12
* GND - GND
* 5V - 5V
*/
void setup () {
// initiate SPI
SPI.begin();
// initiate a serial port at 9600
Serial.begin(9600);
// initiate VS1003 for MIDI
player.beginInMidiFmt(); //Инициализировать аппаратное обеспечение и установить режим MIDI по умолчанию.
player.midiWriteData(0xB0, 0x07, 120); //установить громкость
player.midiDemoPlayer ();
}
void loop() {
// играть ноты от F#-(30) до F#-(90):
for (int note = 30; note < 90; note ++) {
player.midiNoteOn(1,note,127);
delay(50);
player.midiNoteOff(1,note,127);
delay(50);
}
}
Но эта сволочь молчит, как партизан, ни звука. Может кто сталкивался и смог победить?
Насчет vs1003 не знаю, могу сказать только насчет vs1053. Насколько они совместимы - не интересовался.
1. Проигрывание MIDI-файлов и реалтаймовое MIDI - это не одно и то же. На просторах И-нета можно найти программку - в уже откомпилированном виде занимает байт 20-30, как раз она переводит чип в режим реалтаймового MIDI. Для чего ее сперва нужно загружить в DSP.
2. Процессор 1053 - 16-разрядный. Соответственно, на вход ему надо подавать не однобайтные, а двухбайтные коды. (насколько это критично - не знаю, вероятно player.midiNote* так и делает, но хорошо бы проверить.)
3. В названии библиотеки не фигурирует "VS1003", есть ли уверенность, что библиотека именно для этого чипа?
Насколько я понял из даташитов этих процессоров 53, отличается от 03 расширенной и улучшенной библиотекой инструментов. На сайе http://www.vlsi.fi/en/products/vs1003.html для обоих кристаллов ссылаются на одни и те же примеры. А при инициализации командой player.beginInMidiFmt(); библиотека vs10xx.h подгружает в проц вот это:
чисто для vs1003 такую я не нашел, потому и обратился сюда.
Да, я использую этот же код, только добавил в него "разгон" процессора примерно до 60 МГц.
Правда, беглое знакомство с приведенной Вами ссылкой на этот код меня нее вывело.
Подробно разбираться с vs1003 у меня сейчас ни времени, ни желания нет. Единственное, чем могу поспособствовать, либо проверить тот код, что Вы загружаете в vs1003 в свой 1053, либо, наоборот, привести код, который работает у меня на 1053. Но это в лучшем случае сегодня вечером.
И, кстати, в каком виде у Вас само устройство? Насколько я помню, ему нужно два разных напряжения питания.
У меня сейчас в доступности примерно такой:
И с него нельзя снимать сигнал относительно общего провода - там специально есть контакт, предназначенный для использования в качестве общего с наушниками, но не соединенный с GND.
Если можно, то и мой проверить, и свой привести. Чтобы определится: ошибка в коде или модуле
е.
Ваш код проверить не могу ввиду отсутствия у меня библиотеки "MusicPlayer", публикую тот, что у меня работает (сразу прошу прощения, в коде много лишнего - чистить не стал)
MP3_Shield_VS1053b.ino
VS1053B_MIDI.h
VS1053B_MIDI.cpp
Библиотека для vs10xx, которую использую я:https://github.com/Seeed-Studio/Music_Shield . Вашу смогу попробовать только в воскресенье. Спасибо.
Глянул вашу библиотеку: 3 и 4 не подключены, подходит только вариант с плагином SPI. Или подпояться к ножкам 33 и 34.
Я уже не помню, какие ножки за что отвечают, но если про последовательный порт, то он не разведен на самом шилде (также и на модуле, который показан ниже). Т.е. вариант только один - через SPI.
Начинаю думать что мой модуль вообще не способен воспроизводить MIDI. Перепробовал кучу вариантов, ни один не произвел ни звука.
Подскажите, пожалуйста, куда подключить выход МИДИ клавы? К ардуино же? Если клава не ЮСБ, то видимо через отпрон прямо на RX? Но к коде я вообще не вижу чтения Uart....
А ви с какой целью интересуетесь?
В смысле?)) Тоже хочу сделать такое как тс..
Ну, тогда вопросы к ТС.