Date   

Controlling Helix Native in Cakewalk with FCB1010/UnO (1.0.4)

pwgblack@...
 

Hello Folks,

Could anyone out there direct me to either a video or written tutorial on how to do this please.

I want to be able to use the FCB1010/UnO (1.0.4) (in stompbox mode) to be able to select patches with the banks and upper five switches, including use of both expression pedals, and stomps with the lower five.

I have the FCB1010 Control Centre, but the instructions are not really clear for a beginner on how to do this. I'm connected to the comp (PC) with a Roland UM-1 mk2.

I guessing I'm not the only person who wants to be able to do this, but if I am, I'm happy to chip in (perhaps with others) a bit for one of you with more expertise to prepare something like this If there's nothing out there.

Thanks in advance for any assistance.


#UnO2 Uno2 + BIAS + KatanaMK1 #UnO2

jeffpagnutti@...
 

Hi folks,

Just got my FCB and UnO2 chip today.  Got it up and running and tested with BIAS FX2 -- all working great!

What I really wanted though and why I got the UnO2 was to send sysex to my Katana and was surprised that my first try worked!

I'd tested some stuff before ordering to make sure I could talk to the Katana and all worked fine (thanks to Gumtown, snhirsch/katana-midi-bridge, KatKontroller and many others messing with the Katana).  The UnO2 code was written to use the top row for patch changes and the bottom row for stomp boxes.  I used channel 4 and 5 for the Katana stuff and 1 to 3 for BIAS (just CC and PC).  I haven't developed it much more than that, but will likely try to get the expression pedals controlling volume and wah/pitch/fx.

Hopefully this is helpful to someone.  File is in the Files section under Uno2 + BIAS + KatanaMK1 (I think it could pretty easily get adapted to the MK2).

Let me know if you have any questions / comments.

Thanks and regards,
-Jeff


File /UnO2 BIAS Katana.txt uploaded #file-notice

uno@fcb1010.groups.io Notification <noreply@...>
 

The following files have been uploaded to the Files area of the uno@fcb1010.groups.io group.

By: jeffpagnutti@...

Description:
Control your Boss Katana and BIAS FX2!


Re: Set switch to send incremental CC values?

Mike Watkinson
 
Edited

Ok so I have had a go at implementing the suggestions as follows:

Switch 9:
TRIGGER_CLICK Major Semitone up =
{
   if($majkey < 121)
      $majkey += 11
   SendMidi MainStage CtrlChange 90 $majkey  
}

Switch 10:

TRIGGER_CLICK Major Semitone down =
{
   if($majkey > 7)
      $majkey -= 11
   SendMidi MainStage CtrlChange 91 $majkey  
}

Switch 1 is set to do this:

EFFECT_ON major harmoniser = 
{
   SendMidi MainStage CtrlChange 80 127
   SendMidi MainStage CtrlChange 90 1
   $majkey = 1
   }

So the variable starts with value 1 when the effect is enabled, then the following values are sent by each press of switch 9:

12
23
34
45
56
67
78
89
100
111
122

which are mapped to 12 of the 18 key centres available in Octavox (which offers Db as well as C# etc which caught me out for a while!)

So far so good - thanks for the template!

BUT, the above only allows starting on C then working one semitone at a time through to B, then back again. What  I would like to also be able to do is start on C (which is what happens when the plug in is enabled) and go down say one step to B using the down switch (switch 10). At the moment I have to go up 11 clicks of the up swicth (switch 9) to get there. I have tried a few stabs at this using Else type statements but can't quite get the 'parsing' right.

What I think I am trying to achieve is something like 'if ($majkey < 7) then SendMidi MainStage CtrlChange 91 122' in addition to the lines above for 'TRIGGER_CLICK Major Semitone down' but not quite sure how to write it out correctly.

Any help much appreciated!


Re: UNO 1.03 as 10-switch stompbox

hasse_fx@...
 

Thanks, yes I have disabled the PCs. Yes the only difference I can spot is that the "non stompbox" LEDs behave like they indicate preset changes. I assume that's hard coded.


Re: UNO 1.03 as 10-switch stompbox

EJ SHELDON
 

That's the normal FCB Toggling function. You just need to turn off the PCs for those presets to prevent sending them to the QC (unless you want that).


UNO 1.03 as 10-switch stompbox

hasse_fx@...
 
Edited

Hello group,

I just brushed off my FCB-1010 that has been stowed away for a couple of years. When I got it second hand I bought  and installed a UNO-chip (v.1.0.3  it turns out). However my setup changed before i made any use for it, but I kept it. Now as I'm awaiting a Quad Cortex and studied its MIDI implementation I came to to think of the FCB and to use it as a MIDI remote, providing 2 expression pedals and a bunch of switches to double the QC switches.

OK, so I go for the remote programming sofware - unfortunately it does not communicate with my unit. Instead I go to the documentation and finds out/remember that you can have 5 stomp box switches (the QC has 10) and the other... well for other functions. Maybe UNO2 then, but my availabe MIDI-interfaces times out (though the FCB is correctly identified as UNO 1.0.3. So back to what I got - 5 is better than none.

I get a grip of the setup and and programming the switch and pedal setup, checking the result of my efforts with MIDI monitor software. Then, by mistake I do the toggle controller value setup for a switch on the wrong row - and it turns out it also sends toggling CC-values! So I continue to set upp all 10 switches with stomp box functionality - the only difference being that the LEDs doesn't indicate the stomp function on the "wrong" row.

I haven't found (so far) anything documenting this "feature" of UNO 1.0.3 - is it widely known and used?

Anyway, for my simple intended use, the "feature" eliminates the need for a UNO2 (and extra compatible MIDI-interface).


Re: Dynamic Channel Names #UnO2

Jack Fenton
 

I agree. I think it is still amazing what you are able to accomplish with a 20 year old piece of hardware.

Also, I would think it would not be that expensive to make it USB class compliant.  

Right now my favorite competetor is the Nektar Pacer that has quite interesting capabilities:

  • 24 Banks of 10 switches - Plus 4 externnal switches and 2 external expression pedals. 
  • Can dynamically assign switch activities with another switch
  • Can use any switch to go directly to another bank
  • Has LED feedback (via USB only)

I use the Nektar to control different apps on my PC.  Voicemeeter Potato and OBS Studio for audio/video switching


I use Uno2 for my MIDI music setup. I also still have Uno 1.0.4 on a different FCB1010.  I have a Eureka Prom that I like for IO mode only but it sits on a shelf right now. It would be nice to be able to install multiple proms and switch between them. I have no stomach for adding other hardware MODs in case I want to sell on of my FCB1010s.


It would have been nice if Nektartec had incorporated 2 expression pedals like Behringer and Roland FC300

The FC300 is nice but programming is only available with pushing footswitches.  No Editor.
It also has a nice 2 line display if you don't mind looking at your feet while switching.




Re: Dynamic Channel Names #UnO2

ossandust
 

The one thing which still amazes/frustrates me most with the FCB1010 : Behringer could very easily replace the current 2KB setup memory with a 32KB chip without changing anything in the design or production process - it's fully pin compatible, it would raise the product cost with an amazing 15 cents (memory would cost around 0.25USD instead of 0.1USD), but what a difference it would make in what you could achieve with that same hardware. It's a shame... 


Re: Dynamic Channel Names #UnO2

Jack Fenton
 

Don't get me wrong. I think Uno2 is amazing!  Just thinking of ways to improve it and make it even better knowing the limitations of the FCB1010 memory.

I assume the less code you have to write, the less memory will be consumed on the device. Maybe not always a good assumption as I'm not sure how the code uses memory. I'm still experimenting since I've only had Uno2 for a few weeks.



Re: Dynamic Channel Names #UnO2

ossandust
 

ok, that makes sense.


Re: Dynamic Channel Names #UnO2

Jack Fenton
 

    It is  requested primarily for code reuse. I  want to be able to use the same code preset to send to a different MIDI channel depending on the device I have selected.

Instead of

switch($device)
{
case "Hammond":
 SendMidi HAMMOND ProgChange 1
 break
case "Nord"
 SendMIDI NORD ProgChange 1
 break
default:
 break
}

I would like to do this:

SendMidi $Device ProgChange 1

You don't think this adds value?  No switch statements and just 1 line of code.


Re: Consumption of Memorory #UnO2

Jack Fenton
 

Thanks, I'll play around with it to see what I can do to reduce memory. I only have 3 banks but most of my presets/triggers look to see what device is selected before applying the correct MIDI output. So a lot of case statements and in some instances, nested case statements within my triggers and presets. I had to eliminate the banks MSB LSB CCs in order to make things fit.

Basically, I use a pedal to select which device I want to talk to, then use the same presets/triggers for both devices.  In some cases I assign pedal functions for each device with some of the pedals which is the nested case statements.



Re: Dynamic Channel Names #UnO2

ossandust
 

No, the CHANNEL statements are there just for 2 reasons : 
- they make your code much more readable, as you clearly see to which device you are sending each command
- they make it easy to change the MIDI channel to which a certain device listens, for instance when you add more gear to your setup : just change the MIDI channel value in the "CHANNEL" definition line, instead of modifying all commands throughout the setup
I don't see much practical use in a dynamic MIDI channel definition - a MIDI device normally listens to 1 (or multiple) configured channels, this normally doesn't change once configured.


Re: Consumption of Memorory #UnO2

ossandust
 

A compiled setup doesn't contain any strings, since the FCB1010 doesn't use the string values. During compilation all possible values of a string variable are listed and converted to a 10-bit index  (a string variable can contain up to 1024 possible values). So the length of the string is not relevant for the setup size. 
It's not easy to calculate which approach will take most memory, you'll just need to try it out. A trigger is a good way to group commands which are often reused, but if the trigger only contains 2 MIDI commands and you always have to combine the "SendTrigger" command with some extra variable initialization code, it will take more memory than simply specifying the SendMIDI commands in the presets.


Dynamic Channel Names #UnO2

Jack Fenton
 

I would like to be able to do this :

 
VAR $ham = "Hammond"
VAR $nord = "Nord"
 
CHANNEL $nord = 12 // would like $nord to expand to NORD
CHANNEL $ham = 1 // would like $ham to expand to Hammond


or this:

VAR $ham = 1
VAR $nord = 12
 
CHANNEL NORD = $nord
CHANNEL HAMMOND = $ham

It appears that the CHANNEL command has no support for variable names.





Re: While Statement issue with Uno2 #UnO2

ossandust
 
Edited

ok, I tried it out myself now and I can confirm these are 2 bugs : 
- arithmetic functions on variables should always keep the value between 0 and 127, also in case of "overflow"
- when using a "while" loop within a switch statement, the "case" condition is not correctly evaluated on statements following the while loop. 

Following version works correctly, because it doesn't have statements after the "while" :
(for your info : the "default:" statement within a switch statement is optional, so if it doesn't contain any commands you can omit it) 

TRIGGER_CLICK AllNotesOffPanic =
{
   switch($Device)
   {
      case "Hammond":
         SendMidi Hammond CtrlChange $HammondAllSoundsOff 127
         break
      case "Nord":
         SendMidi Nord NoteOff 127 0
         $currentnote=127
         while ($currentnote > 0)
         {
            $currentnote--
            SendMidi Nord NoteOff $currentnote 0
         }
         // don't add any more commands here...
         break
   }
}


Consumption of Memorory #UnO2

Jack Fenton
 

Does a sting like "Hello" consume 5 bytes of memory in the Uno Foorpedal or are they converted to 1 byte tokens before loading them on the FCB-1010

Right now I'm using a lot of strings and ran out of memory on my configuration. I'm thinking if they do not covert to tokens, I can save memory by having them integers.

Also, if I have multiple presets with the same code, it seems to consume more memory

SendMidi  Nord  CntrlChange 0 0 
Snedmidi Nord CntrlChange 32 0 // The value here might change with each preset since I have 5 banks on this device.
SendMidi Nord ProgChange 3 // this is the only thing that currently changes with the preset

I'm wondering if I do this only once as a trigger and then have instead each preset call the same trigger instead with different values of the Program Chaage and CC 32 it might consume less memory. I would not use the trigger directly with any footswitch, however would call it with different values for each.

These would be seen as my "Favorites "  Fav1-FavX



Re: While Statement issue with Uno2 #UnO2

Jack Fenton
 

Yes, I tried that at first but it continues to send notes 0 forever  because  integers in Uno2 cannot go below 0. 


Re: While Statement issue with Uno2 #UnO2

ossandust
 

Will look into it - probably an issue with using a while loop within a switch statement. 
But it would be simpler to just say while($currentnote >= 0)  ... 

521 - 540 of 9039