Jump to content

TK.

Administrators
  • Posts

    15,247
  • Joined

Everything posted by TK.

  1. Hallo Tobi, ja, die Ladekurve wird periodisch ueberwacht - dauert die Entladung laenger als der Grundwert, kann man davon ausgehen, dass der Touch Sensor gerade beruehrt wird. Nein, Du brauchst keinen zusaetzlichen Kondensator. Du benoetigst noch nicht einmal einen speziellen Sensor, denn wenn Du den hochohmigen Eingang der Sensorschaltung beruehrst, entsteht bereits eine kapazitive Verbindung zur Erde (ueber Deinen Koerper), und diese Kapazitaet ist ausreichend gross, um die Pulsantwort zu verlaengern. siehe auch http://www.ucapps.de/mbhp/mbhp_din_touchsensors.pdf Gruss, Thorsten.
  2. No, there is no problem with XP. Just follow the MIDI troubleshooting guide step by step --- all issues from the past are documented there, all users were able to get the upload running based on this guide, and I don't think that there is any new, unknown problem. http://www.ucapps.de/howto_debug_midi.html Best Regards, Thorsten.
  3. Hi Robin, alright, now it's clear - this will work. Hint: if you've saved the button number of the group, you can convert it to 1-of-8 code (which is possibly for which you are looking for) with the MIOS_HLP_GetBitORMask - the result is the LED pattern which can be forwarded to MIOS_DOUT_SRSet Best Regards, Thorsten.
  4. TK.

    Temporal absence

    yes, finally a nice studio corner with enough place for upcoming MIDIbox projects :) Best Regards, Thorsten.
  5. Hallo Tobi, so trivial ist das gar nicht, um nicht zu sagen, es ist ziemlich tricky ;-) Hier gibts ein paar Informationen dazu, wie MIOS einen Touch Sensor auswertet: http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=concepts;action=display;num=1062462975;start=1#1 Gruss, Thorsten.
  6. Hi, do you see the selected group at the display? If not, the button is not assigned correctly. How did you assign the meta event to the button? With the mk_syx script, or with vmidibox16e? Bear in mind that the upload via vmidibox16e doesn't work properly with all interfaces, it's better to use mk_syx which provides the new upload format Best Regards, Thorsten.
  7. Hi, do you see the selected group at the display? If not, the button is not assigned correctly. How did you assign the meta event to the button? With the mk_syx script, or with vmidibox16e? Bear in mind that the upload via vmidibox16e doesn't work properly with all interfaces, it's better to use mk_syx which provides the new upload format Best Regards, Thorsten.
  8. Hi Robin, first question: yes second question: yes (MIOS_PARAMETER1 won't be overwritten) third question: I'm not sure what you are planning to do exactly, but I want to warn you that the DOUTs won't be updated directly, but only every 1 mS Best Regards, Thorsten.
  9. Must be an electrical problem (bad soldering, missing pull-up resistor, bad button), but why did you wrote about this at the programming board? Best Regards, Thorsten.
  10. Must be an electrical problem (bad soldering, missing pull-up resistor, bad button), but why did you wrote about this at the programming board? Best Regards, Thorsten.
  11. Thats a declaration error in the wrapper, I will fix this Best Regards, Thorsten.
  12. Thanks for the input, Pilo! :-) nW: yes, you can use global variables. Just look into the generated assembler file to see what SDCC is doing with these variables. Yes, you need the preliminary release of MIOS V1.8, otherwise your program will crash due to overwritten FSR2[LH] More infos can be found at the MIOS C introduction page: http://www.ucapps.de/mios_c.html Best Regards, Thorsten.
  13. Hi Nacho, this means that you forgot to disable the internal MIDI thru function of MIDI-ox which forwards incoming data to the output(s). This function disturbs the communication with the core and should therefore be deactivated: once you did this, deselect all MIDI In/Out ports and select them again (easiest solution), or modify your port mapping directly (expert solution) More details can be found at the Bootstrap Loader page: http://www.ucapps.de/mios_bootstrap.html Best Regards, Thorsten. P.S.: a Java based uploading tool which replaces MIDI-ox and is easier to use (since it doesn't provide so much options...) will be published in the next days
  14. Hi *, you've possibly noticed that I haven't answered some of your postings in the last time although they were explicitely addressed to me. Since people started to send emails in the hope to get a response at this way, its possibly better to explain the reason here, so that I can simply refer to this article. I'm about to move to a new flat and therefore won't have so much time for MIDIbox tinkering and support in the next weeks. Instead I'm busy with renovation and organisatorical work - at least until end of August. When I feel boring I will possibly make some music or implement a new feature into an application (like every time when I start to make music ;-)), but please don't feel confused if you notice website changes or sporadic signs of life from me but nothing else... thanks for your understanding! I wish that all experienced MIDIbox guys are helping newbies more than before - don't let them down, remember the time where other people helped you. At the beginning it could be difficult to find the right tips, but from other people errors you will learn a lot - believe me! :) Best Regards, Thorsten.
  15. Hallo, diese Frage koennte ich Dir evtl. beantworten, wenn Du mal mehr ueber Deine Beobachtungen bei den vorangegangenen Tests schreiben wuerdest - hast Du die Leitungen durchgemessen, wenn ja wie? Und mit welchen Resultaten? Hast Du ein Multimeter? Oder suchst Du nach einer alternativen Moeglichkeit zum Testen ohne Multimeter? Gruss, Thorsten.
  16. And I hoped that you are learning from all the tips and code snippets that I gave you in the past... However, here the assembler variant... if it doesn't work immediately, please first try to find out the problem by yourself to avoid a massive attack of ping-pong mails here in the forum (e.g. check the main.err file) In distance to the C example this code sends the events via MIDI channel 16, because channel 1 should be reserved for the LC protocol ;; -------------------------------------------------------------------------- ;; 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 LC_MF_FaderEvent ;; save the fader number in LC_FADER_NUMBER movwf LC_FADER_NUMBER movlw 0x01 IFNEQ LC_FADER_NUMBER, ACCESS, rgoto LC_MF_FaderEvent_Not1 LC_MF_FaderEvent_1 movlw 0xbf call MIOS_MIDI_TxBufferPut movlw 0x10 call MIOS_MIDI_TxBufferPut movf LC_FADER_NUMBER, W call MIOS_AIN_Pin7bitGet call MIOS_MIDI_TxBufferPut return LC_MF_FaderEvent_Not1 movlw 0x02 IFNEQ LC_FADER_NUMBER, ACCESS, rgoto LC_MF_FaderEvent_Not2 LC_MF_FaderEvent_2 movlw 0xbf call MIOS_MIDI_TxBufferPut movlw 0x11 call MIOS_MIDI_TxBufferPut movf LC_FADER_NUMBER, W call MIOS_AIN_Pin7bitGet call MIOS_MIDI_TxBufferPut return LC_MF_FaderEvent_Not2 ;; the rest of the LC MF handler ;; ... ;; ... ;; ... LC_MF_FaderEvent_End ;; thats all return Best Regards, Thorsten.
  17. Wow! I like this style, and the SID sounds are making the songs even more interesting :) Best Regards, Thorstem.
  18. A MIDIbox made by Alex aka. "mb944" - he uses it for controlling Traktor:
  19. I haven't started with this yet, and won't find the time in the next two months, so you have my go Best Regards, Thorsten.
  20. ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a pot has been moved ///////////////////////////////////////////////////////////////////////////// void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) { if( pin == 1 ) // J5.A1 { // send CC event for Joystick X axis MIOS_MIDI_TxBufferPut(0xb0); MIOS_MIDI_TxBufferPut(0x10); MIOS_MIDI_TxBufferPut(MIOS_AIN_Pin7bitGet(pin)); return; } if( pin == 2 ) // J5.A2 { // send CC event for Joystick Y axis MIOS_MIDI_TxBufferPut(0xb0); MIOS_MIDI_TxBufferPut(0x11); MIOS_MIDI_TxBufferPut(MIOS_AIN_Pin7bitGet(pin)); return; } // else continue with motorfader handling ... // ... // ... // ... } does it look less complicated or not? If yes: then it makes sense to wait for the MIOS C wrapper release... ;-) Best Regards, Thorsten.
  21. Here a first insight into a C programming example: #include "cmios.h" //#include <pic18f452.h> ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS after startup to initialize the // application ///////////////////////////////////////////////////////////////////////////// void Init(void) { // define number of shift registers MIOS_SRIO_NumberSet(16); // update frequency of SRIO chain MIOS_SRIO_UpdateFrqSet(1); // ms } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS in the mainloop when nothing else is to do ///////////////////////////////////////////////////////////////////////////// void Tick(void) { } ///////////////////////////////////////////////////////////////////////////// // 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 ///////////////////////////////////////////////////////////////////////////// void DISPLAY_Init(void) { // clear screen MIOS_LCD_Clear(); // print message MIOS_LCD_CursorSet(0x00); MIOS_LCD_PrintCString("Press Button"); } ///////////////////////////////////////////////////////////////////////////// // This function is called in the mainloop when no temporary message is shown // on screen. Print the realtime messages here ///////////////////////////////////////////////////////////////////////////// void DISPLAY_Tick(void) { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a complete MIDI event has been received ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyReceivedEvnt(unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) { // print received MIDI event MIOS_LCD_Clear(); MIOS_LCD_PrintCString("Received:"); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintHex2(evnt0); MIOS_LCD_PrintHex2(evnt1); MIOS_LCD_PrintHex2(evnt2); } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a MIDI event has been received // which has been specified in the MIOS_MPROC_EVENT_TABLE ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyFoundEvent(unsigned entry, unsigned char evnt0, unsigned char evnt1, unsigned char envt2) { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a MIDI event has not been completly // received within 2 seconds ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyTimeout(void) { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a MIDI byte has been received ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyReceivedByte(unsigned char byte) { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when an button has been toggled // pin_value is 1 when button released, and 0 when button pressed ///////////////////////////////////////////////////////////////////////////// void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) { MIOS_LCD_Clear(); MIOS_LCD_PrintCString("DIN #"); MIOS_LCD_PrintBCD3(pin); MIOS_LCD_PrintCString(pin_value ? " off" : " on"); MIOS_LCD_CursorSet(0x40); switch( pin ) { case 0: MIOS_LCD_PrintCString("Sending a Note"); MIOS_MIDI_TxBufferPut(0x90); MIOS_MIDI_TxBufferPut(pin); MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); break; case 1: MIOS_LCD_PrintCString("Sending a CC"); MIOS_MIDI_TxBufferPut(0xb0); MIOS_MIDI_TxBufferPut(pin); MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); break; case 2: MIOS_LCD_PrintCString("Sending SysEx"); MIOS_MIDI_TxBufferPut(0xf0); MIOS_MIDI_TxBufferPut(0x11); MIOS_MIDI_TxBufferPut(0x22); MIOS_MIDI_TxBufferPut(0x33); MIOS_MIDI_TxBufferPut(0x44); MIOS_MIDI_TxBufferPut(pin); MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); MIOS_MIDI_TxBufferPut(0xf7); break; default: MIOS_LCD_PrintCString("No action"); } } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when an encoder has been moved // incrementer is positive when encoder has been turned clockwise, else // it is negative ///////////////////////////////////////////////////////////////////////////// void ENC_NotifyChange(unsigned char encoder, unsigned char incrementer) { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a pot has been moved ///////////////////////////////////////////////////////////////////////////// void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) { } all MIOS functions are now accessible from C I've written a small script which builds workarounds into the generated assembler code. Some of them will be part of the next SDCC release. If anybody wants to beta-test the MIOS wrapper, just write me an email. Best Regards, Thorsten.
  22. Hi Dan, sure, the USER_AIN_NotifyChange hook can be found in lc_mf.inc Although "_mf.inc" implies that this file is intented for motorfaders only, this does not mean that you wouldn't be able to react on any other analog control element from there. Best Regards, Thorsten.
  23. TK.

    .syx programm schreiben?

    Hallo, ja, sogar eine sehr effiziente. Du kannst Dir das http://www.ucapps.de/midibox/mk_syx.zip Script herunterladen, die midibox64.ini Datei im pic18f Verzeichnis nach Deinen wuenschen anpassen, und dann mit "perl mk_syx.pl midibox64.ini" ein neues Konfigurationsfile bauen. Unter "Pot Row 4" stehen bereits die MIDI Events fuer Volume auf Kanal 1-16. Sie sind momentan den Potis 49-64 zugewiesen. Aendere die Potinummern auf 1-16, und die der bisherigen auf 49-64 (jedes Poti darf nur einmal auftauchen) Gruss, Thorsten.
  24. Good news: I'm in contact with Vangelis, the developer of the PIC16 SDCC module. Maybe we will find a good solution to improve the interaction with MIOS, and to optimize the assembler output :) Best Regards, Thorsten.
  25. Hi Pearl, the encoder just only has to send PitchBender events at Channel 9 Best Regards, Thorsten.
×
×
  • Create New...