Version 1.2.0


Improvements:
- Mouse and Keyboard inputs popup
- Better english
- More help hovers
- Better peaks precision
- 2 separate held inputs modes
- Popups with pages

New Features:
- Import and Export system
- New mouse handling
- New info page (tips and tricks)

Files

AbjectAudioInputs.1.2.0.zip 27 MB
Feb 18, 2021

Get Abject Audio Inputs

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

(1 edit)

Hey, having some difficulty with how the app processes audio - the hertz that it's reading doesn't match what it "should" be.  I.e. when I play a G3, it says 120Hz.  When I play a C4, it's still 120 Hz but sometimes it waffles between 100 and 120.  Other notes have different frequencies they waffle between but 120Hz is often one of them.  I'm playing a hurdy gurdy which can have a bit of a messy sound, but my phone's tuner app doesn't have much trouble identifying the notes I'm playing, whereas when I add an entry on Abject and set it to whatever the pitch is supposed to be (i.e. 440 for A4) it doesn't pick it up at all.


I guess I can just trial-and-error each note to figure out what frequency Abject thinks each note is, but it'd sure be a lot easier if it picked up notes as the notes they're supposed to be.  Maybe I'm missing something but I feel like a note => button seems a lot easier to use then a frequency => button interface.


EDIT: I did some additional testing using stock (viola) sounds, and it had the same issues.  The Hz reading flickered around a lot, and the numbers didn't seem to correspond whatsoever with the actual note being played.  I'm not sure what it's actually picking up?  But one maybe easier fix would be to change the spectrum analyzer - right now it shows me a nice graphic of how many different frequencies it's picking up, but I can't actually tell which frequencies those are and use them, unless I can see them on the Hz display above, which only seems to display whichever is currently the loudest and can be very hard to read when it's flicking back and forth between frequencies.  If I could at least see what frequencies it's hearing, it'd be a lot easier to find frequencies that I can use.

Yeah the thing is that, I can't handle a note so far... For now, I mostly look for the highest peak of my spectrum and give its frequency.
It is really hard to get which note is played only with a sound spectrum. Even more when I have to take in account every music instruments that can be played on this tool... If it was that easy, indeed I would have done it.
I am no expert in music algorithm, and even when I tried to isolate a specific placement of peaks in order to register a note, I got results less precise than when I use the "highest peak" method sadly...

If I get new Ideas on how to precisely isolate a note from a spectrum I'll try to implement it, but so far, this is the most precise I can be... Sorry

Hmm, are you using C#?  I could try looking around for an API.  I've done some work with Unity in the past so I might be able to help in some capacity.


Assuming that's impossible, though, the problem I'm running into is that it's hard to find unique frequencies for each notes.  Each frequency is often shared between some number of notes when I play them, so it's pretty tedious trial and error, made worse by how difficult it is to identify frequencies when it keeps flipping between the highest peak.  What if, instead of displaying only the current highest peak, it displayed multiple (like the top 5)?  That seems like it'd be pretty doable with what you've already got so far, and would make it a lot easier to identify the different frequencies in each note.  If possible, it'd also be cool to order the frequencies by their frequency number, instead of by highest peak, so that they don't flip-flop whenever one peak gets slightly higher than the other, since it can be really hard to read on the current display when two frequencies are at similar peaks.

(1 edit)

Yes I'm using C# :)

And yes it is what I intend to do for my new way of isolating notes. 

But the order of peaks is not going to work as some notes fluctuate multiple times between different peaks. I have my ideas in mind, I just have to rework all my code...

And considering the fact that I have been working every day on this tool for free for the last three weeks, I'm going to lay down a bit...

(1 edit)

Fair enough, thanks for the work you're putting in on this.  Would it be possible for me to look at the source code?  I understand if you don't want me to be able to change anything, but I'd be curious to take a look and see what you're doing so far, to see if I can figure out how to make it work with notes.


EDIT: talked to my friend who's more educated in frequencies than I am, and the ones being shown don't match up with what they "ought" to be.  Theoretically using the peak should work fine, but the peak isn't matching what is expected (i.e. A4=440Hz), even using sample tones.


I did some testing and I think the problem may be as simple as some bad math - I tested pure tones and the spectrum looked reasonable, but the Hz number itself was off.  Here are all the Hz I tested - what was played on the left, and what was heard by AAI on the right:

100 = 48.16
150 = 61.17
200 = 71.23
250 - 80.27
300 = 86.37
350 = 91.52
400 = 97.03
450 = 100.78
500 = 104.30
550 = 107.46
600 = 111.09
650 = 113.67
700 = 116.13
750 = 118.36
800 = 121.05


I notice two things - first that the "heard" number is always lower, and that it keeps getting further and further off.  50Hz played difference at low frequencies makes a 13Hz heard difference, but at the top end it's only a 3Hz heard difference.  So I'm thinking there must be some math error with how you're converting frequencies to a Hz number?  If the number is right then it should be easy to convert to a note just using the A4=440 table.