Strymon Editors

Discussion in 'Effects, Pedals, Strings & Things' started by gollumsluvslave, Feb 22, 2014.

  1. gollumsluvslave

    gollumsluvslave Member

    Messages:
    1,361
    Joined:
    Jan 13, 2014
    Location:
    Edinburgh, Scotland
    BIG UPDATE:-
    Strymon have released their own editor, Nixie into public beta, and I'd urge anyone who had been using my editors to move to Nixie - bar a couple of features (which are coming) it does everything my editors does but better and much faster. It's really slick!

    http://www.strymon.net/nixie-public-beta/

    UPDATE:-
    Hey folks,

    I've been waiting for Strymon to release a patch editor for Timeline etc for ages, and although we've now got a Librarian app, so far there is no idea on how long an editor will be, so I've decided to start one myself (my day job is a software dev).

    The trickiest thing to getting a working editor that can changes patch values, is working out the Sysex data that is needed, and I think I've now solved how to reverse engineer the Sysex messages of each model, although it is a time-consuming process.

    Sysex itself is not particularly difficult (see here for a great tutorial)
    http://www.2writers.com/eddie/tutsysex.htm, and if you look at any of the patches shared on the Church Collective for example, the Sysex files allow the reverse engineering; what I have done is basically copy two identical patches ONLY tweak a single parameter (ideally each patch would have it's min and max value), and then save both out single syx files, and check the differences in a Hex editor; this essentially allows me to build up an address map for each of the Timeline parameters and be able to 'edit' these values using a GUI. So far I think (proof will be in the pudding) I have been able to isolate the correct bytes to change for the delay machine and the mix parameters.

    As I'm a .Net guy, I'm going to be doing my prototype Editor in WPF, and I will by working through it methodically, each delay machine at a time (dTape, the dBucket) etc - some of the address map I'm pretty sure are on/off options that area very easy to see in Hex so some things will be easier and quicker than others :-

    F0 00 01 55 12 01 62 01 0F 09 50 55 53 00 01 00 45 22 10 6D 0B 0C 0D 0E 0F 10 06 00 00 02 00 01 01 01 01 01 01 01 01 01 01 01 00 06 66 01 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 19 74 4A 25 12 13 14 15 16 17 18 00 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B

    The bolded hex above appears to be the main set of bytes that change between patches above , which I believe is going to be the address map of the parameters for the Strymons (there is another very small part of the patch that changes at the end of the .syx file for the Name of the patch) - you can see a lot of the 00/01 entries which I think will be stuff like Persist (on/off)

    I'm going to work on the prototype over the weekend, and obviously will be testing it with my own Timeline (latest firmware). I am obviously also doing this for my own purposes first and foremost, but if the editor works, I'd want to share it as I know there are a lot of other people that would like an editor also!

    If anyone is interested in helping out, either from a coding aspect or testing, please let me know, i'm hopefull to show a working prototype being able to change and edit some basic common parameters (Mix, Delay Time and Repeats - i.e the most important by the end of the weekend)

    Cheers
    :idea
     
    Last edited: Aug 11, 2016
    LordByron likes this.
  2. MogwaiBoy

    MogwaiBoy Member

    Messages:
    3,520
    Joined:
    Aug 15, 2013
    Location:
    Way Downunder
    I can't help out but I really want to encourage you - thanks for doing this and best of luck! Looking forward to updates. I like your trial & error method for isolating and determining what changes what.
     
  3. gollumsluvslave

    gollumsluvslave Member

    Messages:
    1,361
    Joined:
    Jan 13, 2014
    Location:
    Edinburgh, Scotland
    Cheers! The hardest thing will be the interaction between the different machines, so I'm just going to concentrate on dTape for the proof of concept, just to prove I can edit and save different dTape presets -albeit with a reduced parameter set to start with. Proving that will deal with thinks like Sysex checksum etc, so assuming the proof of concept doesn't brick my Timeline :crazyguy and the presets do what i've edited, it will be a good first step.

    Of course I'm sure that once I've got half-way to completing it, Strymon will finally come out with a full-featured editor! :horse
     
  4. konstantine

    konstantine Member

    Messages:
    879
    Joined:
    Mar 14, 2006
    Location:
    Berlin - Germany
    I can´t help either, but looking forward to trying it!! I´ve been waiting ages for Strymon to release an editor!
     
  5. gollumsluvslave

    gollumsluvslave Member

    Messages:
    1,361
    Joined:
    Jan 13, 2014
    Location:
    Edinburgh, Scotland
    So far so good!

    Managed to get all the delay common parameters mapped - which covers all the main parameters to start with:-
    - Time
    - Repeats
    - Mix
    - Filter
    - Grit
    - Speed
    - Depth
    - Tap Division
    - Boost
    - Persist
    - EP On/Off

    I've tested editing some presets based on the above by making hex edits to saved presets, and this is working grand, with no issues.

    I've uploaded a wee video of the prototype GUI working with Time, Repeat and Mix, just to give an idea of how it might look and work:-



    (note there is no complex UI interaction yet to show edited values (the LCD screen is just part of the background image!), but that will be easy enough to add once the core functions are working)

    I should note that this is all predicated at the moment on using the Strymon Librarian as the interface to the pedals - all my editor is going to do is allow me to tweak patches that I can save as .syx and then upload into the pedal using the Librarian load one function.
     
    Last edited: Feb 25, 2019
  6. Catch

    Catch Analog>Digital Converter

    Messages:
    844
    Joined:
    Sep 9, 2009
    Location:
    Metro DC
    Wow, I'm totally impressed!

    I would love a computer based editor for the Timeline (and BigSky)...you should of seen me last night trying to get off the ground after sitting crosslegged for two hours lost in programming patches...I'm broken!

    The AxeEdit editor for the AxeFX II is pretty awesome, might be worth looking at and has been updated numerous times recently.
     
  7. gollumsluvslave

    gollumsluvslave Member

    Messages:
    1,361
    Joined:
    Jan 13, 2014
    Location:
    Edinburgh, Scotland
    As I suspected, the SysEx Checksum is going to be an issue, as I'm pretty sure Strymon are using their own algorithm to calculate it, it's not the published Roland checksum. I've dropped Strymon support an email to see if they might disclose it, as brute forcing it will take a LOT of time. Axe Fx have published their algo, so hoping that Strymon will do the same.

    What I'm looking at is the fact that the Librarian obviosuly calculates the checksum for the renaming functionality so it may shed some light on it if Strymon don't get back to me - and looking at Github librarian code, it looks like I might be able to figure it out...
     
  8. Squeakys

    Squeakys Senior Member

    Messages:
    316
    Joined:
    Jan 20, 2014
    Location:
    Over Hill and Dale
    It's cool that you are doing this, but ridiculous that you are having to.

    I recently gave my Timeline and Mobius to a relative, and the lack of an editor has kept me from pulling the trigger on two new units to replace them.

    I hated not having a computer editor, and I don't understand why, in this day and age, a company sells $450 dollar, multifunction pedals but does not include editing software.

    Yes, having to bend down to my board to edit is that much of a PITA.
     
  9. gollumsluvslave

    gollumsluvslave Member

    Messages:
    1,361
    Joined:
    Jan 13, 2014
    Location:
    Edinburgh, Scotland
    Awesome progress - appear to have the checksum issue resolved, after porting the Librarian code across.

    I've now got some rudimentary presets saving and loading to my Timeline (via the Librarian of course) with varying combinations of changes to Mix, Repeats, Filter, Grit, Speed and Depth.

    Time appears to be a multi-byte parameter (which makes sense as 128 values isn't precise enough for the time that can be stored) so it will take a bit longer to get fully nailed.

    Getting the reading and writing of the .syx presets file with (so far anyway!) correct checksum that successfully saves to the pedal is a big step though, as after that it simply becomes a matter of adding support for each new parameter by figuring out its address map and value range, then mapping these back to the UI controls...

    :aok
     
    Last edited: Mar 17, 2014
  10. tochiro

    tochiro Member

    Messages:
    2,409
    Joined:
    Jun 1, 2009
    Location:
    Europe
    I agree!
     
  11. MrFlood

    MrFlood Member

    Messages:
    90
    Joined:
    Dec 25, 2009
    Location:
    New England
    gollumsulvslave,

    Nice work. Looking great so far. I can't help other than give my opinion. I just wanted to say thanks for taking this on. I hope Strymon will support you with whatever you need.
     
  12. bo13bo

    bo13bo Member

    Messages:
    430
    Joined:
    May 13, 2006
    I can't grasp it either. Also why not have a USB port?

    I think Strymon is just an odd bird. Try to get someone to sell you one of their pedals on sale and see what the dealers say. Heck I just bought a Big Sky of the net and the dealer said Strymon won't even let them sell pedals right off their website - I had to call in and place the order over the phone.

    Hey Strymon, I love your gear (own Timeline and a Big Sky), but it's 2014. I mean next year we will have hoverboards and self lacing shoes...
     
  13. rck

    rck Supporting Member

    Messages:
    3,839
    Joined:
    Oct 24, 2013
    Location:
    Left Memphis
    gollumsluvslave, YOU are awesome, sir!

    I am dying for an editor for the Mobius as the controls on the pedal are not my favorite (so far I prefer the H9's pedal controls) and there are so many functions and machines contained within the Mobius, that an editor to me would be a no brainer.

    If Strymon would show interest in an editor, I would've bought a Timeline, instead I go the H9 and I love their editor! Does it make the pedal, no, but having an editor, saves one a ton of time, brain expenditure and ease of back/neck pain.

    I also believe an editor helps me to understand the functions of the pedal better.

    Thank you for your time and effort and if anything I hope you receive all the help in the world from some folks (but esp. Strymon). I posted on their site about an editor and the reply was pretty standard (which I understand), "I will pass this on to our team" or something to that effect.

    I am brand new to midi and sysex and don't have a Timeline. I don't know how much help I would be, but if you have any suggestions as to how I might, please advise.

    off topic: I don't know the "pedal business" from their perspective, but I would love to know why they haven't released an EDITOR yet. I'm sure they have their reasons...
     
  14. zwolf

    zwolf Member

    Messages:
    404
    Joined:
    Jul 12, 2011
    Location:
    Portland, OR
    So awesome you're doing this! I'm pretty deep into midi, but don't know a thing about code or programming. But feel to PM me if I can be of any use doing some of the legwork in testing things out.
     
  15. konstantine

    konstantine Member

    Messages:
    879
    Joined:
    Mar 14, 2006
    Location:
    Berlin - Germany
    I dont understand why!! Even Line6 had a GREAT editor for PODxt more than 10 years ago!
     
  16. gollumsluvslave

    gollumsluvslave Member

    Messages:
    1,361
    Joined:
    Jan 13, 2014
    Location:
    Edinburgh, Scotland
    Hey folks,

    Here's an updated vid showing load, save and editing of the main Timeline dials (barring Time)



    Aplogies for the shaky-cam and quality, it's just my camera done quickly to give the idea; I don't like the sound of my spoken voice so not added any commentary! In case it's unclear what happens in the vid is as follows:-

    1. Load of a bonafide Timeline preset saved from Librarian (Base.syx)
    2. Various tweaking, showing LCD updates and Tooltips
    3. Save of updated Preset to 'new.syx'
    4. Reload of the 'base.syx' preset - shows the dials being reset
    5. Load of the saved 'new.syx' preset showing the previous edits that were saved

    Some things I've already implemented that improve things (at least for me):-

    1. Updating the 'LCD' control on all dial moves
    2. Tool Tips on each dial

    What I've also noticed in doing this work is that the LED status that changes from Amber to Green on parameter edits, isn't the most accurate in the Timeline...

    I loaded a preset with everything on the 6 dials set to min - 0 in the sysex binary data, and noticed that each dial has a bit of travel before the led changes to amber. Saving the patch on the Timeline once it has went to amber, them dumping out to sysex, showed the values for each of the dials as 03, which means that 01 and 02 values have been skipped by the physical controller; I'm now curious whether the Editor will be able to load presets to the Timeline that are more accurate than can be done via the dials (the range of data of each of the 6 dials I have implemented is 0-127, the physical interface does not seem to permit all values to be used - I've noticed this on Time before where it jumps milliseconds but never though much of it).

    I'll need to do a fair bit more testing on that side of things to see if these 'skipped' values actually make any difference.

    One other thing I thought I'd mention is that the code is structured in such a way that adding Mobius and BigSky after I've done the Timeline should be relatively trivial, and will more be a matter of creating new 'config' files that describe each machine (Type) and the parameter relationships which should drive the editor than doing much more coding- of course I'm sure there will be plenty of little gotchas and weirdness that will come up.

    I'm hopeful I will get dTape fully complete tomorrow, adding the 'hidden' parameters to the UI and allowing them to be edited. Any suggestions on how people think these should be handled would be appreciated - my current thinking is to simply use the easiest/ most pragmatic control for each parameter - e.g. On/Off parameters will be buttons, DropDown lists for things with finite choices like TapDivision etc.

    It's quite sad, but it's actually been a lit of fun and quite satisfying!
     
  17. thiscalltoarms

    thiscalltoarms more gadgets than Batman. Gold Supporting Member

    Messages:
    7,871
    Joined:
    Apr 13, 2007
    Location:
    Seahawks & Bruins Nation
    You are like 50% my hero right now, 50% I want to buy you a brew. You are KILLING IT! Thanks for all your hard work, and I am glad this has been satisfying for you so far!

    Tim
     
  18. gollumsluvslave

    gollumsluvslave Member

    Messages:
    1,361
    Joined:
    Jan 13, 2014
    Location:
    Edinburgh, Scotland
    Thanks for the encouragement guys!

    I suspected an editor might be of interest to other folks too.

    I'm now quite happy that I've proved the concept, I'm probably going to spend more time working on a proper editor engine, which would allow other people to help add functionality - assuming they have some knowledge of xml.

    How I am seeing this work is the Editor will have 3 xml files that it will load on startup (Timeline.xml, Mobius.xml and BigSky.xml), each xml file will contain a generic structure consisting of the Common Parameters and the 12 Types containing their specific Parameters (e.g. Ice and the Slice parameter).

    This way, the editors will gain new functionality automatically simply by using an updated xml (e.g. to add the Ice machine, I wouldn't be doing new code, simply building the definition of the machine in xml)

    The slowest part of this will be doing the Hex address mapping for each parameter, but I'm hopeful that I'll start to noticed patterns in how Strymon have done things across the 3 pedals (e.g. Specific Parameters for each Type are at the same address or in the same order).
     
  19. Play by Tone

    Play by Tone Member

    Messages:
    920
    Joined:
    May 10, 2004
    Location:
    Depends on the day.
    If you set up a paypal donation link I'll chip in. I think its great you're making more progress in a day than Strymon has in a year. Kind of disappointing for them and complimentary to you!
     
  20. Play by Tone

    Play by Tone Member

    Messages:
    920
    Joined:
    May 10, 2004
    Location:
    Depends on the day.
    Of course, we need to figure out how to get this ported to Mac...unless you've been dying to dive into ObjC ha
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice