New customized firmware modifications

edited December 2013 in General
Aargh!!! my LXR just died! Won't power on. I need to take it to the bench. Hopefully it's nothing serious. Anyway I just pushed a new custom firmware at https://github.com/rudeog/LXR. I've done some basic testing, but as I said, my LXR just died so it might be a while before I can fix anything if there are issues.
Anyway here are the changes:
  • Midi note off fixes. Will send midi off when changing pattern, channel or muting voice
  • MTC sync. Will now recognize MIDI MTC quarter frames and start when it receives a 0:0:0 location, and stop when MTC stops
  • Program change. Will respond to program change and will change
    between the 8 patterns when received via MIDI port. For programs > 7
    will use remainder when divided by 8. Also will send on MIDI
  • Program change. Will send program change 1 to 8 on MIDI when manually changing drum patterns.
«1

Comments

  • Well, I'm back up and running. It was weird, I was running fine, then I was restarting quite a bit to check some power on defaults, then I restarted it and I just got a few random LEDS and no display. Restarted again, got nothing. Completely dead. Checked my PS then for the heck of it tried a firmware flash, and it flashed ok, then everything is running fine now.
    I wonder if it's possible for the bootloader to create a bad flash upload? Strange because it was working fine for a while.

  • Glad yours is working again.

    Man these are some great additions!!! I will check the out now.

    Thanks!!!
  • @rudeog do you have an AVR programmer or are you just using the SD card to do all your development?
  • I have an AVR programmer, but not a STM32 programmer. So I'm just using the SD card for everything.
  • great to see the program change implemented, thanks rudeog
  • I just finished working on midi filtering. So here is a summary of the current list of differences from the stock firmware (in addition to those listed above). Hopefully Julian will pull these changes back in (when he's done with his taxes :-)
     
    - Midi filtering. You can filter messages from being transmitted or received. Tx is independent of Rx. There are four categories of messages that can be individually configured: Program Change (P), Control Change (C), Realtime start/stop/clock (R), and Note on/off (N). These are set in the global menu under txf and rxf (transmit and receive respectively). Combinations of letters are shown. If a letter is shown, the midi message in that category will be transmitted or received. If set to off, nothing is sent/received, and if set to all everything is sent/received. This has nothing to do with midi routing which works the same way regardless of filter.
    - Midi routing (midi soft thru). You can route midi messages from input to output. This is set in the global menu under "mrt". There are 6 possible values: off - no routing, U2M - usb midi is routed to midi out port; M2M - midi received on midi in port is routed to midi out port; A2M - both usb and midi are routed to midi out port; M2U - midi input port is routed to usb output port; M2A - midi received on midi port is routed to both midi output and USB output.


  • Wow awesome!

    Thanks

  • Wow, brilliant achievement!
  • Such Cool.

    Such brilliance.

    Thanks and for those of us into official firmwares I guess this is not that far off now!
  • New custom firmware... If you want it, it's in the global-menu branch of the rudeog repository.
    New features:
    - Recording will honor midi note setting. This functionality allows midi notes received on channels to be handled in a way that is consistent with how the midi note setting is set for each voice. If a voice's midi note setting is set to "any" and a note is received on the channel designated for that voice, the drum sound is triggered with that note value. If the setting is a specific note, then only that note will cause the drum sound to trigger (with the default note value). This change makes it a lot of fun to sequence and play along with external keyboards. I've been having fun with it.
    - For program change and CC, it will still only respond to the channel set for voice 1.
    - Global menu is expanded to allow more than 8 settings. Right now there are dummy settings in there after the 8th slot just to test it. This will allow for a lot more switchable customizations.

    I'll be doing more testing before I merge to the master of the customized firmware repository. Julian is merging some older stuff, so hopefully we can get this whole thing in sync with some of these new changes in the official firmware soon.

  • BRAVO!!! exited to try this out

    of course, the CCs should respond from any incoming midi channel. Wouldn't this be possible, or is it just still lots of work?


    according prog change: is it also possible to change the drumkits now??


    thanks for your great work, rudeog!

  • edited January 2014
    The way the CC's are laid out now is that they have an assigned CC (or NRPN) for every parameter on the box. So you could either respond on any channel, or respond on a single channel. To me it's more flexible to respond on a single channel (in case you have other gear in the chain and don't want to pick up CC's intended for that gear). So the way Julian did this originally was to have voice one's channel as the channel for things that are not voice specific. I suppose a new global parameter could be added as the channel upon which CC and PC listens and sends so that you are not having to share with voice 1. But at that point I'm not sure if it becomes too confusing to have an extra channel setting?

    Also, I'm thinking that it might be more useful to record on whichever drum voice is active (rather than responding only to channel set for that voice). The scenario I'm thinking is that I have a keyboard attached to midi in, and a chain of sound modules on midi out. I might want to quickly record a few sequences from my keyboard for different voices without having to merge midi externally or change channels on the box. So eg, press voice 1, play a sequence, press voice 2, play a sequence, and now voice 1 and 2 are sequencing two other pieces of gear (or playing internal tone generator). If anyone has an opinion let me know. Is it useful to just do it this way or have an option to do it this way as well as the way described in my previous comment?

    I might add that this is kind of how the MPC works.

  • I agree the CC should be limited to one channel, because other devices might also need to be sending CCs around that the LXR shouldn't listen to.

    Does this record-midi-notes change mean that if you've got voice 3 set to midi channel 3, and V3 midi note is set to ALL, then V3 will record the actual midi notes played (rather than just recording the fact that the drum voice was triggered)?  ...So, we could use tracks on the LXR to fully sequence external devices?

    Does it record note offs too?
  • @borfo Yes, it will record the actual midi notes. Its really fun to be able to make sequences this way, and even to record different pitches of internal sounds with a keyboard. It will not do anything with note off messages at this point (ie the note off's will be sent right before the next note on). There are a few complications with note off messages.
  • Cool...  Will have to give that a try sometime.

    Out of curiosity (...and totally hypothetically, I'm not asking you to implement this), is there enough ram/cpu cycles/whatever to have a few sequencer tracks running in addition to the drum voices (ie: tracks that don't do any drum synthesis, they'd just store midi notes to sequence external devices).  Would it be hypothetically possible to add a feature to the UI that allowed the user to switch back and forth between having the UI control the 7 drum voices, and 7 non-drum sequencer tracks?
  • Thanks for the update!
    +1 to borfo that's a brillant idea.
  • In my opinion that would not chew much CPU as it's not DSP and therefore consumes little of the CPU's time (but Julian would have to answer definitively). I'm not sure how it could be fit into the interface easily (ie, you'd need some kind of key combo to be able to switch to the other tracks and some kind of visual indication that you were on those tracks)
  • edited January 2014
    Great work rudeog!

    I think the extra seqencer tracks topic was discussed before and there were a few votes pro and contra extra sequencer tracks.

    I still think it would be awesome to have extra tracks. (possibly with note offs.)

    I used the old fw (when there were no note offs at all) to do stuff like trigger/transpose the sequencer or arpeggiator of another synth from the lxr. Its a lot of fun with the retrigger funtion in performance mode, too.
    Lots of fun can be had with only lxr+ambika with no other gear.



  • Wow this is awesome!


    Thanks rudeog!
  • Another update:
    - Added ability to turn off the "bar counter". This would mean that all patterns will repeat exactly the number of times specified, and then move to their subsequent pattern (as opposed to counting bars from the beginning of the song and switching on multiples of the current "size")
    - Added Global midi channel. This channel setting determines 3 things: 1) which channel to listen on for program change messages (and send program change messages) 2) which channel to listen on for CC messages 3) which channel to record notes on to the CURRENT voice.
    - Global menu scrolls properly with more than 8 items in it now

    Here is a video showing live sequencing from the global midi channel. All sounds are coming from the LXR (the Bass Station is only used to send midi on channel 1). The global channel on the lxr is set to 1, so as I switch voices, it records what I'm playing onto the voice I'm currently on. This is not meant to be musical, just a demo :-):
    http://youtu.be/4EEHB_qYQ9E

  • Brilliant! Thank you. This really makes me want longer patterns now. :)
  • Awesome! Really useful new features!
    This is so much more than I ever expected from the LXR!

    Thanks for your great work!
  • edited January 2014
    Another update pushed to custom firmware master branch (see top post in this thread). This update includes two changes:
    - Realtime erase - This is useful, I've found, when recording sequences on a keyboard that are multiple bars (measures) in length. Hold down shift and copy(clear) button. While these are held, the notes on the active voice are erased. You must be in record mode, and the sequencer must be playing. So you could erase a few bad notes as you listen to your sequence, or erase multiple bars as they switch without having to mess around with selecting patterns.
    - Recording quantization enhancement - When recording a sequence that spans multiple bars, if you are quantizing, and you hit a note right before the next bar starts (such that the note should quantize to the next bar's first step) it will now do so.

    And obviously these are most useful if you are creating multiple bar length patterns (which can be done by setting your repeats to 0, and your next pattern to the next pattern in the chain).


  • Wow! You just keep making it better and better!

    Thank you.
  • WHOW realtime erase sound great i will try this feature soon thanks!
  • when i upgrade the customized firmware the sounds are completely messed up, everything goes back to normal when i upload the classic firmware.

    don't know what's wrong
  • Are these sounds you've loaded from the card, or are you saying that you are unable to program a sound from scratch without it sounding messed up?
  • the sounds loaded from the card, the default kit and all the others are weird and distorted, and if I use them every steps sound different
  • I wonder if there is some bad automation data in the pattern. did you try clearing the track? making sure the lfos are set to mod 0
  • Is it possible for anybody to post the newest custom built firmware as it should be placed on the SD card?

    It would be great for those of us a bit behind on the firmware development front.
Sign In or Register to comment.