Pedal for acoustic guitar tone + Condenser mic preamp + Rhythm sample player


#1

Here is a demo:

Overall:
Rechargeable Li-ion Battery operated
Compact size
Mute footswitch
Samples/song stored on micro-SD card
One rotary encoder + switch for menu editing
3 regular pots
1 footswitch
+ external 3 footswitch pedal
1 OLED display
IR convolution with a custom made acoustic IR for my HD-28.

Guitar:
1) High pass filter on IR path (Frequency tunable in the menu)
2) Full PEQ on IR path (Frequency, Gain, Q-factor tunable in the menu)
3) Semi PEQ on IR path (Frequency, Gain tunable in the menu)
4) IR Blend (analog pot always at hand)
5) Volume (analog pot always at hand)

Microphone:
1) 12V Phantom power
2) Quality analog gain circuit with +/-12v voltage rails
3) Gain pot (always at hand)
4) High pass filter (Frequency tunable in the menu)
5) Volume (tunable in the menu)

Rythm/Sample track (Dozen song on SD card right now)
1) External digitech FS3X controlable
2) Track A: looping a cajon beat with shakers and percussion
3) Track B: looping a Drum beat with congas
4) Track C: looping a twice long sample. Can be trigged before or after the beat, it will start sync'd.
5) Count in (setup in menu).
6) Volume (tunable in menu)

The workflow is the following
You have 4 footswitches
* Axoloti main: (n°1)
* FS3X called: Mode/Down/Up

When n°1 is in play

Mode: Play/Stop tracks A+B (B is usually muted)
NB: only first press on Play includes a "count in", so you can use Play/Stop to make breaks
Down: Unmutes Track B to add a drum beat
Up: Launches the sample.
NB: if the footswitch is pressed before the beat. Axoloti wait for the beat to play the sample in sync then loop it until another footswitch press.
If the footswitch is pressed slightly after the beat, the sample is not played from the beginning. It calculate how late you are and play the sample as if you pressed "on-time".

When n°1 is in mute

Mode: Trig the "count in", so the next "Play press" includes a count in.
Down: Browses the song list down
Up: Browses the song list up

CukiIR19Rythm13B.axp (105.3 KB)


#2

Very cool! Can you link a resource on how you made the convoultion table? I assume it's 1024 bytes of a raw wav. It'd be cool if you had a link for convolution response recording and trimming technique.


#3

The way to make IR is patented by Fishman and audiosprockets. Yamaha has also a patent but IIR based.

If you read it carefully, you'll figure it out.

Link to Audiosprockets Tonedexter patent

Link to Fishman Aura patent


#5

What? I absolutely don't agree that it's a patented technique (it's pretty fundamental math) and the linked patents don't describe how to make an impulse response (IR). An impulse response is just that, a recording of an impulse in a space. Usually a click or a clap is used.

What I'm asking is not some crazy esoteric secret, there's a table in your axp with datapoints from a wave file. What is the format of this wave file - raw 41khz, no header? I'm really just asking how it works, I thought you might know.


#6

I am sorry I did not understand the question

So I uploaded the wav file in matlab and converted it into a table.

The variable in matlab has values between -1 and 1.

In the table, positive values range from 1 to 32767 (2^15-1). The negative values from -1 to 0 range in the table from 32768 to 65536-1=65535.

so my matlab code is the following (it would work on octave):

[IR,FS,NBITS]=wavread('IR_filename.wav');
IR2=zeros(1024,1);
IR2=IR(1:1024);

%Conversion
y0=32768;
fileID = fopen('IR.txt','w');

for i=1:1024
yy=round((0.5+IR2(i)/2)*(2^16-2)+1);
if yy>=y0
YY=yy-y0+1;
else
YY=yy+2^16-1-y0-1;
end;
mot=['array[',num2str(i,'%d'),']=',num2str(YY,'%d'),';\n'];
fprintf(fileID,mot);
end;

fclose(fileID);

Then I open the text file and copy it into the axoloti table.

PS: Deconvolution is not patented of course. There is a lot of litterature about that. However extracting an IR from a room is easy. You can clap your hand to excite all the frequencies or use a sine sweep signal with a speaker. It is much more tricky to apply a sine sweep to an acoustic guitar and you might not want to hit it with a hammer. Actually, there is a paper showing that the hammer is not the best method to extract an IR from a guitar. Anyway, I like how it is done in the audiosprockets patent. My way to make acoustic guitar IR is slightly different but quite close. I would not describe it better than what's in the patent.


#7

Here is another article that deal with the subject

Link to article

Here is a quote from this article:
"In [1] we first estimated the EQ filter target response by an impact hammer excitation to the bridge. However, better results were achieved by using normal but spectrally rich playing of the guitar as an excitation signal."
The hammer excitation is equivalent to the click or clap you suggested. I don't use that technique, I never tried but I think it would lead to poor signal-to-noise ratio since you'd end up with very low energy spread over the whole spectrum. The use of "normal but spectrally rich playing of the guitar" enables to have more energy in each frequency and optimize the signal-to-noise ratio.

I don't know why you think "the linked patents don't describe how to make an impulse response (IR)".

I think they do. That's how I did it.


#8

Thank you so much! I didn't mean to come off angry, I was just confused by your response :slight_smile: I guess I didn't read the patents well enough. It's interesting with the hammer technique. I wonder if it would be nice to place a small speaker to play a loud pop inside the guitar cavity - I think it's an unfair comparison they make. They bang the strings with a hammer and use EQ to approximate the sound of the acoustic guitar, then they make an impulse response by strumming the guitar. I think the loud pop would be good too, but who knows.

It's an interesting technique they use, I'll give it a shot soon! Thank you so much for the great response.


#9

Well I don't know for IR making but as far as laser vibrometry is concerned a lab automated hammer seems to work better than a speaker.

Here is a picture of my guitar while we were setting up for the speaker excitation. It worked but did not give satisfying results. The big machine is a 3-D laser vibrometer.


#10

Wow, that's a complex setup. Never seen one of those before.


#11

really nice work! I have a small yamaha travel guitar here and I'm looking forward how it sounds through your IR object!

As for making the IR I have a an exciter speaker here that is made to turn an object into a speaker. On could use it to play any sound through the guitar in order to make the IR.


#12

If you want to make an IR for your yamaha travel guitar.

There are plenty of acoustic IR to download on the internet.

Link to IR download

Some were obviously extracted from Fishman Aura.

If you only have one IR to make: just pm me and I'll make it. All you need is to send me simultaneous 48kHz recordings by pickup and external microphone of your acoustic guitar. But it should be a real guitar, not the Yamaha travel...


#13

Hey cuky!

Sorry for never coming back to this. Your project still looks interesting but I have more things on a higher priority which is why atm.

Just out of curiosity: Would this also work for cabinet simultions? My plan is the following, run my piezo through the acoustic impulses and run my humbucker through a electric guitar preamp and then through a cab sim. It would be very convenient if one axoloti could do both.

Also: I have a friend who is into axoloti and electric violins. Which format do these IR have to be? I've found this IR archive of another commercial product. The IR are just text files.
https://onedrive.live.com/?authkey=%21AIWgd7OvFn9lyUs&cid=192CF8BF95854071&id=192CF8BF95854071%21161103&parId=192CF8BF95854071%21154425&action=locate


#14

yeah very interesting, i will try and look at your code at some point and maybe extract a general IR object from it? collected a really nice response library over the years, eg. with great spring reverbs.


#15

Hi Cuki,
Nice project, sounds great.

I'm using IR's on my violin for a more realistic tone and having good results. Although my violin through the piezo pickup doesn't have the frequency response of an acoustic it also doesn't have a flat frequency response. The IR's I have of acoustic violins are, of course, relative to a flat frequency response. If I simply apply an IR to my piezo sound I still don't have the frequency response of a Stradavari, I have a frequency response half way between a Strad and my piezo sound.

What I'd like to do is create the inverse response of my piezo sound and create an IR that is the difference between my piezo and the Strad. I have taken an IR from my piezo but can't work out how to invert it's response. It strikes me that, as a maths type dude, you might know a way of doing this? Is this something you considered with your preamp?

Edit: After days of searching I found the way straight after posting this. A free program called Room EQ Wizard will add, subtract, multiply and divide responses. Nice!


#16

Hi all,

I'm kind of confused on the formatting of the table.

I have cello IRs that in each line look like this

-2.47136256000000E+0008

how can I format to axoloti table format?

If these IRs won't work how can I make my own?

EDIT: I also have some wav files. I just don't understand how to make the axoloti table from this.

EDIT 2: I tried using octave per @Cuki 's instruction but the file I got was all 1s --->

EDIT 3: Ha, figured it out i think. Apparently wavread is no longer supported in octave - use audioread which is its replacement. remove the nbits

I also am not familiar with this program at all so please correct me if i'm wrong. testing now