Fsex - Fantom (and Juno-G) SysEx utilities

Fsex is a spartan set of command-line utilities (currently fsex and flib) written to transfer data from and to the Roland Fantom family of synthesizers (Fantom-S, Fantom-X and Juno-G) and manipulate Roland librarian files. The main motivation for writing the utilities was to transfer patches from Linux without the need to boot Windows.

The name is inspired on Vsex, a command-line SysEx dump utility for the Access Virus.



Fsex uses ALSA to communicate with the synthesizer. You need to load the snd-usb-audio module if your synth is connected through USB (a kernel patch is required in kernels 2.6.22 and earlier to recognize the Juno-G). If everything is ok you should be able to see the device using aconnect:

$ aconnect -o
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 20: 'Juno-G' [type=kernel]
    0 'Juno-G MIDI 1   '


Current release is 0.1 (20070708). You can download the tarball or get the development tree with git clone http://helllabs.org/git/fsex.git.

Using Fsex

Fsex/flib can be used to:

Example: fsex can be used to retrieve patches from the synthesizer and save them in a library file.

$ fsex -r USER:2,40-42 PR-A:1-3 New.jgl
* USER: 128 patches
* PR-A: 128 patches
Send to MIDI address 20:0

Receive patches from Juno-G:

USER:0002  PLS  VocoBassline
USER:0040  PLS  Next Step
USER:0041  SBS  JP8 Seq Bass
USER:0042  BTS  RetroSonic 1
PR-A:0001  PNO  Juno-G Grand
PR-A:0002  PNO  Bright Grand
PR-A:0003  PNO  Soft Grand

Create new library: New.jgl

Example: flib can manipulate librarian files in different ways such as splitting a library or merging data from different libraries.

$ flib -e XV_Collection.jgl:1,3 Sineshine.jgl:!1,2,6-16 New.jgl
* XV_Collection.jgl: Juno-G librarian file (1024 patches)
* Sineshine.jgl: Juno-G librarian file (16 patches)

Extract patch from XV_Collection.jgl:
0001  PNO  Standard Pno
0003  PNO  Classique

Extract patch from Sineshine.jgl:
0003  SBS  Vintage Bs 1
0004  PLS  VocoBassline
0005  BTS  OldschoolHip

Create new library: New.jgl

$ flib -l New.jgl
* New.jgl: Juno-G librarian file (5 patches)

Patches from New.jgl:

Pat#  Cat  Patch name   M/P Part  Waveform 1 Waveform 2 Waveform 3 Waveform 4
----- ---- ------------- -- ----- ---------- ---------- ---------- ----------
0001  PNO  Standard Pno  P  -2--  (unset)    JD Piano A (unset)    (unset)
0002  PNO  Classique     P  12--  Ac.Pno f A JD Piano A (unset)    (unset)
0003  SBS  Vintage Bs 1  m  12--  Juno Sqr H Juno Saw H Juno Saw H Juno Saw H
0004  PLS  VocoBassline  m  1234  Juno Saw H Juno Saw H Juno Saw H Juno Saw H
0005  BTS  OldschoolHip  m  1234  106 Bs56   Super Saw  Sine       White Nois

Last update: Sun Jul 8 15:20:27 BRT 2007