Spectrum Analyser Object


#1

Axoloti is designed for working with audio, and a spectrum analyser is designed to let you see what you're doing with audio. I've lost count the amount of times I've wanted such an object in the patching environment!

Something with add/removable frequency lines so we can, in effect, create our own frequency overlay grids to conveniently mark out our desired target frequencies etc*

*Axoman does not recommend using visual aids as a way to shape sound, but rather a way of mental ballpark-navigation when working with audio that needs to be within certain ranges etc.

Axoman Industries - Destroying Sound Design Barriers!


#2

Frequencies aren't that clear, but you can use the spectral/analyzer 24 object to have an idea of what's going on.


#3

why not just, run the Axoloti output into your computer... then use tools there?

axoloti's patcher is not very flexible for visualisation, and you still need to be connected to a computer. also an analyser object would use a lot of Axoloti cpu, so this might break the sound generator you were trying to measure!
(there is a primitive fft visual object, but for the reasons above I never use it... its just not practical)

I'll admit, perhaps this is just 'my workflow', since when patching I do have the Axoloti plugged into my audio interface, so to get a oscilloscope/spectrum analyser is no real effort... especially as I often have a daw running to process the incoming audio anyway :wink:


#4

ah, forgotten that one, I was thinking of rfft.... but haven't use either since very early days, since just too fiddly/small

i wonder if both could be improved, by the user specifying the frequency range/bucket sizes...
that way it would be easier to understand what you were looking at, and also to hone in, on particular frequency bands.
.. I still wouldn't use it though :wink:


#5

Shhhhhhhhh ... I'd love one so don't say that, I don't want anyone to see :smile:

Cheers Jan, Mark, but yeah I'd really like to see a much improved one. Sure I can feed it to something else and do it that way but it would be much better to have it there. I remember you saying something before about it eating-up CPU, but what about this for an idea ...

Why not make it part of the main patcher window toolbar instead of making it an object? You see that blank space at the top, near where the preset buttons are, we could have an elongated spectrum display there! It could take it's feed from the audio out of the patch without actually being part of the patch, and therefore, not effecting it, no CPU hit.

It could work like this:

  • Display placed in the toolbar so that it intelligently uses free space depending on the screen width.
  • Three buttons at the side of the display (+) to zoom in, (-) to zoom out, (...) to set options.
  • Options include the ability to add multiple reference lines at specific frequencies (and to delete them).
  • Click on display to set zoom position, with the ability to zoom with mouse wheel while over the display.
  • All frequency lines are displayed in black with the frequency displayed next to them.
  • The zoom line is displayed in red.

A completely awesome spectrum analyser in the Axoloti environment, always there, always handy, and not a single CPU hit on the patch itself :stuck_out_tongue_winking_eye:

Genuis or what?


#6

I tried to hack the spectral analyser to get outputs for the individual bands...... but that didnt work.... :smirk: :weary:

The spectral analyser is cool, but I also never use it, cause it uses too much DSP. But I use the scope like crazy :slight_smile:


#7

Ah, but if you click the options button, the display can also function as a scope :star_struck:

BTW, unblock me, I sent you a private message and just remembered you won't be able to see them!
I sent you something neat that might interest you.


#8

so then you need to have an audio interface (or some kind of audio input) back into the pc/mac... then what is the advantage of coding a spectrum analyser for Axoloti patcher, when there are loads available already?

I guess, at the end of the day, I just don't use spectrum analysers enough to perhaps appreciate the need for one being integrated in the patcher... whereas others might. (*)

anyway, its just a matter of getting a developer who wants to do it, perhaps someone has been waiting for an opportunity to write an analyser all their life :slight_smile:
(p.s. if someone does, you'll have to write it in java if its going to be in the patcher)

I do use the scopes, but really as a 'debug' tool to view signals whilst patching....
that's why for me they are kind of imperative - even then Id personally prefer a 'debug scope' something akin to Reaktor/Max where you can hover over a wire, and just inspect it... Ive no real need for it to be wired in.

But again, perhaps I'm in a minority, when using (rather than patching) I tend not to have the patcher running, I have Axoloti running standalone.

(*) I will say, if I wanted this, id say the better approach would be like audacity, to just support VSTs in the patcher, then you could use an Spectrum Analyser plugin... but again, I find this really a long way away from the core competencies of Axoloti.


#9

@axoman

You could also look into Pure Data a bit. On PD you dont have the same limitations as Axoloti has, with memory and stuff like that. So you can make FFT processing, spectrak analysis and things like that. But of course, not the same as using an Axoloti :slight_smile:


#10

Two things:
spectral/rfft uses (as the name says) real fast fourier transform (nota really sure about the size): this means that it outputs only the real part of the complex numbers that make up the spectrum. I suppose that the scaling is linear, so you should jeep that in mind if you want ti hack it. Also, the function that's being called is probably scaled in q15 format to fit values in 16bit variables, to save memory.
spectral/analyzer on the other hand, uses 16 tuned bandpass filters in parallel. It's much heavier than the other object, but the output is in q27 format (Like most display items in the ui).
So, in case you want to merge the two objects keep in mind that you should scale both the outputs and the format in order to achieve a decent result (or a result at all)

On a final note i just want to say that fourier transform is amazing and i have a picture of Jean Baptiste Fourier in my bedroom that i look every time i'm sad.


Isn't she lovely?


#11

Actually, I think I know just the man, one who's perfect for such a thing and probably has waited all his life to create such an awesome thing!

He's called Sputnki! :yum:

I'll take another look PD, cause I was interested in using it on my RPi3. The first time I took a look at it it was completely alien to me and I couldn't even find something remotely beginner enough for me to grasp it. So I'll take another look but only if I can find 'complete beginner' stuff on it first.

Just so you know, Sputnki, Jean-Baptiste Fourier was a man!

And no, I don't think he was lovely looking at all, in fact I think you have very bad taste having such things on your wall when I compare it to my taste, which of course is much better cause I have a poster of a red hot 80s babe posing with a red hot Lamborghini Countach on my wall!

However, Sputnki, I do have a proposition for you here, so listen-up!

If you was to use your awesome math skills to make the Spectrum Analyser, I promise not to tell the other forum members about your bedroom wall :grin: :wink:


#12

Sorry Mark, I forgot to answer this!

I meant internally, so that whatever is normally only sent to the speakers, is also routed to the Spectrum Analyser display "internally", within the confines of the Axoloti Patcher software, but outside the confines of the patch itself.


#13

As Mark said, such an object would have limited use in axoloti. Display items are part of the patcher, and it takes a Java developer to add/edit those features.
Having audio over USB is another nice thing that basic contributors like me can't do, and frankly i doubt we'll ever see it.
If you have an audio interface, even a basic one, it is much better to use an external analyzer to do the job: bigger fft size (which means higher resolution), better display and scaling, less load for the patch.
Personally I tried (unsuccessfully) to hack fft for different reasons, to do some spectral resynthesis. Maybe I'll get back to it after this fall's math course :thinking:.
However, try to embed the rfft object, change the display items to the vertical bars used in spectral/analyzer and in k-rate add " <<17 " in the end of every line.
Something like this:

disp_d1 = value[1] <<17;

If it displays something but you feel it overflows try a smaller number, if you see something but wish to see it bigger try a bigger number.


#14

Yeah PD used to have the same effect on make. I actually felt more stupid after trying to learn it... hehe :slight_smile:
But after a few years on Axoloti, Pure Data was easy for me to get into. So the last few month I havent been som active in Axo forum and focusing on PD. I just need to get my Pi3 build finished so Axo and Pi3 can complement each other .)

If you want to start out with some simple tutorials, I'd suggest trying out Dr. Hernandez(Cheetomoskeeto)'s
tutorials. They are very simple and very easy to follow and they give you insight in the most basic stuff in Pure Data:


#15

@Sputnki
Thanks for the heads-up on that programming thing, but you know me by now, if it gets in the way of immediacy I generally don't bother with it.

I'm quite shocked actually, that no one seems to be interested in Spectum when working with audio! Makes me wonder what the heck you use it for! Not having a Spectrum Analyser in an environment where sound design is highy likely, can be likened to an engineer not having access to precision calipers, or an electronics technician not having access to an oscilloscope, or a biological scientist not having access to a microscope!

Oscilloscopes and Spectrum Analysers are pretty much essential in sound design environments, but oh well, looks like I'll just have to feed it to other software then.

@jaffasplaffa
I was supposed to be not viewing YouTube videos until my SIM ran out (so that I can gauge general non-video bandwidth lifetime), but I couldn't resist that one out of curiosity. Thanks, I at least understood that, so I'll take a look at the rest at a later date!


#16

There is a lot of fields where axoloti could be improved, usb hub support, digital audio between boards, better integration with usb midi controllers, better usage of ram, nicer sounding filters, osc (the MI modules are already going into that direction), axoloti control shield.

Something like a spectrum anaylse is nice but eventually Axoloti is meant for building standalone hardware, so what's the point of having a spectrum analyser when you have no monitor to display it.
I mean the Idea is nice for sure but in the end all the scopes and disp/dial, disp/i kind of things eat up sdram that I personally prefer to use for my sound engine rather than for visualisation that's only helpfull when connected to the computer anyway. I would rather like to see some of points mentioned above realized instead.


#17

Not saying it should be given any priority over the stuff you mentioned, but I am saying it's "missing" from a product like Axoloti. You said it yourself, Axoloti is designed to permit the creation of a standalone product. That means the Axoloti Patcher is essentially the "development facility" where the design of that standalone product happens!

I do agree about it not being a good idea for it to be an object, but that simply means I think it should be part of the Axoloti Patcher environment rather than part of an Axoloti Patch. Pointless it being part of a patch cause like you said, surplus to requirements once the product has been designed.

But it's the process of design I'm getting at so here are some examples. I might be designing a parametric EQ, and using functions to adjust curves, responses to knob sweeps - so I want to see what it's doing on the spectrum. I might want to use functions to create a custom filter - so I want to see if I'm getting the desired curve - I need to see the spectrum. I might want to design a drum synthesizer and compare various topologies at the bottom end through switching between them. Again, I need to see the spectrum!

They're just examples for wanting a spectrum analyser.

There's actually a few essentials missing from Axoloti at the moment if looking at it from an audio design perspective. There's the lack of the spectrum, there's no band-reject (band-eleiminate) filter, and there's no system in place to ensure that when a person adds a dial or control to an object, it auto-creates an inlet for it. Take that last one for example. People are attracted to Axoloti diue to the promise of being able to be standalone and connect your own controllers to it.

Fact is, you're doing no such thing unless you know how to hack the code of almost every object in the libraries. The prioblem is that when people add a knob or button to an object, they seem to forget that the button and knobs they are adding are gong to be inaccesible when the product goes standalone. So to remedy that, I reckon Johannes should modify the system slightly so that whenever someone codes an object with buttons or knobs, the Axoloti environment auto-adds an inlet for it so that people can actually use it standalone (cause that's what they're expecting from Axoloti).

So there's a few areas Axoloti is still in it's infancy, and by no means do I expect a spectrum analyser to get any sort of priority over the other stuff, but it is definitely missing cause Axoloti Patcher is an audio product design envinronment.

Of course I'll do as you all suggest, I'll continue to feed another program with the audio, but it's still "missing" and it's something I personally would love to see become part of the Axoloti Patcher some day (as part of the patcher, not the patch) :sunglasses:


#18

this is not accurate, you can assign CC to controls, and you can also use mod sources.

parameters with inlets, already on the wish list... but it has various complications in practice.


#19

Sorry Mark, I meant the boards I/O connections, not MIDI, but great to hear parameter inlets are coming!


#20

Sure the analyser definately has place on the list of things that would improve the axoloti experience :slight_smile:

The even more annoying thing is that all those invisible knobs eat up your sram. I'm at the moment not only hacking inlets to objects but also removing the knobs and buttons that I don't need to free up sram for my patch which is even more tedious...