
 Originally Posted by 
cncmachineguy
					
				 
				Well I only count 32 notes, but I'm on my phone so maybe I don't get to see the whole thing. 
			
		 
	 
 Sorry, should have made it clear...the table I posted above is actually longer, but I shortened it to be easier on the eye! (the jist of the table was just to show the methodology of converting incoming frequency (guitar notes), to counts (comparator1 interrupt counts) & finally the end goal - a midi note value.
the LUT will only have something like this (first two columns are upper and lower comparator 'counts' for each individual musical note boundary)
	Code:
	Lo       Hi       Midi Note 
62479	58971	28
58972	55662	29
55663	52538	2A
52539	49589	2B
49590	46806	2C
46807	44179	2D
44180	41699	2E
41700	39359	2F
39360	37150	30
37151	35065	31
35066	33097	32
33098	31239	33
31240	29486	34
29487	27831	35
27832	26269	36
26270	24794	37
24795	23403	38
23404	22089	39
22090	20849	3A
20850	19679	3B
19680	18575	3C
18576	17532	3D
17533	16548	3E
16549	15619	3F
15620	14743	40
14744	13915	41
13916	13134	42
13135	12397	43
12398	11701	44
11702	11044	45
11045	10424	46
10425	9839	47
9840	9287	48
9288	8766	49
8767	8274	4A
8275	7810	4B
7811	7371	4C
7372	6957	4D
6958	6567	4E
6568	6198	4F
6199	5850	50
5851	5522	51
5523	5212	52
5213	4919	53
4920	4643	54
4644	4383	55
4384	4137	56
4138	3905	57
3906	3800	58
 There are about 50 individual notes on a guitar - from lowest open E (82.4Hz) thru the highest E fretted at the 24th fret of the top E string (1318.51Hz)....so an LUT will need an array 50 deep & a check condition along these lines for any change in the count value...
	Code:
	if (comp1time>= 66194 and comp1time <= 62478) then note = $27
 but to apply 50 of code like that each & every time guitar note changes is going to get time consuming, hence wanting something like a binary search algorithm for picbasic (a search on the forum yields almost nothing)
				
			
Bookmarks