VController - VC-edit development

Started by sixeight, June 22, 2018, 11:42:39 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

sixeight

Picking up the discussion from https://www.vguitarforums.com/smf/index.php?topic=17561.0 and continuing it here...

Quote from: sixeight on June 18, 2018, 11:27:37 AMA very interesting discussion. I still want to do an editor for the VController one day, but I am getting lost in all the options. And it looks like the programming for a GUI is quite complicated. Maybe it is not so bad once you have started, but these bits of code look very daunting to me.

Quote from:  philjynx on June 20, 2018, 08:02:07 AMUnlike Arduino IDE which doesn't need to be told such things, codelite and codeblocks need to be told where everything they need is. I nearly gave up at an early stage! Suggest you go to the forum and get a little help, your problem is the reason I gave up on CodeBlocks, that and too many IDE crashes.Once you get over the first hurdle or two you'll wonder why there was a problem. Keep at it! There are a couple of macros you need in your compile and link commands, I forget them at the mo. Codelite, wxwidgets and I think CodeBlocks have good forums. I'd go on but I don't think this is the right place for an in depth IDE discussion. I'll pm some stuff if you like.

Well some slow tedious progress. I have both Code::blocks and Codelite working with wxWidgets on Windows and both do not work on Mac with wxWidgets. For now I will not pursue the Mac option.

What ide to choose?
Code::blocks seems to be better documented, but the Mac version is outdated. I send an invite to the Code::blocks forum, but never received a confirmation email.

Code lite is harder to get started. It looks less like Visual Basic in Access, where I had my original programming experience. I can't find a good tutorial on how to build a GUI.

Can't get rtmidi to work in both environments...

Programming Arduino is so much easier than this. I will have to take a break from this all, because it is doing my head in.

BladesToyShop

It's "alien" because you're used to working at a much lower level, but once you start seeing the similarities instead of the differences, it will make more sense.

sixeight

OK. I decided to install QT on my Mac. I had it installed in half an hour and it just worked straight away on my Mac. I think I am done with Code:blocks and Codelite.

Just to be clear on QT. As long as the software I create on this is open source, there is no problem, right?

vtgearhead

Quote from:  sixeight on June 23, 2018, 08:41:51 AM
OK. I decided to install QT on my Mac. I had it installed in half an hour and it just worked straight away on my Mac. I think I am done with Code:blocks and Codelite.

Just to be clear on QT. As long as the software I create on this is open source, there is no problem, right?

IANAL and have not read the license in depth, but that's my understanding.

BladesToyShop

Quote from:  sixeight on June 23, 2018, 08:41:51 AM
OK. I decided to install QT on my Mac. I had it installed in half an hour and it just worked straight away on my Mac. I think I am done with Code:blocks and Codelite.

Just to be clear on QT. As long as the software I create on this is open source, there is no problem, right?

I've never heard of anyone having issues.

sixeight

Finally there is some progress on my programming attempts in QT creator. I built a remote control for the VController. Button presses are sent over MIDI to the VController and LED and display states are sent back.



Next step is to code the actual editor. This is actually quite hard. Maybe Gumtown or CodeSmart can enlighten me on the best approach for this. I am looking at the QT data models, but I suffer from information and option overload. I really don't know what to choose and how to get it working.

gumtown

Try this code
https://sourceforge.net/projects/grfloorboard/files/VGWC-Edit/

It was for a PIC based experimental wireless guitar midi controller editor, a basic incarnation of the FxFloorBoard editors.
The main objects are an *.xml structure of the sysx memory map (midi.xml) ad a bulk sysx data file (default.syx).
With this code, to create a midi controller object (button, knob, combobox) all you need is to just enter an object type with a 3 or 4 byte address parameter to create it.
Feel free to use the code for your project.

It builds and runs on windows, mac, Linux.
The project editor was originally to setup a midi controller with knobs and buttons, to be programmable to do anything midi (cc#, PC, note on/off etc), allowing chosen options/functions to be saved into the hardware PIC midi controller via midi.

To look at the XML document properly, you need a good XML document editor to view it in 'grid' mode, such as Altova xmlspy.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

sixeight

Quote from:  gumtown on July 02, 2018, 12:13:40 PM
Try this code
https://sourceforge.net/projects/grfloorboard/files/VGWC-Edit/

It was for a PIC based experimental wireless guitar midi controller editor, a basic incarnation of the FxFloorBoard editors.
The main objects are an *.xml structure of the sysx memory map (midi.xml) ad a bulk sysx data file (default.syx).
With this code, to create a midi controller object (button, knob, combobox) all you need is to just enter an object type with a 3 or 4 byte address parameter to create it.
Feel free to use the code for your project.

It builds and runs on windows, mac, Linux.

Thanks. I have been looking at this code,  as you have offered it to me before.  But I find it very hard to make sense of it. The problem is obviously me. I don't know what a lot of the commands do and I cannot grasp how things are tied together. I feel like I am looking at details without knowing the plan. But you say midi.xml is the key. So I will start there...

sixeight

I have been quiet for quite awhile on this subject, because I was busy programming. I had to learn to use the Qt framework and make all the necessary mistakes. But the editor is almost ready. Just sorting out the last few issues and having some beta testing done. Also the firmware of the VController needs some final checking. As it is growing in size and options, testing is taking more time.

I am away a couple of days on holiday, but I hope to release the firmware and editor soon. Also I need to produce some videos on the new features of the VController.  Check this space.

And thank you Elantric for allowing me some more space on this forum There is special section on the VController now, so can run multiple topics on different aspects of the VController.

Schultzie29466

Really getting to know my VC-Touch!  Love it.  For Setlists:  I am looking for the best option for navigation.  I am thinking your idea for the Switch 0 on a Page would be great

OR

when a setlist is selected, whatever type of setlist it is (Page, Song, Device) is the mode that is automatically selected and the first "item" in that setlist is opened.  I feel like with all the pages I have created every page needs to have some "global" navigation built into it.  Or I am pressing three buttons to get where I want to be.

sixeight

#10
Quote from: Schultzie29466 on November 01, 2023, 12:37:33 PMReally getting to know my VC-Touch!  Love it.  For Setlists:  I am looking for the best option for navigation.  I am thinking your idea for the Switch 0 on a Page would be great

OR

when a setlist is selected, whatever type of setlist it is (Page, Song, Device) is the mode that is automatically selected and the first "item" in that setlist is opened.  I feel like with all the pages I have created every page needs to have some "global" navigation built into it.  Or I am pressing three buttons to get where I want to be.

Switch 0 is the "on page select" field which is already implemented.

The idea of automatically changing mode when selecting a setlist is a great one. I will look into it. It should be quite easy to implement.

The "global navigation" is actually in the top five switches of the VC-touch. These are set in the default page, but they can be changed and can be overwritten by alternative functions on other pages. I wanted the VC-touch to be fully programmable, so you can decide which functions should be easily accessible. So if you use setists a lot, you can make that a primary function of a certain switch.