Polybass copy / guitar pickup to analog in


#1

Hey there I want to create a copy of this:

http://www.polybass.com/

What this does it takes the output from a guitar hex pickup (per string pickup) and creates a subbass from the lowest note played.

I want to this with the lowest three strings on axoloti. So always the lowest played note is converted to pitch and feeds an oscilator.

I want to do this preferably with 1 audio Input. So my Idea was to hook up all three string pickus to relays and analog pins, to see which strings are being played. Then there would be a priority system in Axoloti always chossing the lowest played string. This would control either 3 relays or vactrols via the analog outputs so that only the lowest played string is fed into axoloti.

In order to achieve this here the practical part:

Can hook up the output of guitar pickup to an analog pin directly? Would a protection circuit like this be needed and work?

https://sebiik.github.io/community.axoloti.com.backup/uploads/default/original/2X/0/050d43df677171ae790e37b5710264dbc5770df5.JPG

For the pickups there is two choices:
Self wound single coils with a Voltage output in the milivolt range.

Roland Gk2 active output, output Voltage unknown.


#2

i have a polysubbass! (the grandfather of the polybass, but i suspect it's the same circuit)

i think your approach will not work (or it will but will produce a lot of glitches) since a guitar string signal is not linear in amplitude (it can get louder after a period of time for example) you will get a lot of false positives. if you look at the schematics of old hardware that did similar stuff, for example the gr300 guitar synth, a lot of care had to be taken (means a big circuit) to remove those amplitude changes and octave jumps etc.

i also see no way to decide which string to octave down without examining the pitch first. or how would you decide which string to synthesise? it is not always the lowest string played for example. it also will not be the loudest string played in every case.


#3

What you could try to do, is create a sort of one string pickup, I've seen online where people try to make their own pickups, then just hook that up directly to the Axo.


#4

But isnt that something you could do in patching? And octave jumps is fine with the pDtct by @SirSickSik

I ALWAYS want the lowest strings to be give priority thus beeing synthesized so that shouldnt be too hard to decide either.

I don't necesarrily want to copy the polybass, but rather take inspiration from the concept.

I started winding my own pickup coils. This is one of the options mentioned above.

A parallel maybe more convenient road is a roland gk2 pickup that I own. I just need to fix a +7v -7v power supply.

I think I will start hooking up only the two lowest strings to two inputs on one board. But in the future I want to hook up 3 strings to on input wich is why I start to think about this kind of aproaches.


#5

sure, if you always want the lowest string no matter what then you can try your relays option and handle pitch tracking in software. my comment was based on the assumption that you would need some pitch tracking to choose the string before feeding it to the axoloti.


#6

Feeding the pickup to one of the analogue pins directly probably won't do as these pins aren't updated fast enough (causing glitches as the input goes over the nyquist of the input) and the precision is probably to low to detect the pickup-input differences.
If you want to use it as some sort of gate (selecting which string is being played), you'll need to use a full-wave rectifier, gain and a slew function to create a gate-signal, which could then be send to either an analogue or digital input.

I've been trying to make a polyphonic pitch detector, but with limited results and quite a high cpu-use (worked quite well with sines, but screwed up when input became 6 complex waves at once). But I think some sort of poly-pitch detector should be able to bring you where you want. Perhaps you do a limited poly-pitch-detect with a cross-over filter and then put a pitch-detector over each band.

BUT WAIT!
You said you want to get the pitch of the lowest note being played.. which is of course different from reading multiple pitches.
If you use a LP-filter, set to quite a low frequency cutoff, it will force higher frequencies to always be of lower power then low frequencies. The pitch-detector will then always detect the lowest frequency as it's the biggest influence on the zero-crossing, thus giving you the bass-note. Though note, it depends on whether you are actually playing the key-note of the chord as lowest note.. you could also be playing a third, fourth or fifth as lowest note when playing an inverted chord..


#7

My suggestion would be using two axolotis that are connected via midi, and 3 audio inputs for each of the 3 strings (maybe you can use the extra audio input for the 4th string, or you can patch the audio out of first axolotl to it)

Then detect the pitch of each audio channel separately and compare the results to determine which note is the lowest.

Not the cheapest or most efficient way, but it eliminates the need for complex electronic circuitry.


#8

I want to hook up the pickups to the pins only to check if there is activity --> if the note is beeing played. That's why I wonder wich kind of circuitry I need in order to do that.

Then according to that only the lowest note of the 3 pickups should be let through.

I use a lot of inversions, so maybe this not the best aproach?

I know this will work but this is supposed to be part of a 2 board looper fx setup, so I want to keep the amount of axoloti boards low.

And I think the circuitry involved shouldnt be too crazy. I only need some protection for pins or am I wrong here?


#9

i just think this is "asking" for trouble. say you play an e on the a string. the e-string will vibrate as well and possibly give a false positive. so you would also need to measure the loudness of each string, which means you need a basic envelope follower per string.


#10

OK I get your point. But once I have the voltage of the signals fed to the analog pin I could do everything in patching right? Like the envelope follower you suggest for example.


#11

I have a plan to do something very similar, but have been reluctant as it is a contradiction to some things I have said before. :pensive: I will get a guitar to midi converter to recognize the note being played, this will intern free up resources on an Axo. Will still analyze the audio in for conditions, but will add the note recognition of the guitar to midi converter as well. I did want to avoid this approach, I have considered many similar scenario's then those mentioned, but I do fear that I am missing out by compromising on not using one, and so this is why I have chosen to get one. From video's I have watched, it should more than meet my needs. For me it would cost the same as an Axo. :grin:


#12

My initial plan was to do this on the teensy actually, since there is a pitch detection object already, and you could stack the audio shields to get more inputs.

Problem is I'm not a programmer and never worked with arduino so teensy is a bit undoable for me. Some of my friends are looking into the pitch detection on the teensy though.

If that would work I could do pitch detection + other sensors on teensy and hook it up to axoloti for the sound generation.

Which one do you have in mind?


#13

Sonuus have a couple of options, they look realy good, as I will use a bass guitar it will need to be the B2M model. They seem reasonably priced too.

Several times a got real close to getting the teensy and audio shield, but don't think its worth it... !
:grin:


#14

sonuus are not the thing i think. better to buy a hex-pickup and a used axon for example. the best latency wise will be the fishman triple play. axon has the same logic in it though, just more clumsy...(the same guy programmed it) for bass to midi you are always gonna get noticeable latency on lower notes unless you go the fret sense way, which works but is expensive. i have tried them all :slight_smile:

in the end i still built myself a dedicated midi bass with ribbon strips and fsr's and i have never looked back!

sure, but in order to read them into the analog in you will have to bias the signals first, since the guitar signal is ac, and you want to avoid negative voltages on the analog ins. if you add the resistors for bias and some diodes for protection you are halfway to a full wave rectifier already, which basically is an envelop-follower :slight_smile:


#15

Ok little update here, I tapped the lowest two strings from my Gk2, and made a digital priority that feeds into the pitch detection. It works quite well, but the pitch detection sometimes glitches when I play a low D (my guitar is tuned down a whole step)
It sometimes happens that the detection is confused and spits out fast moving random numbers until it settles to the right pitch. That makes it sound like a weird random glissando sometimes.

When testing before that wasn't as much of an issue. I guess it might be that the GK picks up more harmonics and attack sounds than the Neck Pickup that I used for testing before.

Any Ideas @SirSickSik how to improve detection on lower notes? Damping is how Is set the pitch detection:

Did you try the triple play? it looks good. All the other options are way too clumsy for the 21. century imho.

I don't need an acurate representation of the signal, I only need it to detect activity. So could I just clip the negative side of the signal?


#16

sure, try it.

i know the designer of the triple play. it is really very good, the same as the axon system which i own but in a much smaller form factor.

very definitely. the gk pick up a LOT of harmonics, since they are so close to the bridge. again, i have done this in puredata land with six audio channels. what you want for your approach is some heavy filtering and you set the cutoff based on the analog input readings. i would suggest a cutoff around the 10th fret of the played string. it should be easy to switch the lp filter frequency if you get consistent readings from the analog ins.


#17

May have to rethink the Sonuus then... :tired_face:
I'll check out some Arduino projects, and maybe I should implement one of my old ideas to add LDR's to an old analog Guitar tuner, the ones that have LED's light up when the string is tuned..
:thinking:


#18

sounds like fun! probably easier to directly hook the led output to a digital in. note though, that latency will again be horrible, the tuner is not optimised for speed. also, you don't get the correct octave from the led, but maybe that is not important. do you mean a real old tuner, with a hand (like on an old stereo or something) or what makes you think it is analog?


#19

Old because it reminds me of the ones I could buy 25 years ago, runs on a 9v bat.
It has an led for each string, and 3 extra led's green one in the middle, red on either side to help you know when you have it tuned. I know there is going to be latency etc, but considering I have a plethora LDR's and a few dev boards, no hassle to frig around with it. I was wondering though whether I could hack it to recognize the full chromatic. But it is on the back burner till I finish my home made midi controller. (a couple of weeks).

One thing I was reading about last night, was a few attempts people have made to use the guitar string and frets as a switch trigger. The problem they all seem to have is setting up with the switch trigger as well as the normal pickups running at the same time. There must be a way around it somehow. I am wondering whether there is a way of taking advantage of the normal guitar grounding as part of the signal flow rather then isolating like most do.
:grin:


#20

probably it is a bandpass filter per string. or some sort of pll...