Pedal switching matrix with the AD75019

Started by R.G., November 26, 2015, 12:39:26 AM

Previous topic - Next topic

free electron

+1 for the touch screen and a graphical user interface.
A possible candidate for the job could be the STM32F7 discovery board.
Hardware wise it'd be a complete system with a 4.3" TFT capacitive touch display, built in programmer/debugger, nice form factor for easy mounting on the front panel and a bunch of standard 0.1" pin headers on the back to hook it up with the rest of the circuit. Cost: ~$50-60.

All the work would be shifted to the software side. Looks like the Ad75019 could be driven via SPI, with a short PCLK pulse at the end of the packed instead of the usual !CS line.
The whole board with the AD chip could be designed as an Arduino shield plugged into the STM32F7 discovery (shorter SPI bus) and then use something like IDC connectors and ribbon cables to carry the audio signals.  Or even go further and make it modular, group the loops in sets of ie. four, use one pin on the IDC connector to detect if the cable is plugged in and reconfigure the GUI to match the number of available loops. This way the user could build a simpler version with less loops or expand it later on etc.

stallik

You could cut out the cost of the interface by installing a Bluetooth or wireless card and getting users to download the control app to their existing tablet. Cheaper and, to many, modern and hi tec
Insanity: doing the same thing over and over again and expecting different results. Albert Einstein

R.G.

Quote from: free electron on November 29, 2015, 01:14:55 PM
A possible candidate for the job could be the STM32F7 discovery board.
Ah. Thanks for that. I'm living in what amounts to my version of a designer's paradise. All my professional life, the problem has been how to do the pick and shovel work to get the communications and interface parts of what I wanted to do done. I'm glad that the touchpad with programming at a reasonable price has finally dropped down to where it's a usable, integratable tool. Looks good. My only gripe is that a 4.3" touchscreen may as well be invisible to me from a standing height, as my onboard optical sensors continue to degrade from lifetime overuse.    >:(  So it's OK for young bucks that can see fleas from 30 yards. Maybe that's enough.  :icon_wink:

QuoteAll the work would be shifted to the software side. Looks like the Ad75019 could be driven via SPI...
Or even go further and make it modular, group the loops in sets of ie. four, use one pin on the IDC connector to detect if the cable is plugged in and reconfigure the GUI to match the number of available loops. This way the user could build a simpler version with less loops or expand it later on etc.

From a quick perusal of the docos, I think I'd go ahead and spend the $1-2 for PIC as a hardware simplifier, rather than trying to do bit banging in the STM32F7. Sometimes a little hardware can make software vastly simpler. And more modular, as we'll get to in a minute.

I have a working setup with a low-end PIC spitting out the settings for the crossbar, as well figuring out what the settings ought to be. This turns out to be simple in concept but needs filtering from the raw human input to keep the crossbar running in a sane way. Table look up and local logic for some ancillary functions makes sense. The PIC can manage the sensing of the footswitches and send filtered versions to the screen to help with programming and switching as well.

Another avenue is simply pasting the PIC to a wireless RF, WiFi or Bluetooth module to let it cry for help from any number of devices. That makes it independent of the specific screen, and implementable if you have an already existing laptop or pad that's otherwise useless, as several of my earlier laptops are now. One of my earlier laptops won't run anything past XP (or linux/BSD/etc) and is dedicated to being my "intelligent oscilloscope". Another is about to be co-opted into the controller for a CNC router I recently picked up.

And I can see the screens. Big help.    :icon_lol:
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

PRR

> cycle through the loops with the encoder and press it

I may be very wrong, but I think if the first unit *can* go to 15 different places, the second unit to 14 different places...

There's about 1.3^12 or say 1,300,000,000,000 possible combinations.

I don't think a list of the possible matrix settings is any help.

Also scrolling through lists drives me mad. Take the burden off the hardware and dump it on the user.

> User can simply move any pedal to a different location and other pedals would move out of the way

That's the guts of IMHO the "only" way this could work on stage, even rehearsal.

I've made an animated GIF. You should see a moving finger. (If not, try opening the image in new window, or different browser.)


http://oi65.tinypic.com/303id83.jpg

A picture of the Chain, plus a pile of available pedals.

(In hindsight I see that "Remove" can simply be dragging the unwanted pedal back to the Idle pile. Or just off-the-chain, where it would snap-back to Idle pile.) (There's probably a cleverer way to do Replace or Insert too.)

Of course this is initial setup. For most acts, you would pre-set several/many/many-many patches and name them "Stairway.." "Am. Woman" "Down By.." "Gnarly" "E. Slide" "Hendrix". And on stage you might not have the patch setup screen, just your top-dozen patches and "more" to select from hundreds or thousands of patches.

That's another point. You have 567 patches saved and your Pi's little mind goes blank. It needs a SAVE file format, to dump to thumb-drive or, in today's world, upload to a Cloud for quick recovery.
  • SUPPORTER

stallik

#24
Nice animation. I was thinking of a single space where a doubleclick turns off the unwanted effect but actually, your idea is clearer. Saving files is easy. File would only contain patch name and effect name/loop number/loop position x15. If you wanted to add pics, then add an entry for the pic number and the pics themselves.
There are 15 loops. The possible variations are irrelevant as far as the software goes, it's just the above info for each loop. The software just has to send the right details to the switching circuitry so that it can do its magic
Insanity: doing the same thing over and over again and expecting different results. Albert Einstein

amptramp

I prefer to go the stone axe route.  The input and each pedal output is assigned to a busbar and each busbar can be selected for each pedal input by a rotary switch and you can get 12-position or even 24-position switches and they can have rotation blocked to the number of pedals you use.  So the preamp input is connected by a switch to the guitar output busbar, the wah pedal is connected by a switch to the preamp etc., but any pedal can be connected in any order and pedals can be left out and one switch is saved for the amplifier input.  Equip the rotary switches with yellow chickenhead knobs and even R.G. can read them from twenty feet away.

hey, that might be a good name - Stone Axe Router.

Hatredman

R.G., I have a question that is far far away from what is being discussed, but I think it matters.

I'm assuming you did not put an external all-bypass switch or relay to bypass the AD75019 when no loop is engaged. If you didn't (and even if you did), how do you cope with the limited headroom of such a solid-state solution? I mean, a hot TS9 or booster, intended to overload the grid of some lovely 12AX7 lady, will in fact overload the AD75019 with awful results.

I've been toying with the idea of using the MT8816 (8x16) for some time now for a usable audio matrix, but reading its poor specs made me give up precisely due to these concerns. Is the AD75019 any better?
Kirk Hammet invented the Burst Box.

R.G.

Bear in mind that I've only seen the datasheet, never touched a real chip, but the datasheet says it will swing over +/-10V with +/-12V supplies. That's another thing that attracted me to the chip and one reason I've spent this much time on it. It's unlikely to be the limiter of the dynamic range if this it true. Even if it's running from +/-9V from a DC supply and a charge converter, that's twice the signal range of any 9V pedal.

Yeah, yeah, you could run into issues with an 18V powered pedal, or a 24V powered pedal, or the unattenuated output of a tube preamp, and it wouldn't do well to switch speaker outputs or 120Vac power, but I think it's OK for switching pedals.  :icon_lol:

... until proven otherwise. Someday I'll buy one.

Quote from: amptramp on November 29, 2015, 06:26:10 PM
I prefer to go the stone axe route.  The input and each pedal output is assigned to a busbar and each busbar can be selected for each pedal input by a rotary switch and you can get 12-position or even 24-position switches and they can have rotation blocked to the number of pedals you use.  So the preamp input is connected by a switch to the guitar output busbar, the wah pedal is connected by a switch to the preamp etc., but any pedal can be connected in any order and pedals can be left out and one switch is saved for the amplifier input.  Equip the rotary switches with yellow chickenhead knobs and even R.G. can read them from twenty feet away.

hey, that might be a good name - Stone Axe Router.
That's actually what the first design of a pedalboard router was on geofex, back in 2000. See http://www.geofex.com/article_folders/fxswitchr/fxswitchr.htm, pictures 3, 4, 5, and 6.

And chickenhead knobs I can see from 20 feet away are truly huge.    :icon_biggrin:
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

free electron

The LCD on the STM32F7 board is about the size of a modern smart phone. Unfortunately the viewing angle is not that great. Here is it compared to a standard 1590BB box:



Concept wise, i'd tend to use a separate config screen, where you can place all the loops and a huge preset number + it's name displayed in normal use mode. Or even go a full "nerd" route and use the resistor color code to show the preset number ;)
In edit mode you have to be closer to the LCD anyway to be able to use the touch screen.

Btw, there is a new 5$ Raspberry Pi zero with a HDMI output, also worth considering.

R.G.

I suspect that the best way to do this is to hook up a local controller to run the footswitches and the crossbar, and then to work a Bluetooth or Wifi link module for communications, and generate an application programming interface so that the setup can be run by whomever and whatever is on the other end of the link. There are so very many communicating devices in the world now that choosing one and only one is probably a losing proposition.

Second rule of engineering: if you don't which of several or many options to do, make it selectable or adjustable.

Sadly, because the world is slowly learning that every hackable link will be hacked, it will mean that authentication and encryption protocols will need to be generated so you have some hope of it not being interfered with.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

R.G.

Current status is two PCBs. One is input PCB and output jack PCB. The input PCB contains the input jack, three loops, and the output as a break-off part, as well as the crossbar and three 12-pin connector spaces. This board by itself implements a three-loop crossbar looper and has a few wires to interface with a controller uC. The uC reads any number of footswitches and sorts out what to tell the crossbar to do as a result of the last footswitch press. Number of footswitches is not logically connected to the number of loops, other than that you can't choose more "patches" than the number of loops can do.

The second PCB is four loops and a connector. The connector can plug a 12-position ribbon cable into one of the connectors on the input PCB. This adds four loops when you do it. So you get a three-loop setup which is marginal, but possibly useful, and then a seven, an 11, or a fifteen loop setup by adding one, two or three four-loop PCBs to the setup. All of the four-loops are identical. 

I'll probably add some jumper blocks so the controller can know how many loops are installed and make sense of how many loops to tell the crossbar to do. There's one other PCB to do, the controller and its connection to N footswitches and a communications module.

Hmmm. Maybe I ought to include a USB or ethernet connector option as well as Bluetooth or Wifi. Or split the footswitches from the crossbar so you could put the footswitch unit out on stage and the looper itself back by the amps. Depends on whether you're doing bedroom use or stage use, I guess.

So very many options.  :icon_biggrin:
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

free electron

Nice! I like the modular expandable approach.
Bluetooth is more local (limited range= less hackable?) and doesn't need all that WiFi infrastructure around. Cypress makes a nice ~10$ certified modules, actually it's a small ARM Cortex M0+ with a bluetooth link built in:
http://www.cypress.com/documentation/development-kitsboards/cy8ckit-142-psoc-4-ble-module
Could even replace the main controller, has a plenty IOs and an UART header to add more comm modules.

I think recording studios could be potentially interested in such device. Ability to quickly rewire pedals, store the settings, assign them to different audio projects within the DAW... that sounds very tempting!

Digital Larry

#32
Consider leveraging the node-red user interface.

http://nodered.org/

It already has a concept of linking together functional blocks.  If you can write your own module definitions to involve the concept of connecting things on a crosspoint switch I don't see why it wouldn't work.

The UI is all served up over a regular network connection to your browser.  So the UI could be rendered on any thing like a laptop, Chromebook, iPad, etc. without modification. This would steer you towards Wi-Fi.

If this thing were actually connected to the internet, your tech could trigger patch changes by sending tweets from her mobile phone. Engage the boost pedal when your favorite team scores a goal or the value of your stock portfolio exceeds some limit.  You could send your patch changes to "the cloud" for "big data analysis".   And it can certainly run on a Pi!
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

R.G.

Quote from: Digital Larry on December 12, 2015, 10:39:16 AM
Consider leveraging the node-red user interface.

http://nodered.org/

It already has a concept of linking together functional blocks.  If you can write your own module definitions to involve the concept of connecting things on a crosspoint switch I don't see why it wouldn't work.
Nice! Thanks. I'll go have a look.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

G. Hoffman

I don't know - I think you may be overthinking the interface.  A row of LED indicators for each loop, as wide as the number of positions you have.  So, if you want sixteen positions for sixteen loops, a grid of LED's 16X16.  The rows (or columns, if you prefer) represent each pedal, and the LED which is lit tells you it's position in the chain. 

Gabriel

R.G.

I do overthink a lot of things, so it's entirely possible. Although I personally would get lost with a 16x16 LED grid after applying the two-beers rule.  :icon_biggrin: Other folks might do a lot better.

And no one has popped up to question whether any of N effects in any of N! combinations and permutations is a good thing to do at all, or to call me on whether it makes sense for a guitar player to go flipping effect order on the fly on stage anyway. I'm a little disappointed Mark.  :icon_lol:

It is true that changing some effect orders makes sense and does change the tone a bit. However, in actual practice, there are only a few (compared to numbers like 16 factorial) order combinations that make musical sense, and this is probably best determined back at the practice room. Leaveing certain things out of an ordered chain, or using bypass and insertions to effectively choose one of a few possible parallel choices is probably a better scheme.

I've intimated this a little before in this thread, but a non-blocking crossbar can do things that are probably best left undone, bringing back the old adage that just because you can do something doesn't mean you should do it. Or it doesn't mean I should do it. Other people can probably do a better job of keeping things straight than I can.

I suppose we'll see. I had to put the layouts aside for the moment, as real life has re-intruded on the fun stuff, but I already did what I consider the easy part, a board to use the 16x16 crossbar to do a 15-loops package hooked to phone jacks. Boards would take a week or two, but then you'd have to figure out how to read a batch of footswitches, the number of which is not logically related to the number of loops at all, and then have something feed a serial bit stream to the switch to make it work.

Just as we used to say back in the programming center: no problem, it's just a simple matter of programming to get it to work.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

G. Hoffman

Well, the thing that most interests me about this would be for the wet side of the wet/dry/wet rig I've been working on forever.  For me, it would ONLY be for time based effects (reverb, delay, chorus, etc., in case anyone looking in on a topic this obscure doesn't know that).  I could maybe see it being of use to, for instance, move a distortion before or after a tremolo (changing the volume, verses changing the amount of gain), but I'm not too worried about that.

Hatredman pointed me to this thread, though, because of a question I asked on the digital board.  For me, the appeal would be to have input and output busses switched to send and return loops, which gives you not only the ability to swap order, but also to put things in either series or parallel.  It basically halves the number of I/O's to 8X8 (you need to switch both the inputs and the outputs), and if you want to run stereo (I do!), you'd really need two of these chips (pricey! - but then I was thinking of using 128 opto-transistors!)  (The idea here is to have the pedals run 100% wet, and each input buss sums the previous output buss with the dry signal, and then you have a mix buss which mixes all of the output busses.  It's complicated, I know, but it makes feedback loops much harder.  You can also have two or three series strings in parallel by skipping busses.  I'm pretty sure I'm explaining this badly, but I can see it clearly in my head!)

This begs the question, though - from the data sheet, it does say you can assign any and all inputs to any and all outputs, which I take to mean you can assign multiple outputs to an input (GOOD!  You would need this for parallel operation), but that means you need to sum those inputs some how.  Can you just have a summing resistor on each input, and a buffer on each output?  or is there a problem trying to sum things inside the chip?

I did a quick look on Mouser, though, and there are much smaller chips (8x8, for instance) if someone really though 16x16 was too big. 

At any rate, here is kind of the idea I was having - make of it what you will.  I think input and output busses makes it a lot more versatile.




Gabriel

G. Hoffman

Quote from: R.G. on December 13, 2015, 01:02:54 AM
I do overthink a lot of things, so it's entirely possible. Although I personally would get lost with a 16x16 LED grid after applying the two-beers rule.  :icon_biggrin: Other folks might do a lot better.

Color code the LEDs - blue for position one, red for position two, purple for three.  Or, use RGB LED's, and give each loop a color - the order of colors tells you the order of effects.  Then, you just need 16 LEDs.


Gabriel

G. Hoffman

#38
Same idea, using the AD75019:





(This was put together VERY quickly - nothing tested, nothing in any way built to scale or rendered with texture, as it were.)


Gabriel

tommy.genes

I don't make it around here much any more, but I'm glad I stumbled into this thread. I was working on something like this about two years ago but ran into the following problems...

  • Not enough time to do it (biggest issue).
  • Older Mitel MT88XX chip (retired by Mitel, but still made by Microsemi) that only had discrete address lines, not serial interface (cheaper, though). Not really a big issue with GPIO port manipulation.
  • Complexity of user interface. Was thinking of a novel preset recall system, but how do you remember onstage that "preset 12" is this specific, complex effects path?
  • I thought it might have to be a drag-and-drop touch screen app, too. Or maybe an offline editor for presets stored in the pedal.
  • I was looking at a lot fewer loops, but had a couple of other routing ideas. Still, the number of permutations was overwhelming. I think user research to determine what are the most usable configurations could help reign it in.
I will keep an eye on the thread. If this gets broken up into smaller tasks that other people could help out with in a team effort, I might be able to contribute (but likely not until after the holidays). I was working with a Teensy 3.1 and Arduino IDE originally, but could also work on other platforms.

-- T. G. --
"A man works hard all week to keep his pants off all weekend." - Captain Eugene Harold "Armor Abs" Krabs