Feasibility of a spesific patch


#1

Hello,

I’m considering an Axoloti core solely to obtain a certain kind of audio effect (that I previously designed and used in another modular software), and I wonder if I could be able to replicate it (with regards to available objects and hardware capability) in Axoloti.

That patch should record a short piece of audio (let’s say 10 seconds) form a monophonic instrument, and simultaneously (while recording audio itself) detect time points of pitch changes and record these in another table. Afterwards, it should start playing this audio using one of those recorded time points as a start point marker. In other words it should randomly select a time point from the table and start playing the audio from there. For example, if I play a short piece like Sol, La, Fa, Do, La, Do, that patch should be able to detect the pitches and their timings; and when the recording stops it should repeat the audio starting from the La or Do or Sol randomly.

So I at least need an audio recording module (a table maybe), a pitch detector (pitches themselves are not critical, i.e. a Sol can be detected as La# and that doesn’t matter as long as the time point of the pitch change is correct), a table where I could write time points, a randomizer, and a playback module where I can select play-head position arbitrarily (without zero-crossing related clicks).

Do you think this is even possible?

Thanks in advance for your opinions

Q


#2

honestly this sounds like a lot of work for axoloti. currently there are no pitch detection objects on axoloti that work reliably. there was a port of the yin algorithm (search the forum) but it was/is unstable and would need some work.

what is your audio source? maybe you can take a different approach and measure the amplitude of the signal and peaks are new notes? so rather an attack detector than a pitch detector. that should be feasible with the axoloti (envelope follower etc.)


#3

Hi,
Thanks for the heads up

Actually I've already noticed the 'yin' port and that was the very reason I thought I might use Axoloti as such an effect device. Do you know how unstable it is?

Edit: I checked the relevant post and looks like yin is not pretty reliable yet

Regarding to peak detection, unfortunately that never worked for me elsewheres, because my sound source is a trumpet and notes are connected (glissando, slurs etc.) most of the times; thus, no usable peaks. Thanks for the suggestion nevertheless.

I wish there was a "sigmund" port (from max/pure data) : )

Regards

Q


#4

oh well, yeah trumpet is not that easy in that regard. at least it is monophonic. and the pitches are pretty high, so you could get away with simple zero-crossing methods for pitch detection. (filter out all frequencies above your highest pitch). what is your pickup? a piezo of some sort or a microphone?

i think there are some objects in the community library for this:


#5

Won't work with zero crossing, sorry.


#6

There is also the problem of octaviation which is quite tricky for pitch detection, i worked on such an algorithm 20 years ago and I had a lot of issues when tracking a saxophone.


#7

That 20 year remark made me remember my earliest efforts to achieve some out of the box effects for my trumpet and attempts to find a nice pitch to midi utility. Luckily it's pretty much easy now, there's (at least) one very efficient VST plugin, and also it's easy to do in the likes of Pure Data (Puckette's Sigmund is good enough).

Here, as I mentioned, I'm not after knowing what the pitch is, it may be an incorrect pitch, wrong octave etc. I just want to know when they change, so octave issue is not really an issue.

Nevertheless, now I have the impression that audio recording and pitch inspection and writing them into separate tables simultaneously may be a bit cumbersome for Axoloti, even if I had a reliable pitch follower object.

Thanks all for kindly sharing your opinions

Q


#8

I think that it will evolve as new members bring new objects and the topics around live real time analysis/re synthesis have tremendous applications !