YIN Pitch Detection Algorithm Crate Struggling to Find Frequency From Guitar Interface

78 views Asked by At

Okay so this is like a part two of my previous question that was closed. For a little background, I am attempting to match an input from a bass, connected to my pc via an interface (Scarlett Solo), to a certain note with reliable results. I was suggested to use the YIN pitch detection algorithm after I was trying to use just plain Fourier Transforms.

Since I'm writing in rust, I'm using a rust implementation of the algorithm.

Trying to use the example that's provided with the crate, returns an estimated frequency of -1 no matter how many times I strum the bass which, after reading the source code, means that tau_max is higher than the audio_sample.len(). I have been debugging the best I can, emphasis on "I". So here's the info I've gathered so far:

Input:

Sampling Rate: 44100hz

Sample Length: 882

For standard tuning, I would be led to believe that the freq_min should be around 40.0hz and my freq_max should be around 444.0hz. For an example:

Yin parameters:

Threshold: 0.1

Freq_Min: 10.0

Freq_Max: 100.0

Sampling Rate: 44100hz

Example Real Audio Sample From My Interface:

[1.1801719665527344e-5, -7.2479248046875e-5, 1.5139579772949219e-5, -0.00025451183319091797, 1.1324882507324219e-5, -0.00014591217041015625, 1.621246337890625e-5,
 8.225440979003906e-6, 9.775161743164063e-6, 7.915496826171875e-5, 8.463859558105469e-6, 9.179115295410156e-5, 5.841255187988281e-6, 7.486343383789063e-5, 7.27176
6662597656e-6, 7.200241088867188e-5, 6.556510925292969e-6, -1.3113021850585938e-6, 8.106231689453125e-6, -1.3709068298339844e-5, 7.867813110351563e-6, 9.787082672
11914e-5, 1.0609626770019531e-5, 0.00019288063049316406, 8.463859558105469e-6, 0.0002307891845703125, 6.67572021484375e-6, 0.0003129243850708008, 1.22785568237304
69e-5, 0.00011241436004638672, 1.239776611328125e-5, 6.365776062011719e-5, 9.655952453613281e-6, 9.167194366455078e-5, 3.5762786865234375e-6, 0.000135660171508789
06, 7.271766662597656e-6, 0.00017333030700683594, 1.0728836059570313e-5, 0.00015044212341308594, 5.245208740234375e-6, 0.00021314620971679688, 8.702278137207031e-
6, 0.0003107786178588867, 1.430511474609375e-6, 0.00025844573974609375, 1.0728836059570313e-6, 0.0002657175064086914, -2.384185791015625e-7, 0.0002577304840087890
6, 7.3909759521484375e-6, 0.0003147125244140625, 1.0013580322265625e-5, 0.00021266937255859375, -1.430511474609375e-6, 0.00012826919555664063, 7.62939453125e-6, -
0.00030803680419921875, 5.7220458984375e-6, -0.0002892017364501953, 1.2159347534179688e-5, -0.0003082752227783203, 1.1563301086425781e-5, -0.00037491321563720703,
 7.62939453125e-6, -0.00020062923431396484, 4.291534423828125e-6, -0.00021648406982421875, 1.3113021850585938e-5, -0.00043702125549316406, 9.179115295410156e-6, -
0.00018918514251708984, 1.2040138244628906e-5, -1.2636184692382813e-5, 8.58306884765625e-6, -2.8133392333984375e-5, 8.940696716308594e-6, 7.450580596923828e-5, 1.
2636184692382813e-5, -0.00018155574798583984, 8.344650268554688e-6, -0.00018739700317382813, 1.239776611328125e-5, -0.00020205974578857422, 4.5299530029296875e-6,
 -0.0002893209457397461, -2.1457672119140625e-6, -0.00018107891082763672, 9.5367431640625e-6, -2.9206275939941406e-5, 1.5139579772949219e-5, -0.000137925148010253
9, 1.5854835510253906e-5, 7.665157318115234e-5, 1.0013580322265625e-5, 5.030632019042969e-5, 5.841255187988281e-6, -1.4543533325195313e-5, 3.4570693969726563e-6, 
0.00010180473327636719, 5.602836608886719e-6, -2.205371856689453e-5, 1.7523765563964844e-5, -5.2094459533691406e-5, 5.7220458984375e-6, 0.00011682510375976563, 1.
4424324035644531e-5, -3.254413604736328e-5, 5.4836273193359375e-6, 4.684925079345703e-5, 1.0132789611816406e-5, 9.429454803466797e-5, 8.463859558105469e-6, -4.017
353057861328e-5, 4.76837158203125e-7, 7.37905502319336e-5, 1.3232231140136719e-5, 2.4080276489257813e-5, 8.463859558105469e-6, -7.796287536621094e-5, 3.5762786865
234375e-6, 5.137920379638672e-5, 7.62939453125e-6, -3.135204315185547e-5, 3.933906555175781e-6, -1.5735626220703125e-5, 1.0132789611816406e-5, 0.00015044212341308
594, 1.0609626770019531e-5, -9.465217590332031e-5, 3.0994415283203125e-6, 1.9788742065429688e-5, 6.079673767089844e-6, 0.00020635128021240234, 6.794929504394531e-
6, -7.557868957519531e-5, 1.0728836059570313e-5, 5.745887756347656e-5, 1.1205673217773438e-5, 6.0677528381347656e-5, 1.0013580322265625e-5, 4.410743713378906e-5, 
7.62939453125e-6, 0.00011456012725830078, 3.814697265625e-6, 0.00015616416931152344, 1.0132789611816406e-5, -1.1920928955078125e-5, 1.0251998901367188e-5, 0.00014
80579376220703, 1.0848045349121094e-5, 2.5033950805664063e-6, 3.933906555175781e-6, 5.221366882324219e-5, 7.867813110351563e-6, 0.0001055002212524414, 5.841255187
988281e-6, 4.887580871582031e-6, 1.0609626770019531e-5, 1.6450881958007813e-5, 7.510185241699219e-6, 0.00010991096496582031, 1.1682510375976563e-5, 0.000124096870
42236328, 1.1324882507324219e-5, 0.00015413761138916016, 6.079673767089844e-6, 0.00013399124145507813, 1.1563301086425781e-5, -0.00016105175018310547, 9.179115295
410156e-6, -7.510185241699219e-5, 7.271766662597656e-6, -0.0001811981201171875, 1.4066696166992188e-5, -0.0002497434616088867, 8.940696716308594e-6, -0.0001654624
9389648438, 6.079673767089844e-6, -0.0002913475036621094, 8.702278137207031e-6, -4.112720489501953e-5, 1.2159347534179688e-5, 0.0002033710479736328, 3.33786010742
1875e-6, 6.258487701416016e-5, 3.0994415283203125e-6, 0.00014007091522216797, 7.3909759521484375e-6, 1.8835067749023438e-5, 8.106231689453125e-6, -0.0001235008239
7460938, 1.1801719665527344e-5, -2.574920654296875e-5, 1.1086463928222656e-5, -0.00012886524200439453, 1.0013580322265625e-5, -4.374980926513672e-5, 1.07288360595
70313e-5, -4.5418739318847656e-5, 4.291534423828125e-6, -7.2479248046875e-5, 1.0848045349121094e-5, -0.0001188516616821289, 7.3909759521484375e-6, -8.106231689453
125e-6, 9.775161743164063e-6, -0.0001952648162841797, 7.033348083496094e-6, -0.0001207590103149414, 1.4543533325195313e-5, 4.4345855712890625e-5, 6.19888305664062
5e-6, -6.258487701416016e-5, 7.3909759521484375e-6, 7.975101470947266e-5, 8.344650268554688e-6, 6.103515625e-5, 2.014636993408203e-5, -0.00012040138244628906, 6.4
373016357421875e-6, -8.022785186767578e-5, 1.2040138244628906e-5, -0.0003222227096557617, 8.463859558105469e-6, -0.0004899501800537109, 4.291534423828125e-6, -0.0
0035452842712402344, 6.198883056640625e-6, -0.0001970529556274414, 1.239776611328125e-5, -0.0001767873764038086, 1.4781951904296875e-5, 0.0004475116729736328, 4.4
10743713378906e-6, 0.0006158351898193359, 7.987022399902344e-6, 0.0004265308380126953, 1.049041748046875e-5, -9.620189666748047e-5, 6.9141387939453125e-6, -0.0008
109807968139648, 1.3709068298339844e-5, -0.00028192996978759766, 4.0531158447265625e-6, -0.0015528202056884766, 7.867813110351563e-6, -0.0072394609451293945, 9.53
67431640625e-6, -0.003149271011352539, 1.33514404296875e-5, 0.005071282386779785, 6.67572021484375e-6, 0.004336833953857422, 1.1086463928222656e-5, -0.00204908847
8088379, 1.4424324035644531e-5, -0.003884434700012207, 1.2040138244628906e-5, 0.00025963783264160156, 1.0609626770019531e-5, 0.0024677515029907227, 7.271766662597
656e-6, 0.00041985511779785156, 7.3909759521484375e-6, -0.001635432243347168, 1.3470649719238281e-5, -0.001246809959411621, 3.5762786865234375e-6, -0.000663518905
6396484, 1.2278556823730469e-5, 0.00024902820587158203, 8.821487426757813e-6, -0.0001087188720703125, 1.1801719665527344e-5, -0.0006527900695800781, 1.10864639282
22656e-5, -0.0009067058563232422, 4.649162292480469e-6, -0.0003839731216430664, 1.1801719665527344e-5, -7.522106170654297e-5, 1.1682510375976563e-5, -0.0002340078
353881836, 1.1086463928222656e-5, -0.0007443428039550781, 1.4424324035644531e-5, -0.0009454488754272461, 9.059906005859375e-6, -0.0007128715515136719, 1.549720764
1601563e-5, -0.00036644935607910156, 7.510185241699219e-6, -0.0003268718719482422, 1.6450881958007813e-5, -0.00024318695068359375, 1.049041748046875e-5, -0.000299
69215393066406, 1.1324882507324219e-5, -0.0002849102020263672, 6.794929504394531e-6, -0.00033736228942871094, 7.271766662597656e-6, -0.00040602684020996094, 1.025
1998901367188e-5, -0.0004677772521972656, 4.887580871582031e-6, -0.0005118846893310547, 1.3113021850585938e-5, -0.0005797147750854492, 1.0132789611816406e-5, -0.0
0041556358337402344, 1.704692840576172e-5, -0.00024950504302978516, 9.775161743164063e-6, -0.0002930164337158203, 1.049041748046875e-5, -0.00039386749267578125, 7
.152557373046875e-6, -0.00041496753692626953, 1.4066696166992188e-5, -0.00051116943359375, 4.410743713378906e-6, -0.0004137754440307617, 2.384185791015625e-7, -0.
0004113912582397461, 7.3909759521484375e-6, -0.0005201101303100586, 1.1563301086425781e-5, -0.0005333423614501953, 1.1086463928222656e-5, -0.0004571676254272461, 
1.2159347534179688e-5, -0.0005220174789428711, 6.67572021484375e-6, -0.0004761219024658203, 3.5762786865234375e-7, -0.000510096549987793, 1.0609626770019531e-5, -
0.000453948974609375, 1.2993812561035156e-5, -0.000553131103515625, 9.179115295410156e-6, -0.0005295276641845703, 3.814697265625e-6, -0.0004805326461791992, 5.245
208740234375e-6, -0.000521540641784668, 6.9141387939453125e-6, -0.0004794597625732422, 8.463859558105469e-6, -0.0004868507385253906, 6.794929504394531e-6, -0.0004
4846534729003906, 9.655952453613281e-6, -0.0003949403762817383, 7.748603820800781e-6, -0.00035691261291503906, 1.0609626770019531e-5, -0.00036847591400146484, 1.6
09325408935547e-5, -0.0004106760025024414, 8.463859558105469e-6, -0.00041794776916503906, 1.3589859008789063e-5, -0.00047659873962402344, 2.086162567138672e-5, -0
.0003757476806640625, 7.62939453125e-6, -0.0004793405532836914, 8.58306884765625e-6, -0.0005271434783935547, 9.179115295410156e-6, -0.0005614757537841797, 1.14440
91796875e-5, -0.0005065202713012695, 8.702278137207031e-6, -0.0004119873046875, 1.239776611328125e-5, -0.0005176067352294922, 4.649162292480469e-6, -0.00052440166
47338867, -4.76837158203125e-7, -0.0004769563674926758, 7.867813110351563e-6, -0.0005507469177246094, 9.655952453613281e-6, -0.000545501708984375, 9.7751617431640
63e-6, -0.0005779266357421875, 1.239776611328125e-5, -0.0005123615264892578, 1.0132789611816406e-5, -0.0005204677581787109, 8.344650268554688e-6, -0.0005419254302
978516, 1.1086463928222656e-5, -0.0005211830139160156, 1.2874603271484375e-5, -0.0005533695220947266, 1.3709068298339844e-5, -0.0005381107330322266, 5.48362731933
59375e-6, -0.000532984733581543, 8.702278137207031e-6, -0.0005120038986206055, 6.794929504394531e-6, -0.00046002864837646484, 8.463859558105469e-6, -0.00047731399
53613281, 1.049041748046875e-5, -0.0004597902297973633, 9.059906005859375e-6, -0.0005584955215454102, 5.602836608886719e-6, -0.0005623102188110352, 1.072883605957
0313e-5, -0.00047266483306884766, 1.0013580322265625e-5, -0.0004469156265258789, 1.6689300537109375e-5, -0.0005353689193725586, 7.748603820800781e-6, -0.000491380
6915283203, 2.6226043701171875e-6, -0.0005137920379638672, 8.225440979003906e-6, -0.0005009174346923828, 1.2874603271484375e-5, -0.0005296468734741211, 1.00135803
22265625e-5, -0.0006026029586791992, 4.887580871582031e-6, -0.0005744695663452148, 7.510185241699219e-6, -0.0005292892456054688, 7.033348083496094e-6, -0.00053107
73849487305, 6.198883056640625e-6, -0.0006464719772338867, 9.894371032714844e-6, -0.0006090402603149414, 5.841255187988281e-6, -0.0005952119827270508, 1.108646392
8222656e-5, -0.0006066560745239258, 1.2874603271484375e-5, -0.0006350278854370117, 7.152557373046875e-6, -0.000609278678894043, 6.556510925292969e-6, -0.000581860
5422973633, 6.318092346191406e-6, -0.0005892515182495117, 9.059906005859375e-6, -0.0006291866302490234, 7.867813110351563e-6, -0.0005666017532348633, 4.4107437133
78906e-6, -0.0006082057952880859, 6.9141387939453125e-6, -0.0006623268127441406, 1.0609626770019531e-5, -0.0005342960357666016, 8.463859558105469e-6, -0.000521779
0603637695, 5.125999450683594e-6, -0.0004974603652954102, 4.649162292480469e-6, -0.0005629062652587891, 8.106231689453125e-6, -0.0005000829696655273, 8.1062316894
53125e-6, -0.00040721893310546875, 2.86102294921875e-6, -0.0004489421844482422, 6.4373016357421875e-6, -0.00045502185821533203, 1.1205673217773438e-5, -0.00044322
01385498047, 8.58306884765625e-6, -0.00048422813415527344, 9.655952453613281e-6, -0.00048470497131347656, 6.794929504394531e-6, -0.0005056858062744141, 1.38282775
87890625e-5, -0.0004252195358276367, 9.894371032714844e-6, -0.0004925727844238281, 8.225440979003906e-6, -0.0004025697708129883, 8.702278137207031e-6, -0.00038421
154022216797, 7.62939453125e-6, -0.00040733814239501953, 4.649162292480469e-6, -0.0003675222396850586, 6.079673767089844e-6, -0.00032341480255126953, 7.6293945312
5e-6, -0.0003495216369628906, 8.106231689453125e-6, -0.00039255619049072266, 5.125999450683594e-6, -0.0003724098205566406, 7.62939453125e-6, -0.000413775444030761
7, 1.4901161193847656e-5, -0.0003744363784790039, 9.179115295410156e-6, -0.00015735626220703125, 9.059906005859375e-6, -0.00029456615447998047, 1.1563301086425781
e-5, -0.0003114938735961914, 6.4373016357421875e-6, -0.0003192424774169922, 1.1205673217773438e-5, -0.00025177001953125, 8.225440979003906e-6, -0.0002799034118652
344, 1.1801719665527344e-5, -0.00023436546325683594, 1.5854835510253906e-5, -0.00038242340087890625, 9.775161743164063e-6, -0.0005458593368530273, 6.7949295043945
31e-6, -0.0004526376724243164, 1.2040138244628906e-5, -0.0002932548522949219, 9.179115295410156e-6, -0.0002518892288208008, 5.7220458984375e-6, -0.000272750854492
1875, 1.3709068298339844e-5, -0.0003985166549682617, 9.5367431640625e-6, -0.0006029605865478516, 1.3589859008789063e-5, -0.0005892515182495117, 9.894371032714844e
-6, -0.00036346912384033203, 1.1324882507324219e-5, -0.00018453598022460938, 5.4836273193359375e-6, -0.00015223026275634766, 1.2040138244628906e-5, -0.00031101703
64379883, 7.033348083496094e-6, -0.00033974647521972656, 5.125999450683594e-6, -0.0002651214599609375, 7.62939453125e-6, -0.00017821788787841797, 9.05990600585937
5e-6, -0.00018644332885742188, 5.4836273193359375e-6, -0.00020873546600341797, 4.649162292480469e-6, -0.00016546249389648438, 7.3909759521484375e-6, -5.0067901611
328125e-5, 1.2040138244628906e-5, -6.365776062011719e-5, 1.621246337890625e-5, -0.00024390220642089844, 6.556510925292969e-6, -0.0003876686096191406, 1.0728836059
570313e-5, -0.00058746337890625, 1.1086463928222656e-5, -0.0006232261657714844, 2.0265579223632813e-6, -0.00033545494079589844, 1.0609626770019531e-5, -0.00022792
816162109375, 1.239776611328125e-5, -0.00027191638946533203, 7.987022399902344e-6, -0.0003336668014526367, 1.0728836059570313e-5, -0.00043976306915283203, 8.70227
8137207031e-6, -0.0004061460494995117, 1.239776611328125e-5, -0.0003712177276611328, 9.894371032714844e-6, -0.00028312206268310547, 1.049041748046875e-5, -0.00031
34012222290039, 1.0728836059570313e-5, -0.00028228759765625, 1.0967254638671875e-5, -0.00028693675994873047, 1.1682510375976563e-5, -0.0004143714904785156, 1.3947
486877441406e-5, -0.0003401041030883789, 5.602836608886719e-6, -0.00037038326263427734, 1.0967254638671875e-5, -0.000316619873046875, 8.106231689453125e-6, -0.000
3230571746826172, 9.417533874511719e-6, -0.000316619873046875, 6.079673767089844e-6, -0.00034248828887939453, 2.384185791015625e-6, -0.00036966800689697266, 5.722
0458984375e-6, -0.00039947032928466797, 4.0531158447265625e-6, -0.0004153251647949219, 7.867813110351563e-6, -0.00042891502380371094, 7.510185241699219e-6, -0.000
47767162322998047, 6.318092346191406e-6, -0.0004982948303222656, 1.4066696166992188e-5, -0.0004990100860595703, 9.775161743164063e-6, -0.0003991127014160156, 1.35
89859008789063e-5, -0.0004140138626098633, 1.6450881958007813e-5, -0.0003662109375, 7.867813110351563e-6, -0.00030410289764404297, 7.62939453125e-6, -0.0004280805
5877685547, 1.430511474609375e-6, -0.0003848075866699219, 6.079673767089844e-6, -0.00033783912658691406, 8.940696716308594e-6, -0.00029969215393066406, 8.94069671
6308594e-6, -0.00036156177520751953, 9.5367431640625e-6, -0.00038051605224609375, 1.7881393432617188e-6, -0.0004483461380004883, 8.344650268554688e-6, -0.00041425
228118896484, 5.4836273193359375e-6, -0.0004239082336425781, 8.463859558105469e-6, -0.00046122074127197266, 1.3470649719238281e-5, -0.00046885013580322266, 7.6293
9453125e-6, -0.0004904270172119141, 1.5497207641601563e-6, -0.0005344152450561523, 4.172325134277344e-6, -0.0004208087921142578, 5.7220458984375e-6, -0.0004395246
5057373047, 1.0728836059570313e-5, -0.00039458274841308594, 5.9604644775390625e-6, -0.00038039684295654297, 7.271766662597656e-6, -0.0004048347473144531, 3.933906
555175781e-6, -0.0004603862762451172, 8.225440979003906e-6, -0.0005060434341430664, 8.463859558105469e-6, -0.0005168914794921875, 8.463859558105469e-6, -0.0006523
13232421875, 9.894371032714844e-6, -0.0007541179656982422, 9.059906005859375e-6, -0.0006684064865112305, 5.841255187988281e-6, -0.000331878662109375, 8.7022781372
07031e-6, 2.9087066650390625e-5, 1.1444091796875e-5, 3.540515899658203e-5, 1.1563301086425781e-5, -0.00019538402557373047, 7.987022399902344e-6, -0.00035333633422
85156, 7.987022399902344e-6, -0.0005259513854980469, 1.4901161193847656e-5, -0.0004197359085083008, 1.52587890625e-5, -0.00018548965454101563, 3.0994415283203125e
-6, -0.00010728836059570313, 3.2186508178710938e-6, -0.000286102294921875, 1.2040138244628906e-5, -0.00044989585876464844, 1.430511474609375e-5, -0.00037682056427
001953, 7.152557373046875e-6, -0.00033295154571533203, 2.6226043701171875e-6, -0.000213623046875, 7.152557373046875e-6, -0.0002079010009765625, 1.5020370483398438
e-5, -0.0002543926239013672, 1.2993812561035156e-5, -0.00020074844360351563, 6.556510925292969e-6, -0.0003339052200317383, 3.2186508178710938e-6, -0.0002710819244
3847656, 9.417533874511719e-6, -0.0002664327621459961, 1.4185905456542969e-5, -0.00032579898834228516, 7.748603820800781e-6, -0.0004069805145263672, 9.05990600585
9375e-6, -0.0004088878631591797, 8.106231689453125e-6, -0.0006356239318847656, 4.887580871582031e-6, -0.0006867647171020508, 1.1324882507324219e-5, -0.00062775611
87744141, 1.1920928955078125e-5, -0.0003676414489746094, 8.58306884765625e-6, 5.125999450683594e-6, 5.245208740234375e-6, 0.00023603439331054688, 1.27553939819335
94e-5, 0.0001239776611328125, 5.602836608886719e-6, -8.130073547363281e-5, 9.298324584960938e-6, -0.0002630949020385742, 1.1920928955078125e-5, -0.000177979469299
3164, 9.298324584960938e-6, -5.3882598876953125e-5, 7.62939453125e-6, -3.24249267578125e-5, 1.0609626770019531e-5, -3.337860107421875e-5, 8.702278137207031e-6, -6
.282329559326172e-5, 9.298324584960938e-6, -0.00012624263763427734, 1.1205673217773438e-5, -0.0001176595687866211, 1.1444091796875e-5, -0.00021600723266601563, 1.
1563301086425781e-5, -0.00027930736541748047, 1.1563301086425781e-5, -0.00020956993103027344, 8.940696716308594e-6, -0.00018584728240966797, 7.033348083496094e-6,
 -0.00026977062225341797, 5.4836273193359375e-6, -0.00017702579498291016, 9.775161743164063e-6, -0.00027060508728027344, 7.510185241699219e-6, -0.0003608465194702
1484, 1.0371208190917969e-5, -0.00024831295013427734, 5.4836273193359375e-6, -0.0003038644790649414, 6.318092346191406e-6, -0.00041937828063964844, 5.602836608886
719e-6, -0.0003415346145629883, 5.602836608886719e-6, -0.00023734569549560547, 1.2516975402832031e-5, -0.0002645254135131836, 5.0067901611328125e-6, -0.0001897811
8896484375, 4.172325134277344e-6, -4.3511390686035156e-5, 1.0013580322265625e-5, 0.00014388561248779297, 6.4373016357421875e-6, 0.0003312826156616211, 7.748603820
800781e-6, 0.0002655982971191406, 1.049041748046875e-5, 0.00016319751739501953, 9.417533874511719e-6, 0.00019991397857666016, 2.7418136596679688e-6, 0.00014066696
166992188, -1.430511474609375e-6, 0.00010001659393310547, -3.2186508178710938e-6, 0.00023615360260009766, 1.5497207641601563e-6, 0.00011813640594482422, 5.4836273
193359375e-6, 9.429454803466797e-5, 7.033348083496094e-6, 0.00014126300811767578, 6.794929504394531e-6, 7.855892181396484e-5, 1.0609626770019531e-5, -0.0001230239
8681640625, 6.079673767089844e-6, 6.020069122314453e-5, 8.225440979003906e-6, 9.369850158691406e-5, 1.2159347534179688e-5, 7.367134094238281e-5, 8.58306884765625e
-6, 0.00014865398406982422, 1.6808509826660156e-5, -7.665157318115234e-5, 8.344650268554688e-6, 3.5762786865234375e-7, 6.556510925292969e-6, 7.82012939453125e-5, 
6.198883056640625e-6, -0.0001119375228881836, 1.0728836059570313e-5, 6.0558319091796875e-5, 4.5299530029296875e-6, -3.898143768310547e-5, 6.079673767089844e-6, -3
.4809112548828125e-5, 8.940696716308594e-6, 0.00011086463928222656, 1.6689300537109375e-6, -9.751319885253906e-5, 9.655952453613281e-6, -0.00017702579498291016, 6
.67572021484375e-6, -0.00010371208190917969, 3.4570693969726563e-6, -0.00017786026000976563, 1.0848045349121094e-5, -0.0001857280731201172, 2.6226043701171875e-6,
 -0.00012505054473876953, 4.291534423828125e-6, -0.00017750263214111328, 6.079673767089844e-6, -0.00011277198791503906, 5.841255187988281e-6, 3.0279159545898438e-
5, 1.430511474609375e-5, 0.00019431114196777344, 7.867813110351563e-6, 0.00024247169494628906, 1.3709068298339844e-5, 0.0001691579818725586, 1.0251998901367188e-5
, 8.368492126464844e-5, 1.1801719665527344e-5, 7.62939453125e-5, 9.298324584960938e-6, -7.37905502319336e-5, 5.602836608886719e-6, -9.179115295410156e-5, 8.702278
137207031e-6, -2.47955322265625e-5, 3.814697265625e-6, -0.00016176700592041016, 1.5020370483398438e-5, -7.045269012451172e-5, 3.814697265625e-6, -3.63588333129882
8e-5, 1.5497207641601563e-6, -0.0001016855239868164]

The estimated frequency from these parameters and this audio sample is always -1.

Am I doing something wrong? I'm very lost. Is it my parameters? My samples?

The specific code I compile:

use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
use cpal::*;
use yin::*;

fn main() {
    let host = cpal::default_host();
    let device = host
        .default_input_device()
        .expect("failed to find input device");
    let config = device.default_input_config().unwrap();
    match config.sample_format() {
        cpal::SampleFormat::F32 => run::<f32>(&device, &config.into()),
        cpal::SampleFormat::I16 => run::<i16>(&device, &config.into()),
        cpal::SampleFormat::U16 => run::<u16>(&device, &config.into()),
    }
}

fn run<T: Sample>(device: &Device, config: &StreamConfig) {
    let yin = yin::Yin::init(0.1, 10.0, 100.0, 44100);
    let err_fn = |err| println!("{}", err);
    let stream = device
        .build_input_stream(
            &config,
            move |data, _| write_input_data::<T>(data, &yin),
            err_fn,
        )
        .unwrap();

    stream.play().unwrap();
    loop {}
}

fn write_input_data<T: Sample>(input: &[T], yin: &yin::Yin) {
    let f64_vals: Vec<f64> = input.iter().map(|x| x.to_f32() as f64).collect();
    let estimate = yin.estimate_freq(&f64_vals).unwrap_or(-1.0);
    println!("Estimated Frequency: {}", estimate);
}
0

There are 0 answers