Jump to content

Search the Community

Showing results for tags 'note to frequency'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Top
    • Latest News
    • Bulk Orders
  • Construction
    • MIDIbox NG
    • MIDIbox HUIs
    • MIDIbox SEQ
    • MIDIbox SID
    • MIDIbox FM
    • MIDIbox BLM
    • MIDIbox User Projects
    • MIDIfication
    • Design Concepts
    • Parts Questions
    • Testing/Troubleshooting
    • Tips & Tricks
    • MIDIbox Documentation Project
  • Software
    • MIDIbox Tools & MIOS Studio
    • MIOS programming (C)
    • MIOS programming (Assembler)
    • MIOS toy of the week
  • Miscellaneous
    • Fleamarket
    • Sale Requests
    • Miscellaneous
    • Songs & Sounds
  • Archive
    • Parts Archive
    • MIDIbox of the Week
  • Multilingual
    • Nordisk
    • Nederlands
    • Deutsch
    • Français
    • Italiano
    • Español
    • Português
    • Greek
    • Russian
    • Others

Blogs

  • Twin-X's Blog
  • j00lz - MB-6582 Build Log
  • Project "Desire MC1"
  • MIDIbox Live
  • protofuse's Blog
  • Joeri's Blog
  • Phil's MBSEQv4
  • taximan's home base
  • Kyo's Blog
  • Snoozr's Notes on Building an MB-6582
  • Amplification
  • dawidbass' Blog
  • SLP's Blog
  • MidiSax's Blog
  • blog_latenights
  • Non usare un modulo Lcd
  • Duggle's Blog
  • Rics' 4Decks
  • aaa135139's Blog
  • bilderbuchi's Blog
  • Alain6870's Blog
  • MidiMaigre 37
  • Digineural's Blog
  • Sylwester's Blog
  • olga42's Blog
  • MB9090 Blog
  • Zossen's Blog
  • stilz&Rumpel's Blog
  • Antichambre's Blog
  • MB TWINsid Blog
  • massenvernichtungswaffe.de
  • gslug's Blog
  • albpower2seq4sid's Blog
  • TB's MIDIBox Adventures
  • kHz-tone's Blog
  • Blatboy's Blog
  • geth's-building-stuff-Blog
  • Excursions in DIY land
  • Ralex's Blog
  • huanyupcb's Blog
  • Vicentiu Mincior's Blog
  • A journey through midibox LC construction
  • TheAncientOne's Blog
  • nebula's Blog
  • Sasha's Blog
  • Tales from the kit mill
  • novski's
  • nicolas' Blog
  • Gelpearl
  • Johan's Blog
  • midibox.org Blog
  • Wisefire build logs
  • ColleenMorris' Blog
  • brucefu's Blog
  • atribunella's Blog
  • Building my Seq
  • A Seqv4 kind of thing
  • ModulBox
  • ArumBlack
  • mongrol
  • Watch!!- Mission: Impossible – Fallout (HD) Movie Online.Full 4k
  • Watch!!- Hotel Transylvania 3 Summer Vacation (HD) Movie Online.Full 4k
  • Silver eagles sign football gamer Adam Zaruba since restricted stop
  • Watch!!- The Meg (HD) Movie Online.Full 4k
  • Steelkiwi Blog
  • Words1234
  • SSP
  • How to Solve the Excavator Hydraulic System Running Slowly
  • Eight Ways to Maintain Excavator Parts
  • Five Common Problems and Fault Analysis of Komatsu Excavator
  • Ficher Chem Co. Ltd: Buy Research Chemicals Online
  • Zazenergyli
  • Top Mobile App Development Company in USA
  • belkin range extender
  • wrong post

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 1 result

  1. the calculation from midi notes to frequency, is based on tuning of note Number A3: eg. 430-450hz the formular on the internet give me this: //Calculate Frequencys 4 notes... for (notecount = 0; notecount < 127; ++notecount) { midi[notecount] = tuning * pow(2, (float)(notecount - 69)/12); } it should fill an 127 wide array with Frequencys corresponding to its note numbers. the formular make something wrong: --- SOLVED - i updetate the working code > THX to Peter when i put in Note Nr 33, i get -14hz (A0) when i put in Note Nr 45, i get -17hz (A1) when i put in Note Nr 57, i get -12hz (A2) when i put in Note Nr 69, i get 866hz (A3) when i put in Note Nr 61, i get 129hz (A4) when i put in Note Nr 93, i get 0hz (A5) I put in: actualnote: 69 (which is A3 &gt;&gt;&gt; Kammerton A) tuning: 431 (A3 = 431hz) it should put out: midi[actualnote]=431 but on the LCD i prints out:1079427072 --- and this is not right >> SOLVED: write (float) in front of a Variable if you want to print it >>> thx to TK WORKING CODE: #include <mios32.h> #include <FreeRTOS.h> #include <task.h> #include "tasks.h" #include "file.h" #include "app.h" #include <portmacro.h> #include <queue.h> #include <semphr.h> #include <string.h> #include "mios32_timer.h" #include "float.h" #include <stdio.h> #include <math.h> //#include "dmx.h" //DMX: typedef struct { int normal_access : 3; int single_bit_bb : 1; } __attribute__((bitband)) my_struct; my_struct phil; #define NUM_ENCODERS 9 //5 Menue Encoders are connectet const mios32_enc_config_t encoders[NUM_ENCODERS] = {//(SR begin with 1, ENC with 0) // setup the Pinout of that Encoders { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=1, .cfg.pos=0 }, //Menue Encoder 0 - only virtual, since they are mapped to differnt Variables... { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=1, .cfg.pos=2 }, //Menue Encoder 1 - ...if "Menue Page Encoder" has changed { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=1, .cfg.pos=4 }, //Menue Encoder 2 { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=1, .cfg.pos=6 }, //Menue Encoder 3 { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=2, .cfg.pos=0 }, //Menue Encoder 4 { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=2, .cfg.pos=2 }, //Menue Encoder 5 { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=2, .cfg.pos=4 }, //Menue Encoder 6 { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=2, .cfg.pos=6 }, //Menue Encoder 7 { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=4, .cfg.sr=3, .cfg.pos=0 },}; //Menue Page Encoder xSemaphoreHandle xLCDSemaphore; // take and give access to LCD u32 MenueUpdateCount = 0; //to calculate the LCD-Menue-Update-Rate float value = 0; //Encoder calculation... u32 i = 0; //Encoder calcualtion //DMX u8 RGBWdmx[4]={0, 0, 0, 250}; //RGBW values u8 RGBWenc[4]={0, 0, 0, 250}; //RGBW values u8 count = 0; //to count thru the rgbw-channels while sending DMX... //note2sound u32 nm = 10; u32 rpm = 25680; u32 time = 2161; //setup timer time u32 timecount = 0; u32 hzcount = 0; u32 decaytime = 128; float tuning = 431; //represent the tuning of "Kammerton A3" float finetuning = 0.95; //represent the floating point of tuning (eg.: 431,095hz) u32 finetuningLCD = 95; //float of tuning - to calculate to show on display float midi[127] = {}; //represent Midinote 0-127 - and its value is a Frequency in [hz] u32 actualnote = 69; // where 69 is A3 named A (which is tuned with "tuning" Variable above) s32 notecount = 0; // only a counter variable to calculate the note frequencys. //MidiSetup u8 midich = Chn9; u8 midiport= 32; //Midi-Melody Input, [32=UART0=Midi1, 33=UART1=Midi2 on LPC17core] //Task Prioritys #define MUTEX_LCD_TAKE { while( xSemaphoreTakeRecursive(xLCDSemaphore, (portTickType)0) != pdTRUE ); } //a Mutex reserve a Resoure (LCD or SD-Card) for a task, until it is given away... #define MUTEX_LCD_GIVE { xSemaphoreGiveRecursive(xLCDSemaphore); } #define PRIORITY_StoreLoad ( tskIDLE_PRIORITY + 2 ) //3:Mios standart static void StoreLoad(u8 tick, u16 order); void APP_Init(void){ MIOS32_BOARD_LED_Init(0xffffffff); //initialize all LEDs xLCDSemaphore = xSemaphoreCreateRecursiveMutex(); //create Mutex for LCD access //initialize encoders i = counter for(i=0; i<NUM_ENCODERS; ++i) MIOS32_ENC_ConfigSet(i, encoders[i]); //initialize encoders //DMX_Init(0); } void APP_Background(void){ //DMX: // endless loop /* while(1) { for (count=0;count<4;count++) { if (RGBWdmx[count]!=RGBWenc[count]) //if something has changed - send the value via DMX! { RGBWdmx[count]=RGBWenc[count]; DMX_SetChannel(count,(u8)RGBWdmx[count]);} } } */ } void APP_Tick(void) { //1ms Event Triggering MenueUpdateCount = MenueUpdateCount + 1; if(MenueUpdateCount > 650){MenueUpdateCount = 0; StoreLoad(0, 0);}} //update the Menue void APP_MIDI_Tick(void){} void APP_MIDI_NotifyPackage(mios32_midi_port_t port, mios32_midi_package_t midi_package){ if(port==midiport && midi_package.chn == midich && midi_package.type == NoteOn) {actualnote=midi_package.note;}} void APP_SRIO_ServicePrepare(void){} void APP_SRIO_ServiceFinish(void){} void APP_DIN_NotifyToggle(u32 pin, u32 pin_value){} void APP_ENC_NotifyChange(u32 encoder, s32 incrementer){ if(encoder == 1){ value = tuning + incrementer; //tuning of note A-3 if(value < 430) {value = 450;} if(value > 450) {value = 430;} tuning = value; //Calculate Frequencys 4 notes... for (notecount = 0; notecount < 127; ++notecount) {midi[notecount] = tuning * pow(2, (float)(notecount - 69)/12);} //{midi[notecount] = tuning * (2 ^ ((notecount-69) / 12));} } if(encoder == 2){ value = finetuning + ((float)incrementer/1000); // finetune if(value < 0.001) {value = 0;} if(value > 1) {value = 1;} finetuning = value; tuning=tuning + finetuning; if(tuning < 430) {tuning = 430;} if(tuning > 450) {tuning = 450;} finetuningLCD = finetuning*1000; } if(encoder == 3){ value = RGBWenc[0] + incrementer; //RED if(value < 0) {value = 255;} if(value > 255) {value = 0;} RGBWenc[0] = value; } if(encoder == 4){ value = RGBWenc[1] + incrementer; //GREEN if(value < 0) {value = 255;} if(value > 255) {value = 0;} RGBWenc[1] = value; } if(encoder == 5){ value = RGBWenc[2] + incrementer; //BLUE if(value < 0) {value = 255;} if(value > 255) {value = 0;} RGBWenc[2] = value; } if(encoder == 6){ value = RGBWenc[3] + incrementer; //White if(value < 0) {value = 255;} if(value > 255) {value = 0;} RGBWenc[3] = value; } } void APP_AIN_NotifyChange(u32 pin, u32 pin_value){} static void StoreLoad(u8 tick, u16 order){ //Display MENUE if(tick == 0){//Menue tick MUTEX_LCD_TAKE; //request LCD access MIOS32_LCD_Clear(); //clear screen //1st Line = Encoder Variables....change something! MIOS32_LCD_CursorSet(0, 0); MIOS32_LCD_PrintFormattedString("%u", actualnote); MIOS32_LCD_CursorSet(4, 0); MIOS32_LCD_PrintFormattedString("%d", (int)tuning); MIOS32_LCD_CursorSet(7, 0); if (finetuningLCD>=100) {MIOS32_LCD_PrintFormattedString("%s" "%d", ".", finetuningLCD);} if (finetuningLCD< 100 && finetuningLCD>=10) {MIOS32_LCD_PrintFormattedString("%s" "%d", ".0", finetuningLCD);} if (finetuningLCD< 10) {MIOS32_LCD_PrintFormattedString("%s" "%d", ".00", finetuningLCD);} MIOS32_LCD_CursorSet(16, 0); MIOS32_LCD_PrintFormattedString("%d", RGBWenc[0]); MIOS32_LCD_CursorSet(21, 0); MIOS32_LCD_PrintFormattedString("%d", RGBWenc[1]); MIOS32_LCD_CursorSet(27, 0); MIOS32_LCD_PrintFormattedString("%d", RGBWenc[2]); MIOS32_LCD_CursorSet(32, 0); MIOS32_LCD_PrintFormattedString("%d", RGBWenc[3]); MIOS32_LCD_CursorSet(37, 0); MIOS32_LCD_PrintFormattedString("%d", (int)midi[actualnote]); //2nd Line = Menue Describtio MIOS32_LCD_CursorSet(0, 1); MIOS32_LCD_PrintFormattedString("%s", "nte "); MIOS32_LCD_CursorSet(4, 1); MIOS32_LCD_PrintFormattedString("%s", "tune"); MIOS32_LCD_CursorSet(16, 1); MIOS32_LCD_PrintFormattedString("%s", "red "); MIOS32_LCD_CursorSet(21, 1); MIOS32_LCD_PrintFormattedString("%s", "gren "); MIOS32_LCD_CursorSet(27, 1); MIOS32_LCD_PrintFormattedString("%s", "blue "); MIOS32_LCD_CursorSet(32, 1); MIOS32_LCD_PrintFormattedString("%s", "whit "); MIOS32_LCD_CursorSet(37, 1); MIOS32_LCD_PrintFormattedString("%s", "frq"); MUTEX_LCD_GIVE;}} // release LCD access for other tasks &
×
×
  • Create New...