Jump to content

Phatline

Members
  • Posts

    1,280
  • Joined

  • Last visited

  • Days Won

    71

Everything posted by Phatline

  1. double sided headers: in much cases you would have to unmount the complete board to unplug it... (when you dont have the depth, and the pcb sits near the mount surface) its a nother story if you consider to take 90° Headers @ the outlines of the pcb, there you could unplug it in more cases, but you still would need more place, because you could not place the Headers one below the other (Because of the cable)- so you have to place it on different XY coordinates, and this would destroy the benifits off the whole idea of double sided headers.... its still possible in the current layout to choose 90° headers, to better stack this modules... just my 2 cents... in the german tread :rofl:
  2. i still thougt it will be not good to change something in mios (i understand, that a nother me with a nother laptopt and a nother Mios - in the near future - will run against walls, because the program is not working as it should ) ok got it, just write Chn10 instead of 9 @confuse: got a new vocable: ENUM :santa:
  3. like that very much.... when i think of my waldorf pulse+ (V1) - and its Pot-Matrix userinterface -and its 64 (?) patches limitation. do you plan a rack version or a desktop? - i am in for a rackmount version.
  4. hmm i deletet the code... still dont found it there is no text like " midi_package.chn" the only CHN things are: typedef enum { Chn1, Chn2, Chn3, Chn4, Chn5, Chn6, Chn7, Chn8, Chn9, Chn10, Chn11, Chn12, Chn13, Chn14, Chn15, Chn16 } mios32_midi_chn_t; typedef union { struct { u32 ALL; }; struct { u8 cin_cable; u8 evnt0; u8 evnt1; u8 evnt2; }; struct { u8 type:4; u8 cable:4; u8 chn:4; // mios32_midi_chn_t u8 event:4; // mios32_midi_event_t u8 value1; u8 value2; }; // C++ doesn't allow to redefine names in anonymous unions // as a simple workaround, we rename these redundant names struct { u8 cin:4; u8 dummy1_cable:4; u8 dummy1_chn:4; // mios32_midi_chn_t u8 dummy1_event:4; // mios32_midi_event_t u8 note:8; u8 velocity:8; }; struct { u8 dummy2_cin:4; u8 dummy2_cable:4; u8 dummy2_chn:4; // mios32_midi_chn_t u8 dummy2_event:4; // mios32_midi_event_t u8 cc_number:8; u8 value:8; }; struct { u8 dummy3_cin:4; u8 dummy3_cable:4; u8 dummy3_chn:4; // mios32_midi_chn_t u8 dummy3_event:4; // mios32_midi_event_t u8 program_change:8; u8 dummy3:8; }; } mios32_midi_package_t; forgive me i am a newbe, shoul i change CHN:4 to CHN5?
  5. like... for the user it would be confusing when i directly change the Midichannels on the Display... another me in a far future... ok i can program it with +1... by the way i dont found what you have suggest
  6. Tutorial 2 - Parsing Midi: When my sequencer is sending out a note on Midichannel 10, then my synthesizer reacts @ Channel 10, but MIOS and LPC17 sys "I got it on Midichannel 9" I just took the Tutorial below, and changed only - to display the mididata, else i dont changed things (no change in config or header files) Code: // $Id: app.c 1919 2014-01-08 19:13:48Z tk $ //MIOS32 Tutorial #002: Parsing MIDI #include <mios32.h> #include "app.h" void APP_Init(void){MIOS32_BOARD_LED_Init(0xffffffff);} void APP_Background(void){} void APP_Tick(void){} void APP_MIDI_Tick(void){} void APP_MIDI_NotifyPackage(mios32_midi_port_t port, mios32_midi_package_t midi_package){ u8 ab = 0; // 1) the LED should be turned on whenever a Note On Event with velocity > 0 // has been received if( port == 32){ if( midi_package.chn == 9){ if( midi_package.type == NoteOn && midi_package.velocity > 0 ) { MIOS32_BOARD_LED_Set(0x0001, 1); ab=1;} // 2) the LED should be turned off whenever a Note Off Event or a Note On // event with velocity == 0 has been received (the MIDI spec says, that velocity 0 // should be handled like Note Off) if( (midi_package.type == NoteOff) || (midi_package.type == NoteOn && midi_package.velocity == 0) ){ MIOS32_BOARD_LED_Set(0x0001, 0); ab=0;} MIOS32_LCD_Clear(); // clear screen MIOS32_LCD_CursorSet(0, 0); // X,Y MIOS32_LCD_PrintFormattedString("%d %d %d %d",ab, port, midi_package.note, midi_package.chn); }//End Midi CHN 11 }//End Port }//End Hook 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){} void APP_AIN_NotifyChange(u32 pin, u32 pin_value){} is there a offset to set?
  7. my core is working with a code on it... my code/application crashes when mios studio is opend, or mios-studio scan the usb devices, or mios-studio is looking out for a CORE.... as soon MiosStudio sends out something, mios crashes (LCD is blank, application-function are gone) - no chance. is there a way to load code on my core without mios-studio sending some things that crashes my program? i dont want to open, unmount, unconnect, start the windows pc (LPXEXPRESO) destroing cables by moving... i dont want to "bootload" the device... everytime i program crap (what is often in this phase) is there a program for Linux that can upload the hexfile without asking the core differnt things bevore?
  8. SOLUTION: was only a disply Format thing: i used %u (unsigned int) instead of %d (which is signed int) see the code below: MIOS32_LCD_PrintFormattedString("%u %d %u", encoder, incrementer, enc_value[0]);} PROBLEM WAS: when i turn a ENCODER left: incrementer= 4294967295 (should be -1 ?) (this value i see on my LCD) right: incrementer= 1 (no matter how fast i turn the encoder > that should encrease by faster turns? shouldńt it? internet says: 4294967295 says that it may be a negative value "-1" when i false declared the variable as unsigned (signed meens -1 is possible) in the code below "s32 incrementer" s stand for "signed" i think... & when i change to "u32 incrementer" (and in app.h also where it is definied), i still get the same "4294967295" this is my stripped down CODE: #include <mios32.h> #include "app.h" #include <FreeRTOS.h> #include <task.h> #include <queue.h> ///////////////////////////////////////////////////////////////////////////// // Local definitions // used MIDI port and channel (DEFAULT, USB0, UART0 or UART1) #define KEYBOARD_MIDI_PORT DEFAULT #define KEYBOARD_MIDI_CHN Chn1 #define MIDI_STARTNOTE 36 //Set Encoder NR and Hardware-PIN-out #define NUM_ENCODERS 5 const mios32_enc_config_t encoders[NUM_ENCODERS] = {//(SR begin with 1, ENC with 0) { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=2, .cfg.sr=1, .cfg.pos=0 }, { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=2, .cfg.sr=1, .cfg.pos=2 }, { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=2, .cfg.sr=5, .cfg.pos=0 }, { .cfg.type=DETENTED2, .cfg.speed=FAST, .cfg.speed_par=2, .cfg.sr=5, .cfg.pos=2 }, { .cfg.type=DETENTED2, .cfg.speed=SLOW, .cfg.speed_par=4, .cfg.sr=4, .cfg.pos=0 },};//Menue Encoder s32 enc_value[5]= {0}; ///////////////////////////////////////////////////////////////////////////////////////// // Startup INIT void APP_Init(void){ //initialize encoders s32 i; for(i=0; i<NUM_ENCODERS; ++i) MIOS32_ENC_ConfigSet(i, encoders[i]); ..... //////////////////////////////////////////////////////////////////////////////////////// //Encoder Moved? void APP_ENC_NotifyChange(u32 encoder, s32 incrementer){ // increment to virtual position and ensure that the value is in range 0..127 s32 value = enc_value[encoder] + incrementer; if(value < 0){value = 0;} if(value > 127){value = 127;} enc_value[encoder] = value; MIOS32_LCD_Clear(); // clear screen MIOS32_LCD_CursorSet(0, 0); // X,Y MIOS32_LCD_PrintFormattedString("%u %u %u", encoder, incrementer, enc_value[0]);} I have worked thru the tutorials, >>> i only need 5 Encoders, on different PINs, so i have to declare they by hand and not with a FOR Loop over all Shiftregisters.... this is because i dont use the Tutorial code.
  9. thx... i love that kind of work like that: "the day have not enough ours but i am in my power, there are days where i dont have to sleep, and there are days i have to sleep a little...& and all what is no good went good"
  10. since the 8bit core had to little Memory, i went to a LPC core... but this core is to big for the case... so i had to do some vector board core soldering... hhhmmm one day work!!! after 12ours (with testing the resistance/debuging)...: the differnt sizes of cores...:
  11. From the album: TekkStar (Tama Techstar Midification)

    12,5h Working time for this crap... but i need this small size...
  12. From the album: TekkStar (Tama Techstar Midification)

    the 8bit memory was to little... so the 32bit must be used... but the standart LPC is way to big for my application... so i build on vectorboard in 12h a small variante...of course some Connectors i removed...but still enough for future updates are on board...
  13. :yes: jo eh - i already thougt, that this project grows in a to complex way...first pic18f452 then trying one of this bigFlash-Sid-Pics....and now still not enough resources... you are right... lucky me that i have LPCs and vectorboards laying around>strip it down to smalles possible...
  14. 3.Questions: 1.how to get the processor match: i controll the enviroment variables: >this is ok i first thougt... but because never knows... I changed the letter "F" to "f" so i get: the processor is still mismatching: makefile: MIOS_PATH = . MIOS_BIN_PATH = ./bin export MIOS_PATH export MIOS_BIN_PATH include Makefile.orig MIOS_WRAPPER_DEFINES = -DSTACK_HEAD=0x37f -DSTACK_IRQ_HEAD=0x33f -DDONT_INCLUDE_MIOS_ENC_TABLE makefile.orginal: # define the processor, linker file and project name PROCESSOR = 18f4685 LKR_FILE = $(MIOS_PATH)/etc/lkr/p$(PROCESSOR).lkr PROJECT = project # list of objects that should be created and linked OBJS = mios_wrapper.o app_lcd.o main.o # include pathes (more will be added by .mk files) GPASM_INCLUDE = SDCC_INCLUDE = # optional defines that should be passed to GPASM/SDCC GPASM_DEFINES = -DDEBUG_MODE=0 SDCC_DEFINES = -DDEBUG_MODE=0 # pass parameters to MIOS wrapper MIOS_WRAPPER_DEFINES = -DSTACK_HEAD=0x37f -DSTACK_IRQ_HEAD=0x33f # directories and files that should be part of the distribution (release) package # more will be added by *.mk files DIST = ./ # include the common.mk file include $(MIOS_PATH)/include/makefile/common.mk # include application specific driver (select app_lcd/dummy if MIOS internal driver used) include $(MIOS_PATH)/modules/app_lcd/dummy/app_lcd.... 2.Code Memory:(96k flash, 1k EEPROM, 3328 bytes RAM) How much can i write into the Flash memory? all the 96K? how much is mios? if I use much Arrays, and i need them all in the program, and the acces should be quick, so i cant save them into bankstick... and my program needs about 90kB Pic-Flash- is this a problem? if i use the arrays normal: i define them as global variable, initalise it by startup - are thes variables then in Flash or in Ram? (i am a newbee in this things, up to now i didnt have to worry about that...) by the way i shrinked the code need from 30528B to 23040 by changing the variables from "int" to "unsigned char".... 3.Errors while compiling: I use now a pic18F4682, because the 18F452 went to small in CodeFlash.... I recently added more code to the program from 30kB to ... Codesize 20kB and 30kB, (size is that what is shown in Mios studio as PIC-FLASH) Compiled, program made/running, but error: processor mismatch? But ok i can life with it.... up to the point when i need more memory Codesize 40kB-90kB, (size is that what is shown in Mios studio as PIC-FLASH) With Code over 96K, i get this error: "Zeile 18" or english "Line 18" in mios-sdcc: sdcc --asm="${MIOS_SHELL} ${MIOS_BIN_PATH}/mios-gpasm -fixasm" $@ "5784 getötet" or english "5784 killed" ---ok i understand this---to much for this chip ;)
  15. ok thankz i made this: #include <string.h> int MtxLoad0[8]; //Destination Array int Mtx0Part0[8]; //Source Array int LoroCount; //counter 4 "for" loop -LoadRoll... if(pin == 0 && pin_value == 0) {for(LoRoCount=0; LoRoCount<8; LoRoCount++) {MtxLoad0[LoRoCount]=Mtx0Part0[LoRoCount];}}
  16. I also want to "memcpy" C, 8Bit Core, 18F4685: #include <string.h> int MtxLoad0[8]; //Destination Array int Mtx0Part0[8]; //Source Array if(pin == 0 && pin_value == 0){memcpy(MtxLoad0, Mtx0Part0, 8);} give me this error: where do i have to define "memcpy"?
  17. i am interested in this too
  18. no sequencer, i sequence it with a korg electribe rythm mkII the LED-Button-Matrix is a- Trigger-Router--- so the incoming Trigger from Midi are routed to different destinations... the routing itself is changed by pressing the left and the right buttons, the basic function of a matrix - known from the sid... but a little more it does... so in "perform" mode i can load with the left buttons "song-routings" and with the right buttons "Roll routings" , the round OVER-ROLL button between the 16 Buttons is Route momentary all Incoming Midinotes to all Trigger-outs..... the gate Pot randomly kills trigger (pot make the ammount of random) -- the velo-kill Pot offsets the Velocity routing... the velocity is divided by 4 Dout-Pins and differnt resistors.. so this is some kind of "Accent" - the analog finetuning is still done by the orginal Sens-Pot on each voice. the 4 Velo-Kill Buttons at the top of the matrix kill the Velocity-routing pins on every voice - so only accent notes come thru, or only the not so louds and so on... the velo-invert button - swap the Velo-Pins ---loud will be not so loud, and not so loud will be loud... the display and the 4 (+1Red-Menue) Encoder over it, are place holder for the planed Bankstick saving- Programchange thing, and the planed Envelope for Main VCA and Main Filter. --- there is a video: in this video the TEKK-STAR is driven by the korg, but the midiloop is static, i changed it in NO WAY... all the midiprocessing is done by TEKK-Star and me.
  19. i can only speak for the JDM-Burner: when you upload MIOS8 you set the ID in the Uploader Program "ICProg"... i dont know how that work with this newer USB-"Burners"... look for ID value: its in HEX http://www.ucapps.de/mbhp_jdm_expired.html
  20. its Done!!! and its a mod-ing dream... so its never done... the basic program is on it, now its time for more programming... bankstick, savings of routings, then routing banks for song-parts...roll routings, flame, tempo delay, mute... and at last a vca on the master...
  21. From the album: TekkStar (Tama Techstar Midification)

    connected to a korg Electribe Rythm MKII- which acts as Sequencer...
×
×
  • Create New...