News:

SMF for DIYStompboxes.com!

Main Menu

PROJECT: Crossbar

Started by Peter Snowberg, March 12, 2006, 09:44:28 PM

Previous topic - Next topic

David


Peter Snowberg

Thanks for the bump. All my effects building has had to take a back seat to starting a furniture business which I've been working on for about 6 months now.

As a result of the furniture stuff I now have a very complete wood shop for building amp cabinets, complete with a CNC router for boxes and panels.

Hopefully time will return for audio projects very soon.
Eschew paradigm obfuscation

Peter Snowberg

Here's a diagram of how it's shaping up:

Eschew paradigm obfuscation

Dave_B

I think that explains it nicely, thanks Peter.  Have you thought about the user interface?  While daydreaming about a similar device, I imagined a 20x4 LCD with preset abbreviations for the effect types.  For example, patch one might read:
01 Patch Name
Comp>Dist>Chor>Dlay

You'd obviously have to do some setup when you added an effect to the chain.
Help build our Wiki!

David

You have to be able to modify the chain order.  Also an interface to an external patch librarian program on a Windows, Linux or Mac box would be extremely useful as well.

Peter Snowberg

The user interface could happen in a number of ways but an LCD would be one of the easiest and perhaps most intuitive. The LCD for the above example might show IN-2-1-3-4-5-A6-B. Using letters for the outs and numbers for the loops is one way to go. The more complete map would be IN-2X,2Y-1X,1Y-3X,3Y-4X,4Y-5X,5Y-6X-A,6Y-B,Mute-C-D. Another way to go about it would be an RGB LED for each loop and one for each output, but that could get confusing fairly quickly.

One thing that complicates issues is the use of effects with two outs like a stereo chorus. Using the "long form" of description work fine there but it gets more complex on the LCD.

Eschew paradigm obfuscation

David

I thought about this too.  With a 20x4, you could do something like:

Patch 1
ROBIN TROWER

4DST3FLN2VIB1WAH


Dave_B

Quote from: Peter Snowberg on July 14, 2006, 12:24:11 PM
One thing that complicates issues is the use of effects with two outs like a stereo chorus. Using the "long form" of description work fine there but it gets more complex on the LCD.
I was thinking about that too.  Would it be easier to hardwire two inputs together (basically wasting one) just to keep things straight?

Regarding the LCD, I assumed you could rearrange the effects.  I used names instead of numbers, since I know I couldn't keep the numbers straight if it got very large.  One way to accomplish that would be to add a standard PC keyboard jack to the crossbar.  You could plug it in when you need to program the names.  The other solution could be to have a table of preprogrammed names to assign.

Easy for me to say, right?   ;D
Help build our Wiki!

David

Patch librarian program running on a PC that downloads patch settings to the pedalboard via RS-232.  The settings are then stored in the PIC's data memory.

Dave_B

Help build our Wiki!

David

Quote from: David on August 16, 2006, 01:43:18 PM
Patch librarian program running on a PC that downloads patch settings to the pedalboard via RS-232.  The settings are then stored in the PIC's data memory.

Or, to get REALLY sneaky, I've given some thought to this:  PIC mounts in ZIF socket for easy removal.  When it's time for update, pop it out of socket in pedalboard, mount in programmer.  Fire up librarian program, select patch data (effects, order, patch names, etc.).  When selection complete, librarian creates source code for PIC as a series of include files.  Fire up MPLAB, build project, connect programmer, burn PIC, reinstall PIC in pedalboard.  Done.  Easy?  No.  Useful?  Hell, yes!  Configurable data can be stored IN PROGRAM SOURCE CODE this way, thus avoiding limitations with data memory size.

There's also ICSP, but I haven't done much with that yet.  Been busy with matrixed keypads and multiplexed I/O.
I hope to try playing some MIDI music tonight at 4MHz.

Peter Snowberg

Thanks for keeping this torch lit.  :icon_biggrin:

Here's the hardware overview as it stands: The analog switching is done via an LSI crossbar switch which is driven by an Atmel ATmega microcontroller. External communication happens via a USB/serial bridge chip which is opto-isolated to prevent ground loops between your audio gear and PC, and there isn't any reason you couldn't add MIDI control.

In system reprogramming of the MCU is done via JTAG and the firmware is written in a compiled BASIC (BAS-COM AVR) because that's the easiest tool I have available at the moment. The patch storage is done inside the MCU using on-board E2PROM. If that isn't enough memory, an external E2PROM can be added easily and inexpensively. Each patch requires a 16 byte 'bass pattern' for switch data, a couple more for configuration data about the buttons and LEDS, some more for the info about the patch to be shown on the display, and a little more for the instructions to process when a stompswitch is pressed or released. These instructions set or reset any switch in the matrix and set LED colors to show status, making this a script-driven device. Each patch program should be under 100 bytes.


Quote from: Dave_B on August 16, 2006, 10:22:51 AMWould it be easier to hardwire two inputs together (basically wasting one) just to keep things straight?

I think I understand and if so, that's what I've done in my models. One output from the matrix remains unused.


Now I just need some free time. :(
Eschew paradigm obfuscation

The Tone God

Quote from: Peter Snowberg on August 17, 2006, 02:28:15 PM
In system reprogramming of the MCU is done via JTAG and the firmware is written in a compiled BASIC (BAS-COM AVR) because that's the easiest tool I have available at the moment.

Are you using the JTAG interface or the JTAG in ISP mode ? It would be nice to allow others to use just ISP for those with STK500s, AVRISP, or whatever. I can't wait for my Dragon anyways. :)

BASIC ?!? :::cough wimp cough::: ;)

Andrew

Peter Snowberg

I've got a JTAG-ICE and once you've had that tool available, there's no going back.  :icon_biggrin: There's nothing to stop somebody from using a micro with enough pins that would leave the ISP stuff available. I'm using the ATmega128 for prototyping and will figure out the actual requirements later. I am using JTAG which limits the number of possible chips, but once the code is done it's very portable to another AVR.

....and yes.... basic.  :icon_neutral:

I'm a hardware designer and I'll do firmware to assist the hardware, but I really like soldering over everything else and I'm not really a C programmer. Add to that that my free time is very limited these days and I need to get "chicken scratch" stuff into operation. BASIC allows that to happen easily. I'm a bit burned out on coding in general.
Eschew paradigm obfuscation

The Tone God

I had a JTAG MkII :) but am waiting for the Dragon to come out, which is supposedly near the end of next month, so I know what you mean about the joys of JTAG/DW. I just want to make sure it is as accessible as possible to others.

I was just ribbing you about the Basic. Use what works for you. Depending on how it looks I may recode/port it to C. When I'm in the right mood I can run through code pretty quick.

Andrew

Rex Karz

Hi guys, I built an effects switcher using relays and a small PLC. I hope this isn't too far off topic or too late to comment on, but I see 2 things that keep me from going that (CMOS Switching) route. Firstly, being able to change the order of your effects is to me not worth the time, effort, and complexity it takes. In my system I order my effects in the way they're beig used for the most part (distortions, then flanges/choruses. compressors, delays). Second, I (being old) have always been hesitant to put semi's in the signal path. Third, I don't like chips connected to anything that can "touch" the outside world. If my guitar cord or amp cord tip came in contact with anything AC powered that wasn't grounded or isolated, it takes the chance of getting zapped. Being in industrial electronics for years makes a man love those relays. Thanks for listening.

danngreen

I'm curious how your relay switcher turned out.... Clicking when switching patches?

I've built a signal switcher/router for use with circuit bending devices. It uses four 4066 quad-switches and two ADC0804's to convert analog inputs into switch patterns. Not intended for audio signal use, but I believe the 4066 would be good enough, if i buffered properly. I had also considered mini-relays, so that's why I asked. here's a wiki page for my prototype: http://www.commonsound.com/kits/doku.php?id=commonsound:bend_matrix

I think using relays for the aforementioned "Crossbar" would require 64 or more relays?! might be advantages though...

puretube


danngreen

Peter, is there any hope for resurrecting the Crossbar? I think you said you're pretty busy these days, but I've been working on a similar device... it's an automatic circuit bending device I've been calling the Bend Matrix.

It's got a 4x4 matrix of lighted LED buttons, each which makes a connection between jumpers coming out of the Bend Matrix, using 4066 analog switches. the jumpers can be hooked up to "glitch" points on a circuit you want to bend. Press the buttons and viola! ciruit bending! possibilities include saving your patches, midi controlled bending, etc...

I've used it as an audio signal level switching patch-bay (ala Crossbar) by connecting the jumpers to 1/4" jacks, and it works but I get more bleedthrough than I want. I think a little resistance to ground on both sides of each 4066 switch would take care of this. Maybe buffering before the switches. Or different switches could be used (multiplexor, relays, etc)

Additionally (and this is where it gets fun for circuit bending, but perhaps too crazy for crossbar-ing) it has two a/d convertors (ADC0804) which take in a CV (provided by knobs or photocells) and output an 8-bit code. The two 8-bit codes correspond to the 16 bits of the 4x4 matrix of buttons. So as you turn the knobs up and down, the lighted switches flash in a binary counting sequence from all-off to all-on. lots of fun for glitching your glitches...

here's a rough wiki page (photo and soundclips)
http://www.commonsound.com/kits/doku.php?id=commonsound:bend_matrix

Be interesting to see if there's any energy now for working on switching matrix/crossbar. I plan to develop a pc board/kit for the bend matrix for circuit bending, but if it can be a wider project, that'd be great  :icon_wink:

Chuck

I'm thinking of doing it with the Zarlink chip.

Has anyone put one in a circuit yet?

Chuck