Page 1 of 1

New command line tool

Posted: Thu Apr 30, 2015 11:11 am
by elmquist
I am pleased to announce the first public release of a command line tool to generate sysex messages for configuration of QuNeo and generate tool/sysex documentation in LaTeX format.

Please take a look at the attached archive files. Both zip and tar.gz format archives with identical contents are available for user convenience.

To build the tool take a look at the Makefile. The tool is written in C++11 which on some systems require a special compiler flag. Its currently assumed that users know their programming and Makefile craft but feel free to ask questions (of cause!).

The tool documentation is available as a pdf document and furthermore in source form in the doc subdirectory of the archives which also contains a sysex document draft. To format the documentation without using the commercial Lucida Bright font set require minimal editing of the doc/doctool.sty file.

This first posting will be updated whenever new versions are released.

Version 0.2.1:
- Minor fix inspired by the issues slinky found in version 0.2.

Version 0.2:
- First public release: still somewhat drafty so use at own risk!
- Not all parameters are documented yet and some may have wrong value ranges.
- Updating multiple presets in one go may fail on some systems!
- Command line features will surely benefit from a redesign.
- Json files are not supported yet.

Re: New command line tool

Posted: Thu Apr 30, 2015 11:53 am
by slinky
Thanks!! 8-)

BTW here's a tiny patch to fix a few snags.
Apply in the kmisetup-0.2 directory with "patch -p1 < kmisetup-fix.patch"

(Unpack the patch, the forum software won't let attach .patch files...)

How about putting this into github or such to get more collaboration going?

Re: New command line tool

Posted: Thu Apr 30, 2015 12:21 pm
by elmquist
Thanks for patches! Interesting snags you found as the code compiles and works just fine on my (older) system. What Linux and GCC version are you using?

As for github that requires me to read up on git first! Another and perhaps not so obvious aspect of collaboration is license terms. If this code base ever should be used in an application in the apple app store the GPL licence is not an option. Which means having a limited set of contributors are best. But on the longer term surely some kind of collaboration would be useful. Not at least if someone wants to build a new GUI.

Will be interesting to see how many people will use this tool and if KMI wants more of their products supported including using it for generation of official sysex documentation.

Re: New command line tool

Posted: Thu Apr 30, 2015 12:54 pm
by slinky
For the build machine I used the specs are g++ 4.9.1 on Ubuntu 14.10.

In some cases stdio.h seems to include getopt.h ("#if defined __USE_XOPEN && !defined __USE_XOPEN2K && !defined __USE_GNU") but I don't know if that is happening here. Are you building with a Mac or something?

Anyhow, it's probably something with the compiler, since he also auto-guesses the missing type to be int.

Not sure I completely understood the part about limited set of contributors. IANAL but I liked Ben Matlock on TV - if you are thinking of dual licensing GPLv3 with another license, you can do it as long as you hold the copyright, for other contributors you would require a CLA from them transferring their copyrights to you or specifically allowing you to dual-license their contributions or whatever. Of course anyone could now fork the sources as they are released and under GPLv3. :mrgreen:

PS. For studying git, I might recommend, it has nice pictures and costs nothing to read online. Chapter 3 is most important, especially 3.2, 3.3 and 3.4.

Re: New command line tool

Posted: Sat May 02, 2015 6:16 am
by elmquist
@slinky: Thanks again for the feedback and patch!

The "opterr" variable is an external variable from the runtime library. Please see getopt(3) for more information. So the patch is not entirely correct. Conclusion? While QuNeo is beer proof it seems that this code base is not! ;-)

License selection and contributor management is all about planning for the longer term. It would be really inconvenient to act in ways that prevents the use of the code base in Apple App Store applications. GPLv3 is a good license in many ways. However it may not useable in all situations so the limited contributor approach is the easiest path.

The problems this tool tries to solve is openness, availability and generation of sysex documentation.

Thanks a lot for the git reference. The pdf file can be downloaded on the site so its nice for offline reading as well! Just click on the pdf icon to the right on the link you provided.

PS: Slightly updated version 0.2.1 has been posted.

Re: New command line tool

Posted: Sat May 02, 2015 11:58 am
by slinky
Yeah, the int for getopt was superfluous! The declaration (with no definition) tripped me.. of course it's in libc. :oops: