A speed-tatstic way to look up a value? (LUTs)


Results 1 to 13 of 13

Threaded View

  1. #1
    Join Date
    Mar 2009
    Posts
    653

    Default A speed-tatstic way to look up a value? (LUTs)

    I'd like to resolve 'Comparator interrupt counts' (frequency) to a Musical note & therefore have a table to base a LUT on as follows....

    (btw: I've not got the low & high columns mixed up....they are with respect to frequency - as the incoming frequency increases the amount of interrupt counts get less)

    Code:
    Count	low	High	Note
    68104	67000	66193	D
    64282	66194	62478	D#
    60674	62479	58971	E
    57269	58972	55662	F
    54054	55663	52538	F#
    51021	52539	49589	G
    48157	49590	46806	G#
    45454	46807	44179	A
    42903	44180	41699	A#
    40495	41700	39359	B
    38222	39360	37150	C
    36077	37151	35065	C#
    34052	35066	33097	D
    32141	33098	31239	D#
    30337	31240	29486	E
    28634	29487	27831	F
    27027	27832	26269	F#
    25510	26270	24794	G
    24078	24795	23403	G#
    22727	23404	22089	A
    21451	22090	20849	A#
    20247	20850	19679	B
    19111	19680	18575	C
    18038	18576	17532	C#
    17026	17533	16548	D
    16070	16549	15619	D#
    15168	15620	14743	E
    14317	14744	13915	F
    13513	13916	13134	F#
    12755	13135	12397	G
    12039	12398	11701	G#
    11363	11702	11044	A
    10725	11045	10424	A#
    10123	10425	9839	B
    9555	9840	9287	C5
    9019	9288	8766	C#
    8513	8767	8274	D
    8035	8275	7810	D#
    7584	7811	7371	E
    7158	7372	6957	F
    6756	6958	6567	F#
    6377	6568	6198	G
    6019	6199	5850	G#
    5681	5851	5522	A
    5362	5523	5212	A#
    5061	5213	4919	B
    4777	4920	4643	C
    4509	4644	4383	C#
    4256	4384	4137	D
    4017	4138	3905	D#
    3792	3906	3800	E

    Therefore if the comparator interrupt count comes in a somewhere between 19680 & 18575.....then I need to establish (look up) what the associated musical note is - in this case a 'C'

    If it then changes again to between 4138 & 3905 then it's high 'D#' ....and so on.

    Now as a beginner, the simple way I'd approach this is take my comparator 'interrupt count' & go through the list one entry at a time until I get a match.....but if the notes are changing rapidly (&/or are at different ends of the table), then that's quite an overhead - is there a slick way to get to the actual note fast (eg way back, I was taught something in military wrt finding a fault in an electronic cct - the 'split half technique' ...basically to first check if the 'fault' is present at the halfway point in a circuit - if not, split the mid point again and check if it's present there....etc - this quickly gets you to the general area where the fault lies)....I'm sure something similar could be applied like that here?
    Last edited by HankMcSpank; - 3rd October 2010 at 15:41.

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts