Juno Gi Editor
Juno Gi Editor
What they have provided is a midi specification, and this should really be enough for a basic editor.
I started a project, gi_editor that parses the midi spec, and provides a library of each midi address.
At the moment, it is capable of listening to the Gi and listing all of its SysEx MIDI events while providing meaningful descriptions etc...
At the moment I've only completed the SysEx parser and written a small test application. Next, I will be working on a TUI that will expose all of the Gi's options on a screen.
Saving/restoring patches is then easy, and we can share our patches around like the Juno G users can.
I've attached the sources so far, but be concious that this is still very much a work in progress.
Cheers.
Re: Juno Gi Editor
Keep up the good work, I'm sure there are plenty out there that would love to get their hands on this. It seems to me, that in this day and age, every professional (even entry level) keyboard from a major manufacturer (like Roland) should have a software based editor included with it! It should be part of the development of the product from R&D and up. It seems that the rest of the world has advanced technologically in the past 20 years but these keyboard manufacturers are still climbing out of the dark ages of the late 80s!
Keep us posted on your progress. Price it well and I'll buy it!
Keep us posted on your progress. Price it well and I'll buy it!
Re: Juno Gi Editor
Very Cool! I attempted to make the program with the following error.
/home/steven/juno$ make
gcc -MM -D_GNU_SOURCE common.c libgieditor.h > .depend
make: *** No rule to make target `midi_addresses.c', needed by `midi_addresses.o'. Stop.
Are there package dependicies that I do need to install? Using Debian Squeeze.
-Steven Kelley
/home/steven/juno$ make
gcc -MM -D_GNU_SOURCE common.c libgieditor.h > .depend
make: *** No rule to make target `midi_addresses.c', needed by `midi_addresses.o'. Stop.
Are there package dependicies that I do need to install? Using Debian Squeeze.
-Steven Kelley
Re: Juno Gi Editor
Hi Steven,
You need to build midi_addresses.c from the roland manaul (download it from their website).
Then go into /manual_parse/ and symlink the manual pdf as midi_manual.pdf (or just rename it).
Then run make and it will build a 40MB! file called midi_addresses.c. You can then build the rest of the program. I did this so that there are no issues of redistributing Roland's copyrighted documents.
I'm currently in the process of re-ordering the midi_address database, so that it'll be a more reasonable 4MB.
There was also a bug in the jack code that I've since fixed. I'll repost as soon as the changes are complete.
Cheers.
You need to build midi_addresses.c from the roland manaul (download it from their website).
Then go into /manual_parse/ and symlink the manual pdf as midi_manual.pdf (or just rename it).
Then run make and it will build a 40MB! file called midi_addresses.c. You can then build the rest of the program. I did this so that there are no issues of redistributing Roland's copyrighted documents.
I'm currently in the process of re-ordering the midi_address database, so that it'll be a more reasonable 4MB.
There was also a bug in the jack code that I've since fixed. I'll repost as soon as the changes are complete.
Cheers.
Re: Juno Gi Editor
OK, here is today's version.
Much improved data base structure.
The dependancies are pdfedit, flex, bison, gcc, make ...
Much improved data base structure.
The dependancies are pdfedit, flex, bison, gcc, make ...
- Attachments
-
- gi_editor.tar.bz2
- (14 KiB) Downloaded 484 times
Re: Juno Gi Editor
I downloaded JUNO-Gi_OM.pdf from the Roland site. (Is this the correct manual?) I also tried the procedure with JUNO-Gi_MI.pdf. Both gave errors. Here are the results from trying the OM pdf file:
make
gcc -MM -D_GNU_SOURCE dump_tree.c midi_tree.h > .depend
pdftotext midi_manual.pdf tmp.txt -raw -nopgbrk
./trim.sh tmp.txt midi_addresses.txt
sed: -e expression #1, char 12: invalid usage of line address 0
patch midi_addresses.txt addresses.patch
patching file midi_addresses.txt
Hunk #1 FAILED at 16.
Hunk #2 FAILED at 58.
Hunk #3 FAILED at 62.
Hunk #4 FAILED at 66.
4 out of 4 hunks FAILED -- saving rejects to file midi_addresses.txt.rej
make: *** [midi_addresses.txt] Error 1
make
gcc -MM -D_GNU_SOURCE dump_tree.c midi_tree.h > .depend
pdftotext midi_manual.pdf tmp.txt -raw -nopgbrk
./trim.sh tmp.txt midi_addresses.txt
sed: -e expression #1, char 12: invalid usage of line address 0
patch midi_addresses.txt addresses.patch
patching file midi_addresses.txt
Hunk #1 FAILED at 16.
Hunk #2 FAILED at 58.
Hunk #3 FAILED at 62.
Hunk #4 FAILED at 66.
4 out of 4 hunks FAILED -- saving rejects to file midi_addresses.txt.rej
make: *** [midi_addresses.txt] Error 1
Re: Juno Gi Editor
The file that you want is the "MI" one. It is entitled: "JUNO-Gi MIDI Implementation".
Let me see the errors you experienced with that file.
Cheers.
Let me see the errors you experienced with that file.
Cheers.
Re: Juno Gi Editor
/home/steven/juno/gi_editor/manual_parse$ make
gcc -MM -D_GNU_SOURCE dump_tree.c midi_tree.h > .depend
pdftotext midi_manual.pdf tmp.txt -raw -nopgbrk
./trim.sh tmp.txt midi_addresses.txt
patch midi_addresses.txt addresses.patch
patching file midi_addresses.txt
Hunk #1 succeeded at 15 (offset -1 lines).
Hunk #2 succeeded at 309 (offset -1 lines).
Hunk #3 succeeded at 325 (offset -1 lines).
Hunk #4 succeeded at 341 (offset -1 lines).
rm -f tmp.txt
flex -s -o manual_scanner.c --header-file=manual_scanner.h manual_scanner.l
bison -d -o manual_parser.c manual_parser.y
gcc -Wall -Wno-unused-result -O0 -g -o dump_tree -D_GNU_SOURCE \
-DUSE_LOG=1 dump_tree.c manual_scanner.c manual_parser.c ../common.c ../log.c class_map.c
manual_scanner.c:1210: warning: âyyunputâ defined but not used
manual_scanner.c:1251: warning: âinputâ defined but not used
./dump_tree > midi_addresses.c 2> midi_addresses.h
make: *** [midi_addresses.c] Error 134
------------
midi_addresses.c is blank.
------------
$ cat midi_addresses.h
dump_tree: ../log.c:43: common_log: Assertion `logfile != ((void *)0)' failed.
Aborted
------------
Using Debian Squeeze
------
$pdftotext -v
pdftotext version 0.12.4
-----
$ bison -V
bison (GNU Bison) 2.4.1
-----
$ pdfedit --version
0.4.5-20100603071400
-----
gcc version 4.4.5 (Debian 4.4.5-8)
-----
GNU Make 3.81
gcc -MM -D_GNU_SOURCE dump_tree.c midi_tree.h > .depend
pdftotext midi_manual.pdf tmp.txt -raw -nopgbrk
./trim.sh tmp.txt midi_addresses.txt
patch midi_addresses.txt addresses.patch
patching file midi_addresses.txt
Hunk #1 succeeded at 15 (offset -1 lines).
Hunk #2 succeeded at 309 (offset -1 lines).
Hunk #3 succeeded at 325 (offset -1 lines).
Hunk #4 succeeded at 341 (offset -1 lines).
rm -f tmp.txt
flex -s -o manual_scanner.c --header-file=manual_scanner.h manual_scanner.l
bison -d -o manual_parser.c manual_parser.y
gcc -Wall -Wno-unused-result -O0 -g -o dump_tree -D_GNU_SOURCE \
-DUSE_LOG=1 dump_tree.c manual_scanner.c manual_parser.c ../common.c ../log.c class_map.c
manual_scanner.c:1210: warning: âyyunputâ defined but not used
manual_scanner.c:1251: warning: âinputâ defined but not used
./dump_tree > midi_addresses.c 2> midi_addresses.h
make: *** [midi_addresses.c] Error 134
------------
midi_addresses.c is blank.
------------
$ cat midi_addresses.h
dump_tree: ../log.c:43: common_log: Assertion `logfile != ((void *)0)' failed.
Aborted
------------
Using Debian Squeeze
------
$pdftotext -v
pdftotext version 0.12.4
-----
$ bison -V
bison (GNU Bison) 2.4.1
-----
$ pdfedit --version
0.4.5-20100603071400
-----
gcc version 4.4.5 (Debian 4.4.5-8)
-----
GNU Make 3.81
Re: Juno Gi Editor
Ahh, I see. I had some directory names in log.h that were specific to my system.
The uploaded file should fix it.
Good luck!
The uploaded file should fix it.
Good luck!
- Attachments
-
- log.h
- (1012 Bytes) Downloaded 440 times
Re: Juno Gi Editor
Same error.
Core was generated by `./dump_tree'.
Program terminated with signal 11, Segmentation fault.
#0 0x080494ce in main () at dump_tree.c:382
382 toplevel_addresses = get_class_address_list(midi_tree->first);
-----
$ cat midi_addresses.h
/* Parsed midi addresses.
* This file is automatically generated, DO NOT MODIFY
*/
extern midi_address libgieditor_midi_addresses[];
Segmentation fault
=============
$ cat midi.log
Sat Jun 9 12:46:23 2012
Errors encountered reading midispecification
These can probably be safely ignored
============
Core was generated by `./dump_tree'.
Program terminated with signal 11, Segmentation fault.
#0 0x080494ce in main () at dump_tree.c:382
382 toplevel_addresses = get_class_address_list(midi_tree->first);
-----
$ cat midi_addresses.h
/* Parsed midi addresses.
* This file is automatically generated, DO NOT MODIFY
*/
extern midi_address libgieditor_midi_addresses[];
Segmentation fault
=============
$ cat midi.log
Sat Jun 9 12:46:23 2012
Errors encountered reading midispecification
These can probably be safely ignored
============
Re: Juno Gi Editor
By the way Steven, thanks for posting these errors, I need someone to test this code on other systems.
The error you're getting seems to suggest that there aren't any address lines parsed. Are you able to upload your midi_addresses.txt file? The fact that the patching process has an offset of 1 line is curious.
Thanks.
The error you're getting seems to suggest that there aren't any address lines parsed. Are you able to upload your midi_addresses.txt file? The fact that the patching process has an offset of 1 line is curious.
Thanks.
Re: Juno Gi Editor
Or perhaps, just the first two or three lines?
Re: Juno Gi Editor
I get the same error if the line "| Start | |" is not the first line of midi_addresses.txt.
This could have something to do with different versions of grep??
I've uploaded trim.sh which echos the lines that it will delete.
This could have something to do with different versions of grep??
I've uploaded trim.sh which echos the lines that it will delete.
- Attachments
-
- trim.txt
- rename to trim.sh and replace the version in manual_parse. This forum doesn't allow the .sh extension for some reason.
- (282 Bytes) Downloaded 427 times
Re: Juno Gi Editor
Hello - I replaced trim.sh. I did not noticed any difference from that change, nothing additional was echoed to the screen
You are absolutely correct, the midi_addresses.txt files does not contain | Start | | as the first line. I manually added | Start | | and forced the rebuild of midi_addresses.c by deleting midid_address.c file. That worked, then I successfully made read_midi. Now I need to add the other prereq packages to test the functionality.
$ grep --version
GNU grep 2.6.3
Are you using a different greg?
You are absolutely correct, the midi_addresses.txt files does not contain | Start | | as the first line. I manually added | Start | | and forced the rebuild of midi_addresses.c by deleting midid_address.c file. That worked, then I successfully made read_midi. Now I need to add the other prereq packages to test the functionality.
$ grep --version
GNU grep 2.6.3
Are you using a different greg?
Re: Juno Gi Editor
Cool, glad you got it compiled.
My grep version is 2.9, although I was thinking that the difference is more likely to be in pdftotext. As far as I'm aware, there are two versions, the poppler version and the xpdf version.
I have: pdftotext version 0.18.4.
My grep version is 2.9, although I was thinking that the difference is more likely to be in pdftotext. As far as I'm aware, there are two versions, the poppler version and the xpdf version.
I have: pdftotext version 0.18.4.