Puredata: before I spend too much time

…is it the case that I can have the Zynth send midi signals from PureData to the Midi Din Out?

I just sorted out a PD patch to enable me to use my FCB1010 with my keyboards, which is shockingly not a factory feature. Now that I’ve wrangled the board’s output to a pair of bangs for step and release, I have big plans for where to go from there, but because of the odd way that CCs are handled here, I just want to be sure that it will dutifully pass on whatever PD puts out. It could be Notes CCs or Sysex.

I found the page in the wiki that indicates there’s an extra document to fill out, I haven’t grokked it completely but I tried once before to do a NoteOn/NoteOff conversation to CChi/CClo but all extant filters of that type actually seem to strip the noteOff because they assume people just want to send a static value, because nobody has ever heard of a piano damper pedal.

Anyways, saved myself 70 Euro for an alternate ROM, yay! :>

1 Like

Yes, of course you can. It should work. If doesn’t, it’s a bug that should be solved.

Regards

2 Likes

I have the FBC1010 and it is indeed missing one of the most important features that we all expect it should have - the ability to work as a stomp pedal board. (The very thing I reckon most people bought it for.) The replacement ROMs are popular because they make the device what it should have been but they are quite expensive. There were 2 that competed but the merged and now lack of competition has its normal effect - increased price. (I don’t begrudge the developers being rewarded for their effort… I just don’t think it hits the right price point for me when combined with the cost of the hardware.)

So I am interested with how you are doing this and, if it is beneficial, we might be able to incorproate it as a device driver (similar to how I did so for the Fostex MixTab). Post some details of what you are doing.

2 Likes

The essence of it is this little bit of patch, which bangs out on the left for stomp, and bangs on the right for release, when Channel 16, Note 42, Vel 100 and Vel 0 are received, and then you can do whatever you want with those bangs. When I walked away last night I had just finished this simplication of the patch where I figured things out, but to finish for our pedalboard it’s just a couple more boxes, I will post here later today with the rest.

This will be turned into ten Subpatches with the relevant bits broken out for easy setting. This was the bit that tortured my brain, though mainly because I set out as a complete PD noob to solve a real problem, so I got confused by every one of those boxes at first. Technically I’ve been working on this since I got the board a couple years ago. ADHD sucks, but the rest of the plan will proceed quickly from here.

Oh also, I have previously setup a patch in the FCB1010 where each footswitch sends only a noteOn/noteOff, and the pedals sending their CC data on a couple of channels - I will need to add some stuff to forward that data back out on whatever channel is appropriate for the end use. I plan to capture the Sysex that applies this configuration to a PC of choice, and have a “Initialize FCB1010” button that allows the user to put the PD patch wherever makes sense to them. Obviously this will be a on a public repo somewhere too, the firmware of this thing is an atrocity and someone has to do something for the punters who don’t have a spare 70 euro.

Originally I was wrangling a third Bang for the Channel and there were stacked Spigots to deal with, but I learned eventually that you can put the channel in the midi box as an argument, so that greatly simplified the thing.

I’ll explain the whole patch for anyone who doesn’t know PD and wants to get into this incredible tool. As you can see, it’s nodes with lines connecting them. signal flows in the top and out the bottom any given box.

The “notein” box receives data from the midi port. I have selected channel 16 as an argument, if I removed that, it would output the channel of all notes on a third outlet.

The two “select” boxes receive data and filter for (Note) 42 in one case, and (Velocity) 100 and 0 in the other. It passes only the selected numbers through to the outlet. You’ll notice each has an extra outlet - it sends all non-selected numbers to that box, if you want to do something else with them.

The next row is three Bangs, which are basically just buttons that send a “go” signal out the outlet, either when you push it, or when they receive something in their inlet. They are here for visual representation of signal flow. Bangs are cheap. :>

The “delay” box takes what comes in the left Inlet and sends it back out the bottom 2ms later. You can put whatever amount of time you like there, AND you can pass a number into the right Inlet to set it dynamically. It is necessary here as you will see.

The oddly shaped boxes over on the right of delay are Message boxes - when they get a bang or a signal on the Inlet, they send out whatever message is in them. In this case, I’ve got 1s and 0s. They are wired to the velocity selector via bangs, with each Vel going to a separate binary pair that indicates True or False in a given moment about whether your foot is on the switch.

Lastly, the “spigots” are basically little gates that pass through whatever is coming into their Inlet, but only when the right Inlet is set to “1”. This where Order Of Execution bites you in the ass, as it frequently likes to do with PD, and the reason for the 2ms delay being there - you need to set the logic Inlet before the data arrives on the left, or it gets blocked. The delay ensures that the correct 0 or 1 is there just before the note arrives on the left. 1ms seemed to work just fine, but I figure 2ms is still well in the very best neighbourhod of the Haas zone.

So like I said, ten of these, one for each pedal note, with the bangs feeding into and activating whatever you want to do. For our pianos, it’s just a “ctlout” box that sends CC64 at 127 and 0 at the appropriate moments.

I should have this finished today sometime, it’s been my obsession all week. Oh and for laughs, you can see a gif of the janky, not fully working prototype of this [here](JimmyChezPants 🇨🇦: "Yep, it was Message boxes I needed. #puredata V…" - Growers Social).

FCB1010.pd (14.0 KB)

Attached is the PD patch. Everything is currently hardcoded for my current FCB1010 setup, which is as follows: It requires one complete bank of ten (I used bank 0) to be setup with all ten switches setup to enable both Exp pedals, Exp1 on CC27, Exp2 on CC7, and the notes on switches 1-10 as follows: 34,36,38,40,42,41,43,45,47,49. Everything on Channel 16.
Here is a short screencap video of me hitting the ten switches and rocking the pedals - my touch on the upper pedals was weak in a few cases, but a firm press works perfectly. My Exp2 is either broken or needs calibration, I haven’t figured out which yet.

2 Likes

Hi @jtode! It looks like you are learning much from your adventures with PD. May I ask what your aspiration is? I am not yet seeing much that can’t already be done with MIDI learning.

This achieves my aspiration, which in its entirety is “Use one of the switches on my FCB1010 as my stage piano’s sustain pedal,” which as mentioned, I expected it to just do. The only other way to achieve this (besides programming the midi filter in a written language) would have been spending the money for the Uno.

I did try to do this with Midi Capture, years ago, and encountered nothing but pain, so I decided I would just write my own thing eventually. Last week I sold a big table saw and used some of the proceeds to order a digital mixer, and that seems to have cleared a logjam in my head about music projects, because my physical gear as a multi-instrumentalist has grown in complexity over the years and had made the actual act of playing a misery, so now that I won’t have to spend an hour setting up before I play, I can just turn things on and let the mixer do the wiring up for any situation, music has suddenly become rather fun again.

So basically I only needed the one, but there is a galaxy of shared stuff on PD, so who knows what I’ll do with the rest. Ever since I saw the Organelle, which I was told is a PD-first device, I’ve been decided that I was gonna get handy with it.

Mainly that sustain pedal though, that’s been a burr in my shoe ever since I bought it, brought it home, and learned I had been hosed by Behringer’s incredibly bad decisions.

edit: if there was an easy way to capture the On and Off and map them to two CC values and send it back out the DIN port, I could not easily find it in the docs, and like I said, I recall being told it was not possible, but it’s been a long time.

edit2: The thing I plan to do next with it is map some chords to the other pedals, cause that was the other reason I wanted a whole bunch of midi pedals: being able to play pad chords with feet, or possibly Bass, while playing leads with hands or singing with mouthhole. That, and wrangle some kinda ui so I can remember what each pedal is doing at a glance.

edit3: I don’t think I mentioned I am SO friggin excited to have a sustain pedal that won’t move around on the floor without I literally screw it into the goddam floor. This thing is heavy and stays put. I borrowed my bandmate’s piano once, her sustain pedal was this little plastic square that weighed 2 grams and moved to a new spot each time I stepped on it, making me sound like a completely incompetent player, it was awesome.

2 Likes

Hi I believe the Uno firmware is still free and available if you sign up to the google groups and have access to an eprom burner. uno@fcb1010.groups.io | Home I

There’s two nopes in there lol

I like this better, PD suits my brain, now that I’m fairly clear on the basics. I noticed it’s got FFT nodes even, very curious to find out how you implement those.

@jofemodo @riban I’m a bit confused about this zynconfig.yml file - Is this strictly for midi signals that I want to use with Zynthian stuff?

Like, if I was literally just doing everything either in PD or sending the signal straight back out, do I need this file?

I’m thinking now that I could do both, if I’m understanding correctly - bury a CC out in each pedal’s subpatch which goes into Zynthian for its use as desired, and keep the bangs for PD use.

Ever tried duct tape?

1 Like

To this day, I do not understand the reputation of Duct Tape. Oh yes, I have tried duct tape. It is powerless against a wee bit of dust. :rofl:

The incident that you can tell I was semi-traumatized by was a case of me attempting to use her piano during a public open mic, in which we were the house band. I am a beginner pianist at this point, maybe an intermediate now, but basically there are only a few full songs that I am capable of getting through the piano chords while singing, and I learned those either playing an upright, where the pedal absolutely does not ever move, or else on my home digital piano, which has a reasonably good pedal device which sits in a thick carpet. And I am stomper at the best of times, I am not gentle with instruments of any kind.

So picture a good singer who is uncertain on an instrument attempting to sing emotively while chasing a little mousey with his foot, every bar of the song, with an audience. Yah.

What I do use, and does tend to work really well making things stay put if you can get enough surface area on the device and the floor (would have worked with my full size sustain pedal, but not with her little mousie), is Tuck Tape, which is used for weather sealing of houses, sealing the plastic after an insulation repair, etc. The adhesives withstand the elements, so a little bit of floor dust or skin oil from touching the pedal is not gonna faze it, and it peels back off surprisingly easily and cleanly. My uhh, stepfather in law, I guess is what he is, introduced me to it when we were insulating my garage after we moved in. You do need to kinda lay it on thick, cause it’s not especially strong tape and the adhesives don’t really resist the kind of force I put on pedals for long, but it’s held things for me in such a way that they migrate an inch or two at most.

I don’t think I’ll need to use tape on this pedalboard at all, honestly. I have some rubber grippy feet to add and I thank that’ll do er, hardwarewise it is a marvelous device, my exp just needed adjusting so now I can basically put everything else into a box with the coming digital mixer, which itself can act as a backstop for the pedal, but either way, my setups are gonna be super easy from here on out. :>

1 Like

One of my pedals has an attached rubber band so that my own foot keeps it in place. https://www.roland.com/global/products/dp-10/

For the others, I get very good results with an inexpensive shower rubber mat…

1 Like

I am less sure. I thought it was always sold for money and now I can’t even find it available.

As I recall, you need to buy their paid software for Uno v1. V2 only configs via text file.

It has taken me a while to understand what the requirement is here. I think it is this:

  • To use a Behringer FCB1010 foot pedal controller with standard ROM (e.g. v2.5 firmware).
  • Map a footswitch to act as a sustain pedal, i.e. to send CC 64 Value 127 when pressed and to send CC 64 Value 0 when released.

Issues

  • The FCB1010 does not offer this option. The CC is sent with its max value the first time the switch is pressed and with the min value the second time, toggling between the two. A notable issue is that it will send the max value if it is pressed after another pedal, even if the max value was sent last time.
  • A Note On/Off is sent with press and release which gives the dynamics but not the MIDI commands.

Solutions:

  • The use of CC to toggle controls (e.g. bypass) can be done by setting a single value of 127 for both min and max then MIDI learning to a control and enabling “Momentary => Latch”.
  • It may seem like we could use MIDI Rules to convert Note-On & Note-Off to CC but, although the note-on works, the FB1010 sends note-off with value 64. The overly simplistice zynthian MIDI rules passes through the value, so releasing the pedal sends CC with value 64, which is interpreted as switch on, so you get a pressed switch indication for both operations. FOILED!

This could be resolved by modifying the zynthian MIDI rules algorithm or with a device driver. I think we would prefer the latter.

[Edit] Unfortunately, device drivers cannot modify messages in transit, i.e. the notes may be reacted to but not filtered or changed.

Hi All,

Not really sure how relevant, but here: Add ESP32-S3-DevKitC-1 (N16R8) + SSD1306 display support in Behringer FCB1010 case by T-vK · Pull Request #557 · alf45tar/PedalinoMini · GitHub
is a wonderful project to make the FCB1010 into a incredible universally usable footcontroller thanks to the pedalmini software.
GitHub - alf45tar/PedalinoMini: Wireless and Bluetooth MIDI/HID Foot Controller · GitHub used to be opensource, unfortunately it is not anymore. but upto I believe 3.5 the source files are opensource. Really GREAT footcontroller package!!

Cheers,
maarten

2 Likes

I thought we could now via mididings.

See the moder ctrldev drivers.

I was referring to version 1.04 which I believe was/is free and I got from this google group which looks official. Here is a comparison.

comparison Behringer Uno.pdf (38.2 KB)

I just pushed a change that fixes the issue with MIDI rules mapping note-off. It slightly reduces the functionality in that MIDI rules that map note-off will now ignore the note-off value (which is almost never used) but now allows you to use MIDI rules to map Note-on/off to CC for MIDI learning, e.g. MIDI Rules:

MAP CH#15 NON#64 => CH#15 CC#64
MAP CH#15 NOFF#64 => CH#15 CC#64

will map MIDI note 64 on channel 16 to CC 64 with note-on velocity mapped to CC value and note-off always setting CC 64 to value 0 (off).

I have not looked at this yet and couldn’t see how to enable it or where it is in the source code. A pointer to the forum post would be good.