VS1053b / VS1103b MIDI Controls

Designing hardware that uses VLSI Solution's devices as slave codecs such as an external MP3 decoder chip for a host microcontroller.

VS1053b / VS1103b MIDI Controls

Postby pasi » Thu 2011-11-17 13:23

I have collected the implemented midi messages here. Some like tempo are used in file mode only.
  • meta: 0x51 : set tempo
  • other meta: MidiMeta() called (user code can send out lyrics and other meta information)
  • SysEx device control: 0x01 : master volume (only in file mode!)
  • channel message: 0x80 note off, 0x90 note on, 0xc0 program, 0xe0 pitch wheel
  • channel message 0xb0: parameter
    • 0x00: bank select (0 is default, 0x78 and 0x7f is drums, 0x79 melodic)
    • 0x06: RPN MSB: 0 = bend range, 2 = coarse tune
    • 0x07: channel volume
    • 0x0a: pan control
    • 0x0b: expression (changes volume)
    • 0x0c: effect control 1 (sets global reverb decay)
    • 0x26: RPN LSB: 0 = bend range
    • 0x40: hold1
    • 0x42: sustenuto
    • 0x5b effects level (channel reverb level)
    • 0x62,0x63,0x64,0x65: NRPN and RPN selects
    • 0x78: all sound off
    • 0x79: reset all controllers
    • 0x7b, 0x7c, 0x7d: all notes off

The channel-specific level and overall 'duration' of reverb can be adjusted, "expression" adjusts the volume of audible notes on that channel, and pitch-wheel adjusts the note frequencies.

All 16 channels and multiple notes per channel are available. The total simultaneous audible notes depends on the clock frequency and what instruments are used (different instruments take varying amounts of processing power).
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
User avatar
pasi
VLSI Staff
 
Posts: 692
Joined: Thu 2010-07-15 16:04

Re: VS1053b / VS1103b MIDI Controls

Postby microtherion » Thu 2012-01-26 5:12

What's the difference in sound between bank 0 and bank 0x79? I went through all the instruments, playing a minor chord, and at best, the two banks sounded identical. For some instruments, bank 0x79 played only one of the three notes in the chord.

Are there parameter settings in which bank 0x79 sounds better than bank 0?
microtherion
Beginning User
 
Posts: 1
Joined: Thu 2012-01-26 5:09

Re: VS1053b / VS1103b MIDI Controls

Postby pasi » Sat 2012-01-28 18:15

microtherion wrote:For some instruments, bank 0x79 played only one of the three notes in the chord.


All melodic banks should behave the same. The chord problem may be something related to note dropping (when notes are quiet enough or there are too many, the quietest ones are removed) or some bug in the real-time code.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
User avatar
pasi
VLSI Staff
 
Posts: 692
Joined: Thu 2010-07-15 16:04

Re: VS1053b / VS1103b MIDI Controls

Postby gmccomb » Sun 2012-04-29 18:39

For master volume I take it this is a SysEx command, and follows normal byte sequence for these. All of the other MIDI control statements appear to be working except this one. Do you have an example SysEx byte sequence for this?

In case it matters, I'm using a VS1053 and RT MIDI via UART. For testing I'm using only one channel with just one or two notes, turning them on and off after one second delays.
gmccomb
User
 
Posts: 10
Joined: Wed 2012-04-04 2:16

Re: VS1053b / VS1103b MIDI Controls

Postby fundorin » Wed 2012-05-02 16:11

Am I right that there's no datasheet or list of possible midi commands for VS1103и except this forum message?
fundorin
Beginning User
 
Posts: 1
Joined: Wed 2012-05-02 16:10

Re: VS1053b / VS1103b MIDI Controls

Postby pasi » Fri 2012-05-04 18:49

gmccomb wrote:For master volume I take it this is a SysEx command, and follows normal byte sequence for these. All of the other MIDI control statements appear to be working except this one


I'm guessing that the following sequence would work in file-mode. However, the real-time parser is much simpler and it seems it ignores all sysex messages (skips everything until the 0xf7 marker).

0xf0 //sysex
0x06 //<varinum> bytes to read
0x00 //realtime/non-real-time
0x00 //device ID (ignored)
0x04 //ID1 4: device control
0x01 //ID2 1: master volume
0x00 //volume LSB ignored
vol //volume MSB used
0xF7 //sysex end mark

Do you have SCI connected? I could provide a workaround to directly write the master volume variable.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
User avatar
pasi
VLSI Staff
 
Posts: 692
Joined: Thu 2010-07-15 16:04

Re: VS1053b / VS1103b MIDI Controls

Postby gmccomb » Tue 2012-05-08 0:37

SCI isn't connected and can't be. For this particular project (it's for an article in a popular magazine here in the US) we're using the SparkFun MIDI Instrument Shield, which only supports UART RT-MIDI.
gmccomb
User
 
Posts: 10
Joined: Wed 2012-04-04 2:16


Return to Slave Decoder Applications

Who is online

Users browsing this forum: No registered users