Monday, July 27, 2020

Teensy Audio Shield: Little Audio Board, Big Audio Fun

Welcome back my friends to the blog that never ends. 

If you're a audio geek like me and have been sheltered in place for the past frigging 50 years, perhaps your entertainment values have changed? To wit: the $35 I would have blown on a foreign movie date with my psychiatrist girlfriend remains unspent.

So let's have fun with that $35USD--i.e., audio DIWHY geek fun--and at the same time we'll get small.

Digital Audio--super powerful MPU--stereo headphone jack and amp--tons of free example sketches--stereo analog I/O on board--all for $35 USD? Are you frigging NUTS?  No, it's true!  All hail Stoffregen and Coon!

TEENSY!

I started down the Teensy rabbit hole while researching I2S (more on I2S in upcoming posts; in a nutshell it's a common digital protocol for sending audio data between devices).  I wanted to get my hands dirty with I2S but feared chasing digital synch issues, PC crashes, horrible aliasing, and general fear and loathing.  These were things I had to contend with during the many years I worked in audio for film post--and this is supposed to be fun, so, nope, let's not go there again.

Ditch the dubbers, elmo: During my quest for I2S without issue I found the vid here: Teensy Audio. Wow! For digital audio fans this rig has everything already built in: I2S, A to D, D to A, an SD card reader, the codecs you'll need, an affordable MPU with some effects already preprogrammed in a comprehensive library, even a 3.5" amplified stereo handphone jack--again: are you kidding--plug it in an go right? 

But is it all too easy? I needed to find out.

I bought a teensy 4.0 direct from the manufacturer, pjrc.com, along with their audio shield or hat or whatever you call it, and it arrived neatly packaged and boxed a few days later.

My goal was to get the Teensy 4 working, programmable from the Arduino IDE, run the audio examples, then record the examples and post them online--there are many vids about this technology, but I could find few that clearly showed how this little spud really sounds when put to the test.

The legendary Teensy Shield. Wait--no legends next to the pins? Why not? Sadly the silks are on the other side of the shield--not useful. I guess you can't have everything for $35?


STACK EM UP RAWHIDE

I bought the version without pins. What else am I doing these days to pass the time?

Which meant: solder all the pins and get the shield stuck on the MPU. But still have the shield removable as needed down the road.

I looked around the Interweb for the best practice for this MPU to shield connect and to my astonishment couldn't find it.  Time to roll my own? How hard could this be?

Here is what I came up with:

Needed: the teensy 4, the audio shield for it, soldering rig + solder wick; male to male breakaway header pins and male to female breakaway header pins.









Step One: install male/male pins to the teensy, as you would with any MPU:



Step Two: This is important!! Use solder wick to get rid of any extra solder that ended up on the top side of the Teensy. The shield has to lay flush, so you want to make sure this solder job is completely tidy and minimal without "solder Hersheys kisses" getting in the way.




Step Three: solder the M/females headers to the bottom of the shield:

Step Four: mate 'em up.

SIMPLE RIGHT?  You will end up with something like what you see below, but, check your work! I consider myself pretty OK with fab, but I had undersoldered a couple of pins after wicking; thus the shield didn't initially work when it came time to breadboard. But! if I used too much solder the audio shield wouldn't sit flush with the MPU and the audio would cut in and out. Yep, this takes some pretty careful soldering.


Next, I needed analog breakouts:  here is what I came up with. The 3.5" jacks board was left over from another project.....

But wait! We are not done with the Teensy hardware.

The audio board has provisions for a flash (non-volative storage) or RAM (read/write; loses data at power off) chip.  The latter assists in getting longer (1500ms) delay times from the board, which is what I want--information about these chips can be found toward the bottom of the page here.

I ended up buying ram chips direct from Microchip and soldering one on.  It would have been easier to do this before the headers were installed, but whatever. I got it done.



Thank goodness for scotch tape....

Not the neatest SMD solder job ever, but hey, it works.

Next, I needed some pots n' switches to goose the analogRead() statements in the sample sketches.

The many online tutorials (e.g.: here) use breadboarded parts for this, but I hate breadboarding, so I built this out of perf, which I like only a bit better:



Now let's breadboard the Teensy + shield and wire it up to a DAW using USB:


And set up a rig for testing, screwing with the code, etc. which goes like this:

The IKEA steak knife on the left is the unofficial "reboot your MPU tool" for Teensy Audio. Otherwise you can't easily get to the really small reboot switch, and, you're gonna need to get to this switch from time to time.

UPLOADING CODE

Yep with all the hardware up and running it's time to get the example sketches onto the Teensy....

This proved to be a tiny bit trickier for me vs. the hardware part.

The teensy USB setup is not like what I've seen elsewhere. Yes, you use the same USB cabling, the same Arduino IDE, the same laptop and the rest of it, but you also need special software from PJRC called their "loader" to get the Teensy to eat sketches of any stripe.

I tried to get the loader and Ardunio IDE working on Fedora Linux--that's where I do most all of my coding-- and couldn't get it to work after about 2 evenings of trying.  No, Captain Ubuntu, I didn't try compiling from source code which probably would have worked--sorry cap, that would have been too easy.

I went to Mac OS-X Sierra and everything worked right away, but with one strange detail--after you power cycle things, for the first upload from OSX to the Teensy, you (often?) have to press the tiny white button on the teensy itself to initiate the upload. (see the steak knife in the photo above--yep, that's why it's there). Note that this momentary switch is a bit obscured by the shield--sorry.

The Teensie then can eat the sketch from the IDE.

After that it all works--no more need to hit the white button, until the next time you power cycle things. Then you have to hit the tiny button again--but just once.

This really stumped me for a bit.

Also: to have the serial I/O (you know, Serial.begin(); etc etc), you have to choose the Teensy USB port within Arduino IDE; but you don't have to do that to program the device.  OK.....


THE TEENSY AUDIO DESIGN TOOL

Something that got me really interested about the Teensie is its web based GUI.  PJRC has a web UI to assist coding your own effects and audio widgets that they call the "audio design tool". Take a look at that here.

My goodness! You can chain things together, create feedback loops, and even rename the objects, sorta like a small web version of Reaktor. Then hit the EXPORT button and the Arduino sketch object instantiation is done for you--copy the code into your sketch. And!!! you can take an existing Teensy Audio sketch, such as code in the PJRC provided examples, import the sketch into a blank web UI, and the UI will create the Reaktor-like object flow for your perusal.

It all works! Now, that is really cool.

But wait--proving once again there are still mosquitos in paradise: the GUI is extremely helpful but it won't write all your code for you.  In fact if you just plunk the auto-generated code into a sketch and expect to hear sound, forget it. You won't.

For instance: using the TA UI tool, I created this very simple stereo mixer:

DO NOT FORGET! the SGTL5000_1 object on the left, or your sketch won't work!

And then EXPORTED it to a sketch.....all code you see at the top of the sketch was pre-rolled.

But to get this to work, I had to create the code you see in setup{} and loop{}--the GUI only created the objects and #include statements you see at the top of the sketch.

Fortunately between the examples sketches, information you get from PJRCs documentation, and what you might glean from what seems like a gazillion youtube "howto" vids, you get a feel for what you need to code reasonably fast.

/////////////SIMPLE TEENSY STEREO MIXER/////////////////////

#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

// GUItool: begin automatically generated code
AudioInputI2S            i2s1;           //xy=244,74
AudioMixer4              mixer2;         //xy=369,169
AudioMixer4              mixer1;         //xy=374,35
AudioOutputI2S           i2s2;           //xy=506,72
AudioConnection          patchCord1(i2s1, 0, mixer1, 0);
AudioConnection          patchCord2(i2s1, 1, mixer2, 0);
AudioConnection          patchCord3(mixer2, 0, i2s2, 1);
AudioConnection          patchCord4(mixer1, 0, i2s2, 0);
AudioControlSGTL5000     sgtl5000_1;     //xy=90,51
// GUItool: end automatically generated code

// COOL, BUT I HAD TO CODE SETUP{} AND LOOP{} BY HAND:

void setup() {

   //you need this or no audio!
   AudioMemory(8);

  //and this!!!
  sgtl5000_1.enable();

}

void loop() {

//Mixer properties
// mixer(x,y)
// x is mixer input, so for us, 0
//y is gain:  
//0 = no audio
//1 = unity
// >1 gain
//goes to 32000+, that's some serious damn gain!

mixer2.gain(0, 1);
mixer1.gain(0, 1);
}

SHUT UP AND LINK THE SOUND FILE!

OK, it's here.  the sound demo is as bare bones as I could make it--there are no attempts to synch the delay to the beat of the loop for instance. My goal here is remind myself in six months this thing sounds....that's it.

You can also get a zipped copy of the sketches used (most of the examples were modified slightly to fit my I/O setup) here.

The gear used for the demo recording: OSX mac running Ableton 10 suite; Apologee Duet ADDA; the Teensy; unbalanced out to Rane SM82 with unbalanced loop sends to a Tascam SS-R200.

In other words, as simple as I can make this.

 The chorus/flange is gritty and I didn't like its sound much; tweaking the example sketch--I feel I tried a lot of things--didn't get me much improvement. 

For the other FX, I hear hiss and noise--some of the noise isn't teensy's fault I think; I could have spent more time optimizing levels to get rid of some of the noise, but overall I needed to get this done as simply and quickly as I could, so there you go.

Overall, I thought the reverb, filters, delays, etc., were pretty damn good--definitely good enough to put in series with other audio effects someone might dream up--need five 12db/octave bandpass filters in parallel for a specialized EQ?  Use a teensy audio--boom, done, here it is.


TO TEENSY OR NOT TO TEENSY? TO TEENSY!

Or: what did I think?  Ha!  It's a blog so I can say anything I want right?

The Teensy Audio's chorus/flange implementation was a bit weak, and I have a few minor gripes about how the hardware is laid out (such as silks, see above) but beyond that, this is one of the greatest, if not the #1 GREATEST,  DIY/Maker audio development products I've ever seen. It could cost 3x as much and arguably still be a great deal, but for $35USD? Again: Are you kidding me?

Using stock or slightly modified sketches you can quickly create some reasonably good effects like reverb and delay, and with some imagination, creative coding, and tweaking, who knows what someone might come up with. There are just tons of creative possibilities here.

I felt after a bit of a learning curve I started to pick the coding up pretty fast.

And of course I haven't even touched on a lot of the other things this device can do--synthesizer module sims, audio analysis, and a lot more.

Overall: I figure PJRC put a butt ton of work into this--with great passion--and it shows. PJRC should win the nobel prize--they have my nomination anyway--yes, This teensy>audio thing is that good. If you are into MPUs, DIY and audio, run, don't walk, and get this thing.

For me, it's beyond hours of fun--Teensy Audio is going to change things. Yow!




Thursday, July 16, 2020

I2C Bubble Display Part III: It Works!

Hello again, time for Part III--using retro bubble displays for your audio (or any geeky) DIY project; use I2C to get unsigned long (32 bit) values to show up on the slave display.

The basic idea: use an Arduino Pro Micro to receive the I2C slave data and get the bubble display to show the 6 digit number sent to it.

Part I: I get the bubbles surplus (National Semi NSA1166--but the ideas here can probably be used on most any bubble or 7 seg display) and get it working with an Arduino, here;  how to get the 32 bit long data needed--when we are stuck in 8bit I2Clandia--from one Arduino to the Promini on the back of the bubble board--is here.

This time--I created a PCB for the Pro Micro, 74HC595 shift registers, a Bourns SMD resistor array and the bubbles--and it works!

Notice yellow kludge wire; I screwed up one of the pull ups for the 74HC595's on Rev1 6-14-20 of the PCB.  I'll fix that and post on my website. The chip on the far right is a Bourns 330 ohm SMD resistor array. 

Not that much to say--feel like I've met the goals. The pro mini on the board above does the heavy lifting to decode the incoming I2C. So I can send numeric data to the display using just 2 data lines and ground vs all the other ways to do this. One of the trickier things here is the bubble Eagle device had to be created from scratch, and the bourns array had to be modified as the pads were too small to manually solder. For the three or so remaining DIYers on the planet that still use Eagle vs. Kicad, a good tutorial on Eagle device futzing (from the technically dazzling righto.com dude--truly awesome stuff) is here.

Oh yeh I had one trace error which I fix here with a 30 gauge kludge wire; website has this correction already.

For tests, Uno as I2C master and Pro Micro on bubble board as I2C slave....





Building the bubbles: the damn thing didn't display the right numbers until I realized my code was sending bits to the shift registers in the wrong order! No, the ons and offs need to hit right 74HC595's in the right order for this to work.  As soon as I figured that out, it started to work.

Flip the display over--ah ha, Pro Micro clono!


What will I use this I2C retro bubble display for?  No idea.  I was thinking visual frequency output for a VCO? Pulse timer? Countdown display for something or other? Don't know.  But now that I can use an I2C device as a master for it, I have a lot of possibilities, which is always good.

This weekend I'll post schematics, PDFs, sketch code, BOMs etc. on my website. Update: DONE! go here. I feel an antique computer project coming next? Teensie audio?  Finish the noise! project? Too much to do but at least hanging out at the local pool hall isn't an option. Time gained back!!!

Until next time, don't breathe the bubbles.

Saturday, July 4, 2020

Improved PAIA FracRak Clone "Wing" Power Supply


Quick One this Time: I usually build in an unusual format: PAIA Frac. It uses +/-15V (not +/- 12V/5V found on Euro). Physical Size  is about the same, but Frac generally does not require "skiff" configuration, making it easier for prototyping and quick customization for whatever you're conjuring up.

However there is a drawback to Frac: PAIA's 9770 series "wing" frac linear supplies are a bit wimpy and hard to work with. So awhile back I built a drop in replacement. (see the post here)

This time let's further improve on the "improved" clone replacement.

Size Matters: The original PAIA supply as well as my drop in clone are small little squarishy thangs, each with 5x +15/-15 DC connectors for your modules. Right away that's a problem: we need more power headers, because a standard FR-7 frac case can hold up to 10 1U modules--load it up all the way and we'd be 5 connectors short.

Also, The original 9770R has no PCB provisions for heat sinks for its regulators--and the regulators on the orig 9770R swing in the breeze; if you add heat sinks to the PAIA board they could cause shorts. Let's fix that.

Of course you run the risk of sucking too much current out of the supply if you hook all sorts of current drawing craziness, but we need to be able to source at least 150mA+ from each rail of the clones without too trouble; and maybe a lot more; so let's make sure to use heat sinks and thermal paste for best performance.

(BTW, PAIA did address some shortcomings with the beefier frac supply which at the moment I can't find on their site--did they discontinue it?  Assuming it's still in production it still has "regulator flap syndrome" (glue em down boys!) and takes up 1U of your FRAC case. This potentially makes the power header connectors hard to get to, depending on what you have mounted adjacent to it, so i am back to the clone of the clone.  Still if you can find it and physically protect the on board regulators it's a good supply.)


New Psup board top; original drop in clone bottom.
Fight The Power: It's simple really, I stretched the clone board and added 4x more breakouts. Now, the breakouts sit "behind" most modules you install next to it, so no having to shove PCBs aside to plug things in.







Almost ready to test: the new PCB mounted in a FR7 enclosure.

Yes you need to dig up 2x more 4-40 screws, spacers, and some nuts, and will have to drill out 2 small holes in frac side case panel.  The stretch board has 6x mounting screws, where the original had 4x. But overall it's easier to plug in modules and you get better physical support for the far side of the PCB.

"Seems working"

All in all, seems to work; I've built 2 of these "stretch" supplies without issue. Of course, as with any electronics DIY project--be careful. something as simple as putting a polarized cap in backwards can cause big problems, so work slowly, and if you're not sure what you are doing, get help.

Time to move on!

If you want to check out this p-sup--get PDFs, schems, gerbers, BOM etc, at my website here.  You'll need a beefy AC wall wart as well; For each supply board I used 16V AC 1A wall wart that I got surplus and it works fine.

Until next time: Frac well and live. 

Saturday, June 20, 2020

PCF8574A I2C Shift Register/Port Extender--Can't Avoid That Sinking Feeling

It's the weekend, I remain stuck at home, so let's crack open a new chip (new for me anyway) and see if we can blow it up.

For the recent retro bubble display post (here) I had endless fun messing with shift register ICs like the 74HC595--use 595's to increase the number of I/O pins on your MPU.

OK, I was buying pots at Tayda and stumbled upon what looked like the same 595-596 shift register/extender idea, but controlled by I2C: the PCF8574A.

Looks powerful--super inexpensive.





(If you've followed this blog or messed with electronics you probably already know I2C, a super easy way to hook together digital dookies so they can talk to one another. A good general description of I2C is here. The Arduino "sketch" language makes communication with this protocol super easy using its built in Wire.h library

OK, let's put the 8574A on the bench, get the datasheet (here) and see what's up. Can we make this IC chooch?


The short answer: yes.

The long answer: The datasheet is a partial head scratcher for me, what is up with the R/W bit in the I2C address? What is the d flip flop for really? And what the hell is a "quasi-bidirectional port"?

Turns out, you can ignore all that crap; instead watch a few you tube vids. Ralph Bacon's 8574 vid, here, is recommended; Ralph always has extremely user friendly and easy-to-follow vids.

Another good vid is here--it features an Arduino sketch library to ease 8574 Arduino programming (here). The library however seemed to over-complicate things for the examples below so I stuck with Wire.h.

What I found: this chip for all practical purposes only sinks current + can't source it; also, to set a pin to read, you have to write a "1" bit to it first, then read a signal via when 5V source through a pull-up resistor (seems to need a hefty one? 100K?) is pulled to GND. When you read GND on this configured "input" pin, it will return to the MPU, via I2C, a value for the pin; read current limited 5v and you'll get a 0. 

This seemed a bit counter-intuitive to me, but beyond that, this is an extremely straightforward chip to work with.

So my Saturday morning goal was to come up with the simplest examples of 8574A writes and reads I coulld. There are lots of 8574 examples on the Interweb, but the two I have here, in this post, might be the most dumbed down?

It's gonna be that sort of weekend.

Let's do an "output" first--wire up an Uno and a 8574A like this to flash an LED:

don't forget to ground address pins A0,A1,A2--I bought "A" chips from Tayda, they have different I2C addresses vs. the non-A chips. Ground em all for an A chip you get 0x38 as your I2C address.  Your address may vary, so use the I2C checker here if you get stuck.

The obligatory bench photo (OBP)--ready to run the code below.....

Code to flash the LED is this:

 #include <Wire.h> //include Wire.h library
//this sketch sets pins to outputs.

void setup() {
  
Wire.begin();
}

void loop() {
  
  Wire.beginTransmission(0x38);
  Wire.write(0x00);
  Wire.endTransmission();
  delay(500);

    Wire.beginTransmission(0x38);
  Wire.write(0xFF);
  Wire.endTransmission();
  delay(500);
 // Wire.write(0x00);

  
}

Pretty easy--as long as you realize the damn thing only sinks current, well, it's pretty much what you'd expect.

Reading data is a tiny bit trickier:



(Note that I didn't use pull up resistors for SDA, SCL, and Interrupt ("N/C" ) as they didn't seem to be needed, although I found posts on line saying they were....not for me. In fact for the 2 examples here "interrupt" isn't used at all.....)

Here's the code for reading the switch's status:

#include <Wire.h> //include Wire.h library
//this sketch sets pins to outputs then reads.
//pull up to 5V at a pin via 100K resistor returns 0
//GND returns a value for the read pin.

byte x = 0;

void setup() {

Wire.begin();
Serial.begin(9600);

//initialize chip--all i/o is "read"
Wire.beginTransmission(0x38);
Wire.write(0b11111111);
Wire.endTransmission();

}

void loop() {


  Wire.requestFrom(0x38,1);
  if (Wire.available())
  x = Wire.read();
  

// you will see x > 0 ("2" in this case) if you ground the pin.
//otherwise you see 0 in stdout. 
// Make sure to use pullups. 

Serial.println(x);
delay(500);

}

Yep, the thing I got stuck on initially was having to send the "read" pins a 1 bit, what you see in setup(), then you can read from them (in the loop) after.  I haven't seen other ICs that require this before.

Also I went down a rabbit hole seeing if I could use address 0x71 (I2C address for the chip with a 1 in the LSB) to simplify the "read" code; the docs seem to indicate you can somehow, but if so, I couldn't figure it out.

Downshift? OK with all that in hand we have another cool way to generate 1's and 0's which in our world we can turn into things like gates, triggers, note-ons, mux shifts, or whatever. Throw a PNP transistor onto one of these pins and you can do all sorts of trigger control craziness.

I'll spend hours saying it's hours of fun because it is just that--hours of fun.

Q: We I2C, but do we C I2I? Need to ponder that one. Until next time, remember to avoid breathing the fumes, and always sidestep that sinking feeling.

Monday, June 15, 2020

PT2399 Based Synthesizer Echo: The "PT Cruiser"

I come from a family of car nuts and this is about as close as I get to all of that grease monkey stuff. I had some PT2399 chips in my junk box, figured it was time to dust 'em off and build something.

The chip is super inexpensive--I got 20 from Amazon recently for about $1 each USD. Hello? When do you see that sort of price for specialized audio IC's?

There are quite a few folks who have 2399 kits: MFOS, Befaco, and more. But audio kits built "stock", to me are like building a puzzle: great way to pass the time but what are you learning, really? 

So I started down the path of coming up with my own take on this chip, whatever that might end up looking like.

First, the usual interweb research: The defacto "how this chip really works" page is from Electrosmash, here. Somewhat crappy datasheet for PT2399 is here, and diyaudiocircuits has a good page for PT2399, here. A good E-M page for 2399 is here. Trying to get longer delays out of it? I haven't tried it yet, but, go here. This goes on.....since the PT2399 is inexpensive and easy to wire up it's a popular way to get some echo.

To get started, I found a github webpage (here), where the author, Joe Beuckman lays out a design very similar to the PT2399 datasheet and posts it in Eagle format. And it's single sided! Great starting point; let's build it:

The PT2399 datasheet layout,  in Eagle format

Got the files from github, here. Opened it in Eagle, create the gerber and off it went to JLCPCB.  

Back!  Let's build!  

Here's the PCB, silks are not wet, but probably were recently:



Stuff that puppy:


The circuit needs 5V power and my Frac rig is +/15V, so I used the 15V-5V linear DC converter from a previous Arduino project, get that from my website here.


PCB front panel for test is left over from the noise! project.....

Bench testing, I found the input level to be a bit weak so I added a +6db buffer at input, simple non- inverting buffer circuit; get that on my website here. I used 2x 100K resistors for R1/R2 there, to get the 6db gain. Also, the 18K resistor R7 in the feedback loop seemed a bit high. I tried lower values (10K is better) but settled on a B25K pot wired in parallel with the feedback resistor, giving me  redundant control between the existing "feedback" pot and this new pot, which I called "loop". OK, between the two pots I can now get endless feedback. 

Then it was a matter of screwing it all together with 4x40 hardware. Easy.



Here's the "finished" module ready to go in the rack. Obviously a temp front panel treatment, but before I start adding VC, modulation, wet/dry and a whole bunch of other crap, well, I have something to mess around with that gives me basic echo. 

And best of all, it sounds, to my ears anyway, surprisingly good--tops out at about 350ms per repeat, but, what do you expect for a $1USD audio chip?  



Next up: I already redesigned this basic PT2399 board to include the power and buffer and extra pot on a single PCB, allowing SKIFF if someone wants that, and will also fit behind a 1u Frac panel or about 6HP Euro. I'll post that one of these days. In the meantime, we're off the races on another fun organic audio project; more coming on this and other echo/mod circuits for your (no, really, MY) geek audio jones. So until next time, don't breathe the PT(ty) fumes.

Tuesday, June 9, 2020

PAIA 2720-3B Filters: Gasboss and Unleaded

You can read part I of this post here....

Jumping back in: my first synthesizer was a PAIA, and this time, let's finish up a PAIA inspired filter from E-M guru Gasboss775; it's his take on a the classic PAIA bandpass 2720-3B filter from a bygone era.

I add details about building a 2720-3B "stock" clone as well.


You can read more about the Gasboss design on the E-M forum here. Again part I of this post is here. You might want to skim it.

A sound demo for the filters is  here, Go to my website (here) to can get schems, Gerbers, etc. etc. for the two filters discussed in this post.

Build notes: From the last post the Gasboss version was a single PCB, but why make things easy?

For the Gasboss module I added a "jacks board" to make this into a SKIFF setup and used PCB material (post here) and "Mr. Label" (here) to create the one-off front panel you see above.

Sandwich it all together with 100 mil headers and 4x40 hardware.

Worked--the Q pot turns the wrong way (so fully CCW is full Q), but, anyway, that will do:








I also added more input buffering and "BOWAL" (Bowal? ??? Post for Bowal is here) capabilities to the "jacks" PCB as well....bias offsets seem to help these filters deal with different CV sources so that's in.



My PAIA/Gasboss filter jacks board uses tall trimmers and here I learned something that should have been obvious: you can't hold a skiff front panel in place without 9mm threaded pots at the top or some damn thing to screw the front panel to. So, the front panel was wiggling all over. I ended up epoxying screws at the top so the front panel didn't move around; kludgey but it worked:






Son of a 2720-3B!! Just for S-n-G's, as long as I was fabbing Gasboss' filter, I figured why not send out a gerber at the same time that is a direct lift from the original PAIA schema, but modified very slightly for +/- 15V (the original required +18V and GND).

Why=whynot?

Orig 2720 schem--it's all over the Internet so I assume it's OK here?










Poof! Done, board is back, took about an hour to build?

That was easy, the original PAIA circuit is super simple and I think I successfully guessed what values are needed for the lower voltage rail by 3V.  Sounds ok and no smoke! I buffered the outputs, giving the world one goes outta at +6DB and one at +12db, because you KNOW you're going to need to crank up the output.

The 0db output isn't om amp buffered. Wasn't on the original. I guess 741s were expensive back then?


For the "stock" 2720 front panel I used Lazertran (how-to post here).  Decal graphics came out a bit crappy so I might redo it.

Some build photos--sorry.

2720-B clone, but +/- 15V.  I added buffers, otherwise no need for V--.



Used a 5x jack sub-board and 2x buffer non inverting buffer boards--one of two shown here.



Using the Gasboss filter and 2720-3B clone: For normal bandpass filtering uses, the 2720 is, well, subtle?  But! Right off--it's super easy to get either of these filters to distort. So you'll just crank up the input signal and pin that puppy right?  Nope. I noticed for both filters the band pass frequency sweep is less noticeable if you overload the filter at input. I don't know why--I need to think about that. To get the distortion and wah-wah action simultaneously, best to crank up the resonance--as you would with an MS20 filter.

I found myself attenuating the signal going into the filter and then cranking it back up at output. It got noisy and in some cases I got a 60 cycle hum when I really pushed up the output gain. But that's actually kinda cool--I don't have anything else in my rack that does that. If I need 60 cycle hum for some specific sound design need, well, now I know how to get it.

I remember doing a lot of wind/drum sounds with the PAIA 2700 back in the day and my old PAIA 2720 bandpass module was a big part of that. The 2720's are really good filters for processing pink noise. The Taiko sounds you hear in the sound clip demo (again--here) was created by using an aconitum noise circuit with the 2720 bandpass in series and the Gabbar EG--that was it. That got put into a BitBox 1010 and captured with Expert Sleeper modules back into Ableton.

Yeh, it's a pretty crappy sound demo--you can hear the filters at work but it's not my best compositional moment.  Oh well.  Excuse time! I have a day job!

All the other sounds you hear in the demo utilized the filter primarily as a distortion unit, giving me grunge and grit which changed timbre as the filter swept. That's what the 2720 repop is best for as far as I can tell--for a VCF that only goes wah-wah you have a lot better choices.

On the demo everything you hear touches the 2720's somehow, the exception is the Roland D50-ish "big lead pad"--that didn't utilize this filter, sorry, the 2720-3B isn't right for everything.

I was a bit perplexed by the fact that these two filters never fully remove all input source sound, as you can with say a 24db/oct lowpass VCF. But then I found the other BP filters in my studio, including expensive fancy ones: they didn't either. Didn't know that about my bandpass filters.

Another thing to check out--use audio signals into these filters' CV inputs, in fact, try that with any VC filter. here, sticking audio or AM signals into the CV inputs, you get some really wild and strange distortion. Hours of fun.

Finished the PIE-Ah? So will the 2720 get a lot of use in my rack?  I don't know.  I kinda doubt it really. It's not a good filter for everything--it's not a good filter for a lot of things--but maybe no filter is. It does add another vehicle for me to get at distortion but I also have good DAW plugins for that (wait--DAW Plugins?) and get more precise control of the crunch.  That said, the 2720 has its own sort of distortion.

Nevertheless it was fun building these modules and remembering the good old PAIA days, when we wanted to sound like Rick Wakeman and didn't/couldn't; where the PAIA VCOs never were even close to being in tune, and DIY protogeek toys in our Central-Valley-Ranch-Home-Basement were the boss. Aloha!

Teensy Audio Shield: Little Audio Board, Big Audio Fun

Welcome back my friends to the blog that never ends.  If you're a audio geek like me and have been sheltered in place for the past ...