Feeds:
Posts
Comments

Posts Tagged ‘technical’

I was in my local friendly music shop asking about other things and, for one reason or another, ended up playing with the Roland BOSS SY-300 Guitar Synth pedal. The guy in the shop was enthusing about how well it tracked guitars – including slides and vibrato and my  next thought was “yeah yeah, but how well would it work on a violin?” In my experience tracking a violin pitch is very very hard. I’ve seen nothing that would do it reliably in either hardware or software, and it’s something I’ve been looking for for a long time now.

To cut a long story short .. IT WORKS! it even tracks the octave violin (which is tuned an octave below a normal violin so, on a 5 string instrument, makes it go down to the bottom C string of a cello). I stayed in the shop for a couple of hours playing with my violins on the device and was simply astonished about how well it worked. It is possible to confuse it, either with bad technique or pulling too hard on the low octave C string, but those are hardly major problems for normal use. And by bad technique I don’t mean tuning – if you play out of tune, the SY-300 will simply play the pitch you hit, I mean not placing your finger cleanly on the string which makes a dull grinding note on the violin anyway. If you slide all the way down a string – the SY-300 will follow you, if you use wide or narrow vibrato – the SY-300 will follow you. If you play loud to soft to loud in a single bow stroke – the SY-300 will follow you.

Amazing.

The guy in the shop thought it worked even better with violin that guitar because of the expressive effect of the bow on amplitude, and the ability to play long notes easily, it turns the SY-300 into a very expressive synth. It’s interesting to note that playing a synth via a violin (or guitar for that matter) doesn’t sound like playing a synth from a keyboard, it transfers the intrinsic ‘feel’ of the instrument onto the sounds made by the synthesizer – so in no way is it a replacement for a keyboard synth, it’s something totally different.

You need good synthesis knowledge to get the most out of the pedal, a lot of the factory presets are very guitar-orientated, made for a plucked instrument and often with lots of distortions added, so to get the best from a violin you need to get in there and make your own patches. As a violinist who also plays synthesizers this is easy enough for me, but people less familiar with subtractive synthesis might find it hard work to get what they want from it. This really is an expert’s device/

The architecture is slightly odd. It has 3 oscillators (with the standard virtual-analogue waveforms) each with its own filter, LFO and sequencer. Yes, the LFOs, filters and sequencers are per-oscillator! There are also 3 global LFOs (called Waves) that can be applied to the built in effects as well as the oscillator parameters. There are 4 effects slots which can be placed almost anywhere you like on one of two synth busses or the dry channel, and are of very good quality – as you would expect from a BOSS device. There is a good range of the usual effects, delays, reverbs, phasers, flangers & distortions – all with a good range of options. And also there are combined effects (delay+reverb for example) so you can make full use of those four slots. Most of the parameters of the effects can be controlled from the Wave LFOs. Although the way you configure those is rather clunky.

There are a few downsides. While it has MIDI in & out sockets (including USB) it does not send or receive MIDI notes, only control change and program change. I would also have liked more waveforms than just the standard saw,triangle, sine, square and maybe some interaction between the waveforms (eg FM). Also the software editor doesn’t work on Mac OS/X Sierra. Even the driver (which is supposed to work) crashed my system … and WHY OH WHY do MIDI devices need drivers anyway when they should just be class-compliant?! sigh.

But generally I think it’s an amazing device and if you’re a violin player who’s also into synthesis I strongly recommend you have a look at it.

I made a video about it with more information and examples

Read Full Post »

NOTE: This post is obsolete – Roland have released a firmware update for the JU-06 (and the other Boutique synths) that allows them to send and received MIDI CCs for their various functions, and these are also documented. See here for details.

 

I ‘accidentally’ bought one of the Roland ‘Boutique’ synths last week – the JU-06 one. It’s a nice instrument with a simple front panel and a good sound. It has a few annoying limitations, only 4 voice polyphony and the small stereo output jack but generally I rather like it.

One of the things I immediately noticed was missing, slightly unusual in a digital synth, was any obvious (or, at least, documented) way to control it remotely – either from a DAW or control surface. Moving the controls sent no MIDI CC values and no CC value I sent to the device made any difference apart from the usual documented ones of mod wheel and sustain pedal. Slightly disappointed, I left it at that for a few days.

Then, yesterday, Rob Schroeder on the Synthesizer Freaks Facebook group posted a (very) rough outline of what the SYSEX format was for the boutique range of synths and I started playing. Initially I could get nothing from that either but a bit more research revealed that the synth only sends those SYSEX messages when chained to another similar device for extra polyphony. It also only sends these messages down the 5 pin DIN MIDI socket – not the USB – but that gave me enough information to work on.

I plugged in a MIDI interface, enabled chaining and started moving sliders and pressing buttons. BINGO – numbers started appearing on the computer screen I was monitoring it from! I now had (nearly) all of the information I needed. The last bit of information to get was the checksum. This was very easy to establish as it’s a standard calculation based on the contents of the whole message (except for the header F0 and trailing F7 bytes).

So, here they are. I only have the JU-06 but I’m pretty sure that the other 2 synths in the Boutique range behave similarly and will be as easy to reverse-engineer. Although the synth only sends these sysexes over the 5 pin socket, it’s happy to receive them over the USB link, which makes it more useful.

The SYSEX message looks like this (all values are in hex)

F0
41 (Roland SYSEX number)
10 (device ID)
00 (modelID)
00
00
1D (Product code for the JU-06 )
12
03
00
address MSB
address LSB
value MSB
value LSB
checksum
F7

For sliders, the value is an 8 bit number (0-255) split into two, so the bottom 4 bits are sent in the LSB and the top 4 bits in the (bottom half of the) MSB. For switches the values are 1 or 0 as shown.

Addresses for the functions are as follows:

LFO Rate:       0600
LFO Delay Time: 0602
DCO Range:      0700 (values 0,1,2)
DCO LFO:        0702
DCO PWM:        0704
DCO LFO/Man:    0706 (values: Man:0 LFO:1)
DCO Sub:        070C
DCO noise:      070E
DCO Wave: PW:   0708   (values 0 1)
DCO Wave: Saw:  070A      “   “
HPF Freq:       0800
VCF Freq:       0802
VCF Res:        0804
VCF Env invert: 0806 (values 0 1)
VCF Env:        0808
VCF LFO:        080A
VCF KYBD:       080C
VCA Mode:       0900 (0=gate, 1=env)
VCA Level:      0902
Env A:          0A00
Env D:          0A02
Env S:          0A04
Env R:          0A06
Chorus:         1000 (off=0, A=1, B=2, both=3)
Delay level:    1002 (values 0->0xF)
Delay time:     1004   “ “     “ ”
Delay FB:       1006   “ “     “ "
Bend Range:     1108

The checksum calculation is expressed simply in C as follows

static unsigned char roland_cksum(unsigned char *data, int len)
{
        int i;
        unsigned int cksum = 0;

        for (i=0; i<len; i++) {
                cksum += data[i] & 0xFF;
        }
        cksum = (0x100 - cksum) & 0x7F;

        return cksum;
}

for Max users, here’s an sxformat string you can use. It takes 4 inputs (sorry for the line break):

sxformat 240 65 16 0 0 0 29 18 3 0 / is $i1 / is $i2 / is $i3 
         / is $i4 / is checksum(1,13,2) & 127 / 247

So now I can control the synth from my Quneo controller along with other synths or even from the large MIDI keyboard using some custom software I’ve written for my host Raspberry Pi system. One of the especially nice things about this is being easily able to change the delay times – which is quite fiddly on the synth itself 🙂

 

Read Full Post »