XVA1 build and learn

I decided to move to my own thread rather than adding to the other thread.

After double checking things I have got the synth working fine through XLoad and responding as it should.
I was able to go through the patches today using the XLoad commands “# n” and then “#r 0” gave me The King as the current patch, I then cycled through a couple.

I then hooked up one of my stfm32 midibox cores and attached an encoder to the Din and wrote this code to its own .NGC file


ENC n= 1 sr=2 pins=0:1 type=non_detented

EVENT_ENC id=1 type=ProgramChange chn= 1 lcd_pos=1:1:1 label=“ENC #%3i %3d%B”

The first line defines that there is an encoder attached to the second shift register “sr=2” at the first two pins with the third to gnd. Its function is ProgramChange over midi channel 1 the rest of the code just display ENC1 and its current value of 0-127 on the screen with a rising bar next to it.

the encoder sends this:

however when a program change command is sent to the xva1 the synth doesnt play anything from the patch it is totally silent.

For some reason it doesnt like midi in program changes but happily accepts XLoad functions to change the patch.

This should work and change the patches via the encoder midi into the synth.

one other thing, between the eeprom and the optocoupler on an image from the website, that doesnt look like a resistor to me more like a cap.


Any suggestions?


spent this morning reflowing the mount board i made and checking the connections with my meter. Everything is as it should be, checked the resistor values, they were correct correct diode and placement in circuit. Correct eeprom type and also the optocoupler is correct. Checked continuity from the midi output through the cable to the 5pin din all good.

So there is no issue there for it not to accept the midi program change.

The build responds via midi and also responds to midi #cc, I have tried out most of the #cc controls with it now and all is good.

The other option is to use sys-ex to change programs, so I will try that later and see what happens, it’s just strange why it wont work with a normal program change, and just gives me nothing. Further down the rabbit hole I go!!


still having issues with the program change so i did some test using the test apps on Rene’s site.

all passed and the real term test passed too.

still not sure, waiting to hear back from Rene on this.

Even though this is the xva1 the xva2 test still work on this to check the fpga board.



This really was annoying me today, so i grabbed a micro freak synth and conencted it to my computer here and set the knobs to transmit #cc and then ran Midi-Ox to analyse the midi in.

Nothing… very strange, the midi interface light was flashing away but nothing was working…
Checked connections, all is good.

Then I had a little brainwave, grabbed one of my midibox gm5x5 midi interfaces that i have built before, which i know are sound for transmitting and recieving any type of midi data throughput.

Hooked it all up and it worked, all data going through.

Then i hooked up the midbox_NG with the one pre programmed encoder for ProgramChange.
Routed it through Midi_Ox to the XVA1 synth and slowly turned the encoder while playing the synth. Bingo it worked and the patches changed fine.

The issue was the cheap ass chinese midi interface cable i had kicking around i was using. For some reason it did not like non #cc going through it and even then it was selective.

Needless to say it is now residing in the garbage!!

Now me an my son are going to get on designing the front panel and various controllers we want to use for it.

After this he want to do the XFM2…

More to follow as I go!


im looking over the excel spreadsheet for the synth and I am sorry but… there is no reference to the cells and the figure in them.

I have emailed rene asking for more info, but just in case can anyone explain ?

is the yellow cell the high and the grey cell the low? or am i completely wrong on this?
it would have been good to have a information section with a key to this.


1 Like

Those cheap ass usb midi interfaces can be odd with power. I’ve used them for years and always find they work much better if you use a well powered usb hub. Have a search on here as I’m sure this has come up before.

It looks like the affect and then the cc code that addresses the action and the third looks like the max ranges and refinement.
Three columns.
So when you twiddle, that knob will tell you two things; what cc code to instruct and by how much.
Hope that helps.

This is from the sys ex parameters chart there is a high low 7 bit converter on the chart as well. Just no info on what’s what on the full spreadsheet. With no information on how it’s laid out I can’t make head nor tail of it.

Here is the link to the spreadsheet: https://www.futur3soundz.com/s/XVA1_Parameters.xlsm

I assume you’ve seen this, right?

The yellow and grey cells are separate columns, they’re not related.
In the screen shot of the spreadsheet you can see the Midi Modulation parameter for Pitch which correspond to this part of the user guide:

So Midi Pitch Aftertouch modulation has the parameter number 200, and the default value is 128 - which is the next column. If you wanted to change that to something else you’d calculate P1 and P2 as 200, then V1 and V2 to the value you want and send it as a sysex.

Same thing goes for the grey columns which are effects. I.E. Bitcrusher depth is parameter number 380, and in the current patch its value is set to 0. You’d use the same method to calculate the P1/P2/V1/V2 numbers for inclusion in the sysex message if you wanted to adjust that parameter.



It took a few mins and then it clicked into place in the grey matter.

I also edited the spreadsheet calculator to spit out the dec2hex automatically.

All is good now and I can try some out tonight.

Many thanks all.

1 Like


Spent this evening updating the core and trying out some of the sysex, all is good and working.

Gave the ng core its own name and id, need to edit the mios boot tomorrow for the right displays (ssd1306)
Now I have to choose which controls wil be used, the controls can be banked so they have multiple uses instead of putting loads of potentiometers and encoders etc on the panel.

Getting there.


Breath control is straightforward and ads so much expression to a controller as does a theremin. I look forward to seeing the result.

1 Like