Beber Posted May 6, 2008 Report Share Posted May 6, 2008 Bonjour à tous !Je viens de construire ma première MBox, mais je n'arrive pas à contrôler Ableton Live !!! :-\Je me suis renseigné sur le forum et sur d'autres sites, j'ai vu qu'il fallait utiliser des protocoles midi comme Mackie Control .J'ai donc téléchargé des .hex mais je dois avouer que je suis un peu largué ! ???Pour info, ma mbox est composée d'un module AIN, un DIN, et bien sur le CORE.J'ai placé 20 Boutons poussoirs et 31 potars dont 4 faders. Le problème c'est que le logiciel reconnait les boutons mais pas les potars!Je voulais donc savoir si vous pouviez m'aider à programmer mon pic pour que je puisse enfin passer des heures sur ma Mbox à triturer tous les boutons ! ;DVoici le programme qui est installé en ce moment: ========================================================================== ;; ---[ MIOS header file ]--- #include "mios.h" ;; ---[ useful macros ]--- #include "macros.h" ;; ---[ vectors to MIOS functions (never change!) ]--- #include "mios_vectors.inc" ;; ---[ user hooks (never change!) ]--- #include "user_vectors.inc" ;; ========================================================================== ;; General Application Settings ;; ========================================================================== ;; ---[ variables used by application ]--- #include "app_defines.h" ;; these settings are used in lc_init.inc to initialize the drivers #define LC_EMULATION_ID 0x15 ; use 0x10 for Logic Control ; 0x11 for Logic Control XT ; 0x14 for Mackie Control ; 0x15 for Mackie Control XT (?) #define LCD_USE_SECOND 1 ; the emulation handles with two character LCDs if 1 #define LCD_EMU_COL 55 ; number of emulated columns (characters per line) ; o graphical LCDs: use 55 (like a Logic Control) ; o one 2x40 LCD: use 40 (unfortunately..) ; o two 2x40 LCDs: use 55 (like a Logic Control) #define INITIAL_DISPLAY_PAGE 0 ; initial display page after startup (choose your favourite one: 0-3) #define ENABLE_MOTORDRIVER 1 ; if 0, MF module will not be enabled #define NUMBER_MOTORFADERS 8 ; number of motorfaders #define MOTORFADERS_DEADBAND 3 ; so called "deadband" of motorfaders #define AIN_DEADBAND 3 ; so called "deadband" of ADC #define MOTORFADERS_PWM_DUTY_UP 0x01 ; PWM duty cycle for upward moves (see http://www.ucapps.de/mbhp_mf.html) #define MOTORFADERS_PWM_DUTY_DOWN 0x01 ; PWM duty cycle for downward moves (see http://www.ucapps.de/mbhp_mf.html) #define MOTORFADERS_PWM_PERIOD 0x03 ; PWM period (see http://www.ucapps.de/mbhp_mf.html) #define MOTORFADER0_IS_MASTERFADER 0 ; if set, the first motorfader acts as master fader ;; following setting configures the touch sensor behaviour. The touch sensors of the motorfaders ;; have to be assigned to the DIN pins in lc_io_tables.inc - the appr. IDs are: ;; ID_FADER_TOUCH_CHN1, ID_FADER_TOUCH_CHN2, ... ID_FADER_TOUCH_CHN8 (8 sensors) ;; If the master fader option is used, the ID is ID_FADER_TOUCH_MASTER ;; ;; TOUCH_SENSOR_MODE EQU 0: touch sensor events (pressed/depressed) are forwarded to the host program ;; like specified in the Logic/Mackie Control specification ;; TOUCH_SENSOR_MODE EQU 1: like mode 0, but additionaly the motors will be suspended via MIOS, so ;; that they are not moved so long as the touch sensor is pressed ;; TOUCH_SENSOR_MODE EQU 2: like mode 0+1, additionally no fader move (PitchBender event) will be ;; sent when the touch sensor is not pressed. ;; ;; The mode "1" by default to avoid circular troubleshooting requests in the MIDIbox forum from people ;; who don't read this information before starting the application. ;; Mode "2" should be the prefered setting if your touch sensors are working properly #define TOUCH_SENSOR_MODE 1 #define NUMBER_SHIFTREGISTERS 16 ; length of shift register chain (max value: 16 == 128 DIN/DOUT pins) #define SRIO_UPDATE_FREQUENCY 1 ; we are using rotary encoders: use 1 ms! #define TOUCHSENSOR_SENSITIVITY 3 ; for the motorfader touchsensors ;; define the encoder speed modes and dividers here #define ENC_VPOT_SPEED_MODE 2 ; 0 = slow, 1 = normal, 2 = fast #define ENC_VPOT_SPEED_DIVIDER 2 ; see description about MIOS_ENC_SpeedSet #define ENC_JOGWHEEL_SPEED_MODE 2 ; 0 = slow, 1 = normal, 2 = fast #define ENC_JOGWHEEL_SPEED_DIVIDER 1 ; see description about MIOS_ENC_SpeedSet ;; used by lc_srio.inc ;; the schematic can be found under http://www.ucapps.de/midibox_lc/midibox_lc_ledrings_meters.pdf ;; NOTE: it's possible to display the meter values with the LEDrings by using ID_MBLC_*LEDMETER* buttons! ;; this feature saves you from adding additional LEDs to your MIDIbox #define LEDRINGS_ENABLED 1 ; if 1, ledrings are enabled #define METERS_ENABLED 0 ; if 1, meters are enabled ;; NOTE2: the shift registers are counted from zero here, means: 0 is the first shift register, 1 the second... #define LEDRINGS_SR_CATHODES 8 ; shift register with cathodes of the 8 LED rings #define METERS_SR_CATHODES 9 ; shift register with cathodes of the 8 meters #define LEDRINGS_METERS_SR_ANODES_1 10 ; first shift register with anodes of the 8 LED rings (and 8 meters) #define LEDRINGS_METERS_SR_ANODES_2 11 ; second shift register with anodes of the 8 LED rings (and 8 meters) ;; used by lc_leddigits.inc ;; the schematic can be found under http://www.ucapps.de/midibox_lc/midibox_lc_leddigits.pdf ;; NOTE: in principle this driver supports up to 16 LED digits, but only 12 of them are used #define LEDDIGITS_ENABLED 0 ; if 1, leddigits are enabled #define LEDDIGITS_SR_SEGMENTS_1 12 ; shift register which drives the segments of digit 7-0 (right side) #define LEDDIGITS_SR_SELECT_1 13 ; shift register which selects the digits 7-0 #define LEDDIGITS_SR_SEGMENTS_2 14 ; shift register which drives the segments of digit 15-8 (left side) #define LEDDIGITS_SR_SELECT_2 15 ; shift register which selects the digits 15-8 ;; the GPC (General Purpose Controller) feature can be activated by using ID_MBLC_*GPC* buttons ;; up to 128 midi events are defined in mios_tables.inc ;; the lables are defined in lc_gpc_lables.inc ;; optionally a MIDI event will be sent when entering/leaving this mode: #define GPC_BUTTON_SENDS_MIDI_EVENT 0 ; enables the "send button" feature #define GPC_BUTTON_ON_EVNT0 0x9f ; on event, byte #0 #define GPC_BUTTON_ON_EVNT1 0x3c ; on event, byte #1 #define GPC_BUTTON_ON_EVNT2 0x7f ; on event, byte #2 #define GPC_BUTTON_OFF_EVNT0 0x9f ; off event, byte #0 #define GPC_BUTTON_OFF_EVNT1 0x3c ; off event, byte #1 #define GPC_BUTTON_OFF_EVNT2 0x00 ; off event, byte #2 ;; with MIOS V1.4 the MIDI Rx/Tx streams can be monitored, this gives you the possibility ;; to realize software controlled MIDI status LEDs - feature has to be enabled here: #define MIDI_MONITOR_ENABLED 0 ; if 1, the Tx/Rx LEDs are enabled #define MIDI_MONITOR_RX_LED 0x00 ; DOUT pin of the MIDI Rx LED #define MIDI_MONITOR_TX_LED 0x01 ; DOUT pin of the MIDI Tx LED ; ========================================================================== ;; ---[ configuration table for MIDI processor rotary encoders ]--- #include "mios_tables.inc" ;; ---[ Custom LCD driver ]--- #include "app_lcd.inc" ;; ========================================================================== ;; Standard MIOS hooks ;; ========================================================================== ;; -------------------------------------------------------------------------- ;; This function is called by MIOS after startup to initialize the ;; application ;; -------------------------------------------------------------------------- USER_Init ;; initialize application specific variables movlw LC_EMULATION_ID ; Logic Control ID movwf LC_ID clrf LC_SYSEX_STATE clrf LC_CURSOR clrf LC_MTC_CURSOR ;; init the MTC digits SET_BSR LC_MTC_DIGIT_0 movlw '0' movwf LC_MTC_DIGIT_0, BANKED movwf LC_MTC_DIGIT_1, BANKED movwf LC_MTC_DIGIT_2, BANKED movwf LC_MTC_DIGIT_3, BANKED movwf LC_MTC_DIGIT_4, BANKED movwf LC_MTC_DIGIT_5, BANKED movwf LC_MTC_DIGIT_6, BANKED movwf LC_MTC_DIGIT_7, BANKED movwf LC_MTC_DIGIT_8, BANKED movwf LC_MTC_DIGIT_9, BANKED movlw ':' movwf LC_MTC_DIGIT_C0, BANKED movwf LC_MTC_DIGIT_C1, BANKED movwf LC_MTC_DIGIT_C2, BANKED movlw ' ' movwf LC_MTC_DIGIT_SPACE, BANKED movlw 'R' - 0x40 movwf LC_STATUS_DIGIT_A, BANKED movlw 'T' - 0x40 movwf LC_STATUS_DIGIT_B, BANKED #if LCD_USE_SECOND ;; initialize the LCD: we allow graphical LCD and up to 2 character LCDs ;; for the 2-character LCD option, we have to set the offset of ;; line 3 and line 4 to 0x80/0xc0 movlw 0x00 movwf MIOS_PARAMETER1 movlw 0x40 movwf MIOS_PARAMETER2 movlw 0x80 movwf MIOS_PARAMETER3 movlw 0xc0 call MIOS_LCD_YAddressSet #endif ;; use LC_STAT.LC_STAT_GLCD as indicator if graphical LCD ;; or character LCD is connected bcf LC_STAT, LC_STAT_GLCD call MIOS_LCD_TypeGet skpz bsf LC_STAT, LC_STAT_GLCD ;; initialize the AIN driver movlw NUMBER_MOTORFADERS call MIOS_AIN_NumberSet call MIOS_AIN_UnMuxed movlw AIN_DEADBAND call MIOS_AIN_DeadbandSet #if ENABLE_MOTORDRIVER == 1 ;; initialize the MF driver call MIOS_MF_Enable movlw MOTORFADERS_DEADBAND call MIOS_MF_DeadbandSet movlw MOTORFADERS_PWM_DUTY_UP call MIOS_MF_PWM_DutyCycleUpSet movlw MOTORFADERS_PWM_DUTY_DOWN call MIOS_MF_PWM_DutyCycleDownSet movlw MOTORFADERS_PWM_PERIOD call MIOS_MF_PWM_PeriodSet #endif ;; initialize the shift registers movlw NUMBER_SHIFTREGISTERS call MIOS_SRIO_NumberSet movlw SRIO_UPDATE_FREQUENCY call MIOS_SRIO_UpdateFrqSet movlw TOUCHSENSOR_SENSITIVITY call MIOS_SRIO_TS_SensitivitySet ;; initialize encoder speed modes clrf TMP1 ; loop 8 times USER_Init_EncSpeedLoop movlw ENC_VPOT_SPEED_DIVIDER movwf MIOS_PARAMETER2 movlw ENC_VPOT_SPEED_MODE movwf MIOS_PARAMETER1 movf TMP1, W call MIOS_ENC_SpeedSet incf TMP1, F movlw 8-1 cpfsgt TMP1, ACCESS rgoto USER_Init_EncSpeedLoop movlw ENC_JOGWHEEL_SPEED_DIVIDER movwf MIOS_PARAMETER2 movlw ENC_JOGWHEEL_SPEED_MODE movwf MIOS_PARAMETER1 movlw 8 call MIOS_ENC_SpeedSet ;; initialize the integrated MIDI merger movlw MIOS_MIDI_MERGER_DISABLED call MIOS_MIDI_MergerSet ;; initialize the user timer (used for the meter handling) ;; (see lc_led.inc) ;; timer should be called every 20 ms == 200000 ticks ;; since this value is greater than 16 bit (== 65535 max) we just ;; use a 1:4 prescaler so the init value must be: 200000 / 4 == 50000 ;; (see also the MIOS_TIMER_Init documentation) movlw 50000 & 0xff ; low-byte movwf MIOS_PARAMETER1 movlw 50000 >> 8 ; high-byte movlw 0x02 ; use 1:4 prescaler call MIOS_TIMER_Init ;; init display page movlw INITIAL_DISPLAY_PAGE movwf LC_DISPLAY_PAGE ;; update LEDs which have been assigned to MBLC specific functions call LC_SFB_LED_Update ;; request update of meters and ledrings movlw 0xff movwf LC_METER_UPDATE_REQ movwf LC_LEDRING_UPDATE_REQ ;; fill host and GPC message screen with spaces movlw 0x80 movwf TMP1 lfsr FSR0, MSG_HOST_BEGIN lfsr FSR1, MSG_GPC_BEGIN movlw ' ' USER_Init_Msg_Loop1 movwf POSTINC0 movwf POSTINC1 decfsz TMP1, F rgoto USER_Init_Msg_Loop1 ;; copy welcome message to msg buffer TABLE_ADDR USER_INIT_MSG_STR lfsr FSR0, MSG_HOST_BEGIN tblrd*+ movff TABLAT, TMP1 USER_Init_Msg_Loop2 tblrd*+ movff TABLAT, POSTINC0 decfsz TMP1, F rgoto USER_Init_Msg_Loop2 ;; init rec/solo/mute status lfsr FSR0, RSM_MSG_BEGIN movlw 8 movwf TMP1 movlw '-' USER_Init_Msg_Loop3 movwf POSTINC0 decfsz TMP1, F rgoto USER_Init_Msg_Loop3 ;; init sel status lfsr FSR0, SEL_MSG_BEGIN movlw 8 movwf TMP1 movlw '.' USER_Init_Msg_Loop4 movwf POSTINC0 decfsz TMP1, F rgoto USER_Init_Msg_Loop4 ;; clear position offset of general purpose controller mode clrf GPC_OFFSET return ;; <------------------------------------------------------> USER_INIT_MSG_STR db 54, "xxxx---===< Logic Control Emulation ready. >===---xxxx" ;; -------------------------------------------------------------------------- ;; This function is called by MIOS in the mainloop when nothing else is to do ;; -------------------------------------------------------------------------- USER_Tick ;; check meter update request flags call LC_METERS_Handler ;; check ledring update request flags call LC_LEDRING_Handler return ;; -------------------------------------------------------------------------- ;; This function is periodically called by MIOS. The frequency has to be ;; initialized with MIOS_Timer_Set ;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0 ;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible! ;; -------------------------------------------------------------------------- USER_Timer ;; branch to Meter Timer goto LC_LED_MeterTimer ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a debug command has been received ;; via SysEx ;; Input: ;; o WREG, MIOS_PARAMETER1, MIOS_PARAMETER2, MIOS_PARAMETER3 like ;; specified in the debug command ;; Output: ;; o return values WREG, MIOS_PARAMETER1, MIOS_PARAMETER2, MIOS_PARAMETER3 ;; -------------------------------------------------------------------------- USER_MPROC_DebugTrigger return ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when the display content should be ;; initialized. Thats the case during startup and after a temporary message ;; has been printed on the screen ;; -------------------------------------------------------------------------- USER_DISPLAY_Init ;; clear screen call MIOS_LCD_Clear ;; branch to LC_[GC]LCD_Init GOTO_IFCLR LC_STAT, LC_STAT_GLCD, ACCESS, LC_CLCD_Init goto LC_GLCD_Init ;; -------------------------------------------------------------------------- ;; This function is called in the mainloop when no temporary message is shown ;; on screen. Print the realtime messages here ;; -------------------------------------------------------------------------- USER_DISPLAY_Tick ;; check if host/GPC message update has been requested btfss LC_STAT, LC_STAT_MSG_UPDATE_REQ return ;; yes: clear request flag, print message bcf LC_STAT, LC_STAT_MSG_UPDATE_REQ goto LC_DISPLAY_Print_Msg ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a complete MIDI event has been received ;; Input: ;; o first MIDI event byte in MIOS_PARAMETER1 ;; o second MIDI event byte in MIOS_PARAMETER2 ;; o third MIDI event byte in MIOS_PARAMETER3 ;; -------------------------------------------------------------------------- USER_MPROC_NotifyReceivedEvent ;; continue at LC MPROC handler goto LC_MPROC_NotifyReceivedEvent ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a MIDI event has been received ;; which has been specified in the CONFIG_MIDI_IN table ;; Input: ;; o number of entry in WREG ;; o first MIDI event byte in MIOS_PARAMETER1 ;; o second MIDI event byte in MIOS_PARAMETER2 ;; o third MIDI event byte in MIOS_PARAMETER3 ;; -------------------------------------------------------------------------- USER_MPROC_NotifyFoundEvent ;; update GPC value goto LC_GPC_AbsValue_Set ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a MIDI event has not been completly ;; received within 2 seconds ;; -------------------------------------------------------------------------- USER_MPROC_NotifyTimeout ;; -> jump to "ActionInvalid" for a proper reset of the sysex parser goto LC_SYSEX_ActionInvalid ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a MIDI byte has been received ;; Input: ;; o received MIDI byte in WREG and MIOS_PARAMETER1 ;; -------------------------------------------------------------------------- USER_MPROC_NotifyReceivedByte ;; -> continue at LC sysex parser goto LC_SYSEX_Parser ;; -------------------------------------------------------------------------- ;; This function is called by MIOS before the transfer of a MIDI byte. ;; It can be used to monitor the Tx activity or to do any other actions ;; (e.g. to switch a pin for multiplexed MIDI Outs) before the byte will ;; be sent. ;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0 ;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible! ;; Input: ;; o transmitted byte in WREG ;; -------------------------------------------------------------------------- USER_MIDI_NotifyTx ;; branch directly to "midi_rxtx.inc" goto MIDI_RXTX_NotifyTx ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a MIDI byte has been received. ;; It can be used to monitor the Rx activity or to do any action - e.g. ;; to react on realtime events like MIDI clock (0xf8) with a minimum latency ;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0 ;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible! ;; Input: ;; o received byte in WREG ;; -------------------------------------------------------------------------- USER_MIDI_NotifyRx ;; branch directly to "midi_rxtx.inc" goto MIDI_RXTX_NotifyRx ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when an button has been toggled ;; Input: ;; o Button number in WREG and MIOS_PARAMETER1 ;; o Button value MIOS_PARAMETER2: ;; - 1 if button has been released (=5V) ;; - 0 if button has been pressed (=0V) ;; -------------------------------------------------------------------------- USER_DIN_NotifyToggle goto LC_BUTTON_Handler ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when an encoder has been moved ;; Input: ;; o Encoder number in WREG and MIOS_PARAMETER1 ;; o signed incrementer value in MIOS_PARAMETER2: ;; - is positive when encoder has been turned clockwise ;; - is negative when encoder has been turned counter clockwise ;; -------------------------------------------------------------------------- USER_ENC_NotifyChange goto LC_ENC_Handler ;; -------------------------------------------------------------------------- ;; This function is called by MIOS before the shift register are loaded ;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0 ;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible ;; -------------------------------------------------------------------------- USER_SR_Service_Prepare ;; ledrings/meters handler call LC_LED_DOUT_Handler #if LEDDIGITS_ENABLED ;; leddigits handler call LC_LEDDIGITS_Update #endif #if MIDI_MONITOR_ENABLED != 0 ;; MIDI Rx/Tx Monitor handler call MIDI_RXTX_Handler #endif return ;; -------------------------------------------------------------------------- ;; This function is called by MIOS after the shift register have been loaded ;; Note that this is an interrupt service routine! Use FSR2 instead of FSR0 ;; and IRQ_TMPx instead of TMPx -- and make the routine as fast as possible ;; -------------------------------------------------------------------------- USER_SR_Service_Finish return ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a pot has been moved ;; Input: ;; o Pot number in WREG and MIOS_PARAMETER1 ;; o LSB value in MIOS_PARAMETER2 ;; o MSB value in MIOS_PARAMETER3 ;; -------------------------------------------------------------------------- USER_AIN_NotifyChange goto LC_MF_FaderEvent ;; ========================================================================== ;; standard (reusable) routines ;; ========================================================================== #include "midi_rxtx.inc" ;; ========================================================================== ;; Configuration ;; ========================================================================== ;; ---[ LC button/LED functions ]--- #include "lc_io_table.inc" ;; ---[ GPC Labels ]--- #include "lc_gpc_lables.inc" ;; ========================================================================== ;; Application code (see comments in files) ;; ========================================================================== #include "lc_glcd.inc" #include "lc_display.inc" #include "lc_clcd.inc" #include "lc_sysex.inc" #include "lc_mproc.inc" #include "lc_buttons.inc" #include "lc_sfb.inc" #include "lc_enc.inc" #include "lc_leds.inc" #include "lc_leddigits.inc" #include "lc_ledrings.inc" #include "lc_meters.inc" #include "lc_mf.inc" #include "lc_hlp.inc" #include "lc_cali.inc" #include "lc_gpc.inc" ;; ========================================================================== ;; Fonts and icons for graphical display ;; ========================================================================== #include "lc_fonts.inc" ENDC'est sans doute du grand n'importe quoi donc n'hésitez pas à me conseiller !Merci d'avance.Bertrand Quote Link to comment Share on other sites More sharing options...
moxi Posted May 7, 2008 Report Share Posted May 7, 2008 a priori, tes faders pour une LC doivent être connectés directement sur j5 ("unmuxed"):http://www.ucapps.de/mbhp/mbhp_mf_interconnections.pdf... Quote Link to comment Share on other sites More sharing options...
Beber Posted May 7, 2008 Author Report Share Posted May 7, 2008 Déja merci pour ta réponse ! ;)Alors en fait, j'ai pas de fader motorisé, c'est juste des faders classiques que j'ai connecté à mon module AIN4X.Ensuite, j'ai quand même 2 potars et un fader que le logiciel reconnait, mais pas le reste du module AIN.Et je comprends pas comment tout cela fonctionne....Peux-tu répondre a mes quelques question :1- Comment je dois expliquer au PIC que j'ai 31 potars ?2- Les valeurs que prend la course d'un potar va de 0 à 16352 ; Je croyais que c'était de 0 a 127 ... Qu'est-ce qui ne va pas ?3- Si j'ai bien compris, un potar est considéré comme un PitchBend sur un canal. Comme il n'y a que 16 canaux, ça veut dire que je peux faire fonctionner que 16 potars a la fois ??4- N'éxiste-t-il pas une application qui gère seulement des boutons et des potars sous Mackie ?5- J'ai aussi un autre petit problème, quand j'ai conçu le design de la face avant, je pensais utiliser de petits faders que j'avais trouver sur ebay. Je n'avais pas fait attention qu'ils devaient faire 10k! J'ai du en acheter d'autres mais qui étaient beaucoup plus long... Je me retrouve donc avec 3 faders qui ont une course incomplète.... :-\Comment puis-je faire pour numériser seulement la course utile ?Voilà , ça fait beaucoup, je suis désolé.... Quote Link to comment Share on other sites More sharing options...
moxi Posted May 7, 2008 Report Share Posted May 7, 2008 Alors en fait, j'ai pas de fader motorisé, c'est juste des faders classiques que j'ai connecté à mon module AIN4X.si tu n'as pas le hardware correspondant à la LC, utilise plutôt l'appli mb64 ou 64e1- Comment je dois expliquer au PIC que j'ai 31 potars ?en editant le fichier main.asm: ; Although MIDIbox64E has been designed for rotary encoders, it can also handle with ; up to 64 pots/faders or up to 8 motorfaders. ; Pots and faders are mapped to the "encoder" entries 64-128. ; Example: if group width is 16, and group 1 is selected, encoders are using ; entry 1-16, and pots are using entry 64-70 ; NOTE: morphing is automatically disabled if analog pots/faders are connected [u]#define DEFAULT_NUMBER_AIN [color=red]1[/color] <-----[/u] ; ; you could enable the multiplexers here to test this application ; with a MIDIbox64 based hardware ; if 0: no multiplexers (a *must* when MF module connected) ; if 1: use multiplexers [u]#define DEFAULT_ENABLE_AIN_MUX [color=red]1[/color] <----[/u] 2- Les valeurs que prend la course d'un potar va de 0 à 16352si tu as chargé l'appli LC, les faders envoie tjrs des message de pitchbend (14bit)4- N'éxiste-t-il pas une application qui gère seulement des boutons et des potars sous Mackie ??? ...si tu veux vraiment rester sur la LC, tu peux tjrs désactiver les MF..Comment puis-je faire pour numériser seulement la course utile ?c'est quoi la taille des faders (les petits) pour laquelle ta façade est conçue? pareil j'en ai 2 ou trois à te dépanner..sinon, je sais pas comment tu peux faire.... Quote Link to comment Share on other sites More sharing options...
Beber Posted May 7, 2008 Author Report Share Posted May 7, 2008 si tu n'as pas le hardware correspondant à la LC, utilise plutôt l'appli mb64 ou 64eMais Ableton live ne va pas comprendre non ? Il lui faut des protocoles particuliers comme :MackieOxygenOzoneAxiom ....c'est quoi la taille des faders (les petits) pour laquelle ta façade est conçue?La course est de 4,5 cm, mais je t'avoue que j'ai déja du repercer ma façade pour caler les nouveaux faders, et j'ai pas envie de la charcuter encore une fois ... a moins que la distance entre les perçages soit de 5,6 cm comme je l'avais prévu avec les petits faders..en tous cas merci de proposer Quote Link to comment Share on other sites More sharing options...
julienvoirin Posted May 8, 2008 Report Share Posted May 8, 2008 et pourquoi tu lui mettrais pas ça dans le ventre à ton core ? http://www.ucapps.de/mios/ain64_din128_dout128_v2_0.zipensuite dans LIVE tu peux éditer un fichier pour ta propre surface de controle ou tu déclare en fait quel note, CC correspondent aux commandes de la mackie (page up/down des faders, les boutons de pan, les select/rec/mute, etc ..). Un utilitaire de lecture de message midi te sera utile comme midiox (PC) ou midi monitor sous OSX, afin de savoir ce qu'envoie ta boite.Pour live va voir dans /user/library/preferences/ableton/live6,0,10/user remote scriptsSous windows je connais pas.Je l'ai fait pour une midibox custom, ça marchait. Depuis je me suis concentré sur ma mackie.Sinon il reste le midi learn. Quote Link to comment Share on other sites More sharing options...
Beber Posted May 11, 2008 Author Report Share Posted May 11, 2008 et pourquoi tu lui mettrais pas ça dans le ventre à ton core ?http://www.ucapps.de/mios/ain64_din128_dout128_v2_0.zipJ'ai essayé de faire ça, mais rien ne se passe du coté de live.... :-\Je me demande si tout fonctionne bien du côté hardware.Comment je peux savoir si tous les boutons et les potars fonctionnent ?ensuite dans LIVE tu peux éditer un fichier pour ta propre surface de contrôle ou tu déclare en fait quel note, CC correspondent aux commandes de la mackieEt comment on fait ça ??? Quote Link to comment Share on other sites More sharing options...
julienvoirin Posted May 11, 2008 Report Share Posted May 11, 2008 faut déclarer la midibox comme télécommande dans les ports IN et OUT des preferences de Live.t'as midibox est sensée envoyer des messages Notes On/off quand t'appuies sur les boutons, des Control changes quand tu tritures les potards et elle allume ses LED quand tu lui envoies des Notes en MIDI.MIDIOX MIDIOX MIDIOX !!!!Le fichier "script" s'édite avec Notepad. Et tu le sauves. Il suffit de simplement lire les instructions indiquées à l'intérieur pour comprendre le fonctionnement.Courage ! Quote Link to comment Share on other sites More sharing options...
Beber Posted May 13, 2008 Author Report Share Posted May 13, 2008 pffffff je perds espoir....... :'(J'arrive a rien là !Je comprends pas comment on programme le pic.....Je sais même pas si tous mes potars et boutons marchent. Par exemple quand j'appuie sur un bouton particulier j'ai droit au message :00000011822472 ms | [90 00 7F] Channel 1: Note On C-1 velocity: 12700000011822477 ms | [90 01 7F] Channel 1: Note On C#-1 velocity: 12700000011822478 ms | [90 02 7F] Channel 1: Note On D-1 velocity: 12700000011822478 ms | [90 03 7F] Channel 1: Note On D#-1 velocity: 12700000011822645 ms | [90 00 00] Channel 1: Note On C-1 velocity: 000000011822646 ms | [90 01 00] Channel 1: Note On C#-1 velocity: 000000011822646 ms | [90 02 00] Channel 1: Note On D-1 velocity: 000000011822647 ms | [90 03 00] Channel 1: Note On D#-1 velocity: 0alors que pour les autres j'ai juste:00000011821566 ms | [90 05 7F] Channel 1: Note On F-1 velocity: 12700000011821717 ms | [90 05 00] Channel 1: Note On F-1 velocity: 0ensuite j'ai que 3 potars sur 31 qui me renvoient un signalet encore, y'en a un qui renvoie n'importe quoi.S'il vous plait aidez moiiiiiiiii !!!! Quote Link to comment Share on other sites More sharing options...
dstamand Posted May 13, 2008 Report Share Posted May 13, 2008 S'il vous plait aidez moiiiiiiiii !!!! S.V.P. aide-nous !!Va faire tes devoirs comme lire la documentation, lire les F.A.Q. etc... Quote Link to comment Share on other sites More sharing options...
julienvoirin Posted May 13, 2008 Report Share Posted May 13, 2008 Va faire tes devoirs comme lire la documentation, lire les F.A.Q. etc...c'est pas faux, mais on va rester coolalors , vu ton message midi, tu a ton bouton qui en fait est relié à 3 pins du 74hc165 (un court circuit en fait, que TU as créé). Donc, déjà , revérifier toutes tes liaisons éléctriques au multimètre en mode "bipbip", afin de voir que ton schéma électrique correspond bien à tes soudures. Par expérience, 98% des erreurs sont dûes à ça.Le reste de tes boutons semble OK.Les potards sont sensés envoyer des messages de control change.Je comprends pas comment on programme le pic.....là tu déconnes, tu l'as programmé si tu as les massages correspondant. En sysex ou via miosstudio Quote Link to comment Share on other sites More sharing options...
dstamand Posted May 14, 2008 Report Share Posted May 14, 2008 c'est pas faux, mais on va rester coolEffectivement, on va être cool :-) Quote Link to comment Share on other sites More sharing options...
Beber Posted May 14, 2008 Author Report Share Posted May 14, 2008 Ca va les gars, pas la peine de s'énerver...Je suis loin d'être un super pro comme vous, et j'imagine que quand vous avez débuté vous aussi, vous avez rencontré beaucoup de difficultés a comprendre tous ça non ?Enfin, merci quand même."Je vas faire mes devoirs" alors... Quote Link to comment Share on other sites More sharing options...
moxi Posted May 14, 2008 Report Share Posted May 14, 2008 ah! de la passion ! ;-)beber, oui, méthode bip-bip, déjà ça règle les soucis côté materiel, aprés ça, tu pourras vite voir si tu as des soucis dans la config de ton appli...le mieux, c'est effectivement de charger l'application 128din_128dout en premier... Quote Link to comment Share on other sites More sharing options...
Beber Posted May 16, 2008 Author Report Share Posted May 16, 2008 Re !Bon j'ai vérifié les soudures, il y avait bien un problème !J'avais oublié de connecté les pins du core Axx non utilisés a la masse.... ::)Malgré ça, quand je tourne certains potars je reçois des infos sur plusieurs canaux...Çà sent le faux contact a plein nez, mais j'ai tout vérifié en mode 'bip bip' et j'ai l'impression que c'est bon.Vous pensez que ça vient de mauvaises soudures, ou bien de la programmation du pic ? Quote Link to comment Share on other sites More sharing options...
moxi Posted May 16, 2008 Report Share Posted May 16, 2008 Malgré ça, quand je tourne certains potars je reçois des infos sur plusieurs canaux...c'est à dire? le même CC avec la même valeur sur different canaux midi, ou bien en tournant un potar ça transmet plusieurs cc differents?as-tu bien mis sur "1" le flag "#define DEFAULT_ENABLE_AIN_MUX" dont on parlait il y a quelques jours?si oui , es-tu sûr que la compilation c'est bien déroulée aprés les modifs de tes fichiers? (fait un "make clean" d'abord, puis un "make".. Quote Link to comment Share on other sites More sharing options...
Beber Posted May 16, 2008 Author Report Share Posted May 16, 2008 c'est à dire? le même CC avec la même valeur sur différent canaux midi, ou bien en tournant un potar ça transmet plusieurs cc différents?en tournant un potar ça transmet plusieurs cc différentsMais là c'est plus grave en fait....Mes soudures n'arrêtent pas de se barrer !Tu utilise quoi pour souder tes potars au module AIN ? Parce que j'avais lu qu'il fallait directement les souder sur le pcb sans utiliser de cavalier mais c'est vraiment trop casse c**** ! Ah et oui autre question : c'est quoi la meilleure méthode pour connecter l'alimentation aux potars?Parce que moi, j'ai connecté le vd et le vs de chaque registre sur un des huit potars, et aprés j'ai fait des sortes de ponts entre les 7 potars qui restent. (oui c'est pas trés clair)voilà pour aujourd'hui ! ;D Quote Link to comment Share on other sites More sharing options...
moxi Posted May 16, 2008 Report Share Posted May 16, 2008 Tu utilise quoi pour souder tes potars au module AIN ? Parce que j'avais lu qu'il fallait directement les souder sur le pcb sans utiliser de cavalier mais c'est vraiment trop casse c**** !je pense que tu fait une confusion avec le fait que certains recommandent (notament pour l'audio) de ne pas utiliser de socket pour les AOPs et autre ICs, je vois pas trop la difference entre utiliser un SIL et souder directement le cable au PCB (sinon la prise de choux, comme tu dis..)Mais là c'est plus grave en fait....Mes soudures n'arrêtent pas de se barrer !soigne ça d'abord! cherche sur le net, y'a des tutoriels pour bien souder et savoir distinguer une soudure foireuse d'une réussie...Ah et oui autre question : c'est quoi la meilleure méthode pour connecter l'alimentation aux potars?Parce que moi, j'ai connecté le vd et le vs de chaque registre sur un des huit potars, et aprés j'ai fait des sortes de ponts entre les 7 potars qui restent. (oui c'est pas trés clair)http://www.ucapps.de/mbhp/mbhp_ainx4_64pots.pdfta méthode semble correcte..en tournant un potar ça transmet plusieurs cc différentsdes court-circuits, surement coté PCB, là ou tu as soudé tes cables directement sur le circuit..et don't worry, ça finit tjrs par fonctionner, une MIDIbox! Quote Link to comment Share on other sites More sharing options...
Beber Posted May 16, 2008 Author Report Share Posted May 16, 2008 merci.Tu n'aurais une référence de connecteur que je pourrai utiliser par hasard ? Quote Link to comment Share on other sites More sharing options...
julienvoirin Posted May 16, 2008 Report Share Posted May 16, 2008 référence de connecteur HE10 à sertir. Smash en vend, mais tu vas attendre longtemps. Selectronic en vend, de bonne qualité. Radio saint quantin, plus cher, moins bon. Super pratique, faut le sertir à l'étau ou avec une pince multiple en étant très soigneux et très doux.Pour tes soudures, un petit tuyau : l'étain va là où c'est chaud ... donc on chauffe la partie qui doit recevoir la soudure, on applique le fil d'étain sur la patte de composant et la pastille puis on retire vite le fer en laissant le fil appuyé, comme ça l'étain ne va pas sur le fer. C'est un coup de main à prendre, mais avec les trous métallisés or, c'est Rolls Royce. Quote Link to comment Share on other sites More sharing options...
Beber Posted May 22, 2008 Author Report Share Posted May 22, 2008 Bonjour à tous.Depuis le dernier post, je me suis procuré les connecteur he10 suivants : http://fr.farnell.com/jsp/search/productdetail.jsp?SKU=3815778J'ai tout ressoudé en faisant bien attention et.......... CA MARCHE TOUJOURS PAS !!!!!!!!!J'ai pleins de messages aléatoires qui s'affichent... :'(J'avoue que là j'ai un peu du mal a comprendre. Je sais que mes soudures sur la carte ain sont bonnes (mode bip bip), ça doit donc forcément venir des connexions au niveau des potars.Mais avec les connecteurs je me doute que le problème ne vient pas de la soudure au niveau de la carte mais plutôt au niveau des pâtes des potars. Y a t-il des erreurs classiques que j'aurais pu commettre ? Quote Link to comment Share on other sites More sharing options...
julienvoirin Posted May 22, 2008 Report Share Posted May 22, 2008 les pins non utilisées des AIN, tu les a reliées à la masse ? t'as désactivé J5 ? les messages control change aléatoires c'est quand des pins sont restées libres alors qu'il devrait y avoir un potar branché dessus. tu as lu les explications de TK ? Quote Link to comment Share on other sites More sharing options...
Beber Posted May 22, 2008 Author Report Share Posted May 22, 2008 wai je me suis dis la même chose: j'ai bien relié à la masse les pins non utilisés et pareil pour le J5 que j'utilise pas.Y'a certainement une mauvaise soudure qq part, mais je la trouve pas...enfin bon, jvé de nouveau tout reprendre à zéro et on verra biena+ Quote Link to comment Share on other sites More sharing options...
Beber Posted May 24, 2008 Author Report Share Posted May 24, 2008 Re !Bon voilà ça marche enfin !J'arrive a contrôler ableton mais... il y a encore un nouveau problème ! héhéhéhé ;DJe n'arrive plus a uploader les fichiers *.hex !Je peux envoyer les fichiers *.syx mais j'ai pas compris comment on passe du fichier hex -> syxQuelqu'un peut-il me donner la marche a suivre svp ? Quote Link to comment Share on other sites More sharing options...
julienvoirin Posted May 25, 2008 Report Share Posted May 25, 2008 tu as lu les explications de TK ?tu as lu les explications de TK ?tu as lu les explications de TK ? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.