-
Notifications
You must be signed in to change notification settings - Fork 3
Roland Fantom S/X and Juno-G SysEx utilities
License
cmatsuoka/fsex
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
____ / __/_______ _ __ / /_/ ___/ _ \| |/_/ / __(__ ) __/> < /_/ /____/\___/_/|_| v0.2 *** EXPERIMENTAL - USE AT YOUR OWN RISK *** *** CURRENT VERSION TESTED ONLY WITH JUNO-G *** Fsex (from Fantom SysEx) is a set of utilities to manipulate libraries and send patches to the Roland Fantom S, Fantom X and Juno-G, written to avoid rebooting to Windows every time I want to transfer patches from and to the synthesizer. The name is inspired by the Virus SysEx dump utility, vsex. Note: Fsex is currently under development and was only tested with the Juno-G, but should work with other devices. Get the latest version using: $ git clone http://helllabs.org/git/fsex.git Send comments and patches to cmatsuoka@gmail.com Kernel patch ============ Linux kernels 2.6.22 and earlier require a patch to properly recognize the Juno-G. Kernels 2.6.23 and later should have Juno-G support already included. See linux-2.6.21-junog.patch for further information. Apply the patch with: # cd /usr/src/linux-${version} # patch -p1 < linux-2.6.21-junog.patch ALSA MIDI client ================ Certain operations require the ALSA MIDI port address where the synthesizer is connected in client:port format. The address can be obtained using the "aconnect" utility: $ aconnect -o client 14: 'Midi Through' [type=kernel] 0 'Midi Through Port-0' client 20: 'Juno-G' [type=kernel] 0 'Juno-G MIDI 1 ' In this case the address of the Juno-G MIDI port is 20:0 or Juno-G:0 -----------------------------[ flib examples ]------------------------------- Listing patches from a librarian file ===================================== flib can be used to list the contents of a .jgl/fxl/fsl file. To do so, run it with the -l parameter. The list of patches to show can be specified, the default is to show all patches. $ flib -l XV_Collection.jgl:1,42,350-352 * XV_Collection.jgl: Juno-G librarian file (1024 patches) Patches from XV_Collection.jgl: Pat# Cat Patch name M/P Tone Waveform 1 Waveform 2 Waveform 3 Waveform 4 ----- ---- ------------- -- ----- ---------- ---------- ---------- ---------- 0001 PNO Standard Pno P -2-- (unset) JD Piano A (unset) (unset) 0042 KEY Clavicembalo P 1234 Reg.Clav A Reg.Clav C Reg.Clav C Reg.Clav C 0350 PLS Albion P 12-- Female Ahs Female Oos (unset) (unset) 0351 PLS Running Pad P 1234 TinyBellWa SBF Vox A D-50 Bell Warm Pad A 0352 PLS Stepped Pad P 1234 Super Saw Super Saw JD Fine Wi SBF Vox A You can also specify categories in the patch list, e.g. list only Combination and Beat&Groove patches. $ flib -l XV_Collection.jgl:CMB,BTS * xv_collection.jgl: Juno-G librarian file (1024 patches) Patches from XV_Collection.jgl: Pat# Cat Patch name M/P Part Waveform 1 Waveform 2 Waveform 3 Waveform 4 ----- ---- ------------- -- ----- ---------- ---------- ---------- ---------- 0013 CMB Bs/Pno+Brs P 1234 Ac.Pno f A Finger Bs Slap +Pull Tp Section 0117 CMB Lounge Gig P 1-34 Clean TC A (unset) Fretlss Sf Flute B 0250 CMB Hillbillys P 1234 Harmonica Violin A Banjo C Ac.Bass C 0500 CMB Blue Notes P 1234 Ac.Bass C Wide Sax B Wide Sax C Ride Cymba 0728 CMB Suite Combo P 1234 Jazz Doos Female Oos Fretlss Sf Vibraphone 1022 BTS TempoMadness P 1234 TR909 Kick TR808 CHH TR909 Clap TR909 Kick 1023 CMB GenerationXV P 1234 Warm Pad A Dyno EP mp Car Pass E.Gtr Harm 1024 CMB Wedding Gig P 1234 SA E.Piano Fretlss Sf Nylon Gtr2 Full Str A Extracting, deleting and merging patches ======================================== 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 -----------------------------[ fsex examples ]------------------------------- Sending a patch via SysEx ========================= You can send a patch from a .jgl file to the Juno-G temporary patch area using the -s parameter: $ fsex -a 20:0 -s XV_Collection.jgl:538 * XV_Collection: Juno-G librarian file (1024 patches) Send to MIDI address 20:0 Send patch 0538: PhazeWahClav (KEY) Receive a patch via SysEx ========================= fsex can be invoked in a way similar to flib to retrieve patches from the synthesizer and save them in a library file. The bank names and patch numbers are specified in the same format as flib expects library file names: $ 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 Request identification ====================== fsex sends a identification request SysEx message if invoked with -D. This can be used later to issue a warning if the user attempts to send data from a library made for a different model. Currently family and model numbers are displayed as hex (it should be changed to a more descriptive text later). $ fsex -D Send to MIDI address 20:0 Identification reply Device Id : 10 Manufacturer : Roland Family number : 15 02 Model number : 00 00 Version : 00 03 00 00 ----------------------------[ fconv examples ]------------------------------- Convert a library from Fantom-S to Juno-G ========================================= fconv tries to convert libraries from different synths by matching waveform names. Patches using waveform names that don't match won't be converted correctly. $ fconv -f --jgl SRX03AP5.fsl SRX03AP5.jgl * SRX03AP5.fsl: Fantom-S library file (128 patches) Patches from SRX03AP5.fsl: 0001 [United ! ] 3: Vl Sect. A R ( 420) ==> Vl Sect. A R ( 546) 4: Full Str A L ( 431) ==> Full Str A L ( 557) 0002 [Cool EP ] 2: Dyno Rhd mpB ( 36) ==> Dyno EP mp B ( 186) 0003 [Distorted B ] 2: Org Basic 1 ( 88) ==> Org Basic 1 ( 238) 0004 [Welcome Home] 3: Full Str B L ( 433) ==> Full Str B L ( 559) 0006 [FeedDa /Aft ] 4: E.Gtr Harm ( 201) ==> E.Gtr Harm ( 352) ... $ flib --list SRX03AP5.jgl * asd.jgl: Juno-G library file (128 patches) Patches from SRX03AP5.jgl: Pat# Cat Patch name M/P Tone Waveform 1 Waveform 2 Waveform 3 Waveform 4 ----- ---- ------------- -- ----- ---------- ---------- ---------- ---------- 0001 PNO United ! P 1234 SRX SRX Vl Sect. A Full Str A 0002 EP Cool EP P 12-- SRX Dyno EP mp (unset) (unset) 0003 ORG Distorted B P 12-- SRX Org Basic (unset) (unset) 0004 AGT Welcome Home P 1234 SRX SRX Full Str B SRX 0005 EGT Bark Guitar P 123- SRX SRX SRX (unset) 0006 DGT FeedDa /Aft P 12-4 SRX SRX SRX E.Gtr Harm ...
About
Roland Fantom S/X and Juno-G SysEx utilities
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published