Jump to content

goule

Programmer
  • Posts

    191
  • Joined

  • Last visited

    Never

About goule

  • Birthday 01/01/1

Contact Methods

  • Website URL
    http://www.myspace.com/aerodrink

Profile Information

  • Gender
    Not Telling

goule's Achievements

MIDIbox Addict

MIDIbox Addict (2/4)

0

Reputation

  1. Works like a charm, thank you guys ! void Init(void) __wparam { (...) MIOS_MIDI_MergerSet(MIOS_MIDI_MERGER_DISABLED); (...) } // 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) __wparam { MIOS_MIDI_TxBufferPut(evnt0); MIOS_MIDI_TxBufferPut(evnt1); MIOS_MIDI_TxBufferPut(evnt2); }
  2. Hi folks ! Thanks fro that fast answers ! ;) That's what I need to find : how do you ignore bytes (mean : how not to merge them to the output) without using the MIOS_MPROC_MergerDisable() function ?
  3. Hi guys, My controller is in MIDI merge mode, so that I can receive and transmit notes from my master keyboard (P60) to the outside world together with my controller MIDI messages. I want to get rid of the realtime MIDI messages that comes out of my P60 and simply ignore them. Those are 'timing clock' (0xf8) and 'active sensing' (0xfe). I've tried this : void MPROC_NotifyReceivedByte(unsigned char byte) __wparam { // This function is called by MIOS when a MIDI byte has been received if ((0xf8 == byte) || (0xfe == byte)) MIOS_MPROC_MergerDisable(); else MIOS_MPROC_MergerEnable(); } The filter works but when I play with the controllers, it seems like it completely messes up the note on / note off messages, and if you keep on playing on the keyboard after a while everything gets back to normal (until you touch the controller again). I suppose this is due to the fact that I should be sure that the message is only 1 byte long before cancelling it ... does anyone know how to do this ? :P
  4. I didn't find any "Add" button (or anything similar) to add the code in the SVN page ... ??? Edit : OK, found the info : http://www.midibox.org/dokuwiki/doku.php?id=windows_toolchain_svn Seems like I need upload right by the way, do I ? : "There is a section of the forum with restricted access for programmers who may need to upload. If you need this access, PM TK, he may add you into this group."
  5. Hi Stryd_one ! Why not, but what path should I place my files into ? (woOoOps this sounds like bad english is it :P) [/] [trunk/] [apps/] [controllers/] ? By the way : HAPPY NEW YEAR PEOPLE :D I wish you a year full of MidiBox projects ! By my side I plan to build a new one : some very tiny box I would insert between my beloved E-MU e6400 Ultra and my MIDI inteface, just to add some "patchcord" ability to the sampler. FYI, in E-MU synthesis, a patchcord allows to route sources to destinations just like in an old modular synth (very powerful, but some great ideas are missing in the OS). mmm ... still a little bit early to wish anything, I know, but : 1) I'm in France; new year happens before US here (well, I know there's a ton of europeans out there also !) 2) At midnight hour I'll be dr*nking, I doubt I'll be in a shape to post anything valuable, neither able to make any soldering stuff ... LOL
  6. Added to the wiki page : two videos ... and more to come ! Bye
  7. Guys, it's been a long time I had to put the specifications + C code of the Arkade online, so I finally created a simple wiki page : http://www.midibox.org/dokuwiki/doku.php?id=arkade The download link is at the bottom. Cheers ! PS : for the front panel that what quite a long story but a friend of a friend had access to some drilling monster machine :D Goule
  8. Hey guys thanks for showing up ;D EEPROM would have been great solution but 17*16=272 bytes ... bit too much :( (256 available) I did the test to totally unplug the bankstick module & replug it; of course everything's still there :-[ I was a fool to have doubts about this ... I'll go for the simplier BankStick way of storing my names. I got 8 sticks so I'll dedicate 7 for the presets (with the FFU fiels I can store 64 presets per module, that gives 7*64=448 presets which is already way too much 8) The end is near ! ;D :) Thanks guys
  9. Hi people, My user-project is a midi controller with 17 sensors, each of which has a 16 letters name (2 blocs of 8 characters) and the user can change the name at any moment by moving a data wheel on any letter. Here is the way the arrays are declared : unsigned char CTL_NAME_PART1[17][9]; // the ninth character is for \0 unsigned char CTL_NAME_PART2[17][9]; Today these arrays are initialized byte after byte from the content of the bankstick. But I'm not very satisfied with a solution that relies on the content of the bankstick. I want to find a way to initialize the arrays, and I want to avoid doing it letter by letter. The problem is when I try this : CTL_NAME_PART1[0] = "Whatever string"; I get a "cannot assign values to aggregates" error ... any idea ? I already tried other solutions, some of them telling me I hadn't enough memory to do this ... is it bad news ? Is there a real risk to rely on the content of the bankstick ? For instance, what happens if the bankstick module itself gets unplugged ? Is all the data lost ? Thanks for your help ! Olivier
  10. mmm ... did you mean : AUAIMBCTG ? (small mistake ? 8)) m8 : thank you so much for that beautiful answer I was waiting for ! :D ;) I searched for "star wiring diagram" or so ... without success. Your url rocks, even if the exact diagram I had seen monthes ago on ucapps was bit more different (showing a 'real' starry way of connecting a bunch of pots, not only 8 ) but perhaps I gotta investigate your link deeper. EDIT : found it, I was blind : http://www.midibox.org/users/tor_arne/midibox64_walkthrough/pot_wiring.jpg Thanks thanks and thanks again !! 8)
  11. Hi crew, My user-project is almost done, but I still get some annoying values coming out of the AIN :-\ so I was wondering where this crap could come from. I have 17 pins connected to pots, different sensors, and as an example I would say that in a minute, three or four of my controllers will send their value to the AIN instead of remaining 'silent'. It's often the same pins that 'talk' ::). I connected all the unused entries to +5v ... should I try to connect them to ground instead ? ??? There was a time I found a document on ucapps showing an example of a soldering diagram ("star" soldering, as far I as can remember). That was supposed to be the best method to connect pots together. Does this ring a bell to anyone ? I forgot to tell that sometimes the values get crazy, like : 0, 83, 81, 83, 0 (a very short jump from the normal 0 value ... :'() Have a good week-end ! Cheers from France, ;D Olivier
  12. Unfortunately, 17 is my number of controllers ... gotta keep this one :-\ But I could choose to go with CTL_NAME[17][15] as 17*15=255 ... This would let me 14 characters (+1 term.) for the name. But I already coded the read/write stuff for the splited name structure : Reading : for (ctl=0; ctl<17; ctl++) { for (cpt=0; cpt<16; cpt++) { octet = MIOS_BANKSTICK_Read((ctl << 4)+cpt); if (cpt<8) CTL_NAME_PART1[ctl][cpt] = octet; else CTL_NAME_PART2[ctl][cpt-8] = octet; } CTL_NAME_PART1[ctl][8] = '\0'; // On insère les bons terminateurs CTL_NAME_PART2[ctl][8] = '\0'; // de string sur les fins des 2 tableaux } // 3) CTL_CC[] : for (ctl=0; ctl<17; ctl++) { CTL_CC[ctl] = MIOS_BANKSTICK_Read(272+ctl); } and writing : for (ctl=0; ctl<17; ctl++) { for (cpt=0; cpt<16; cpt++) { if (cpt<8) error |= MIOS_BANKSTICK_Write((ctl << 4)+cpt,CTL_NAME_PART1[ctl][cpt]); // << 4 = *16 else error |= MIOS_BANKSTICK_Write((ctl << 4)+cpt,CTL_NAME_PART2[ctl][cpt-8]); // << 4 = *16 } } // Ecriture des n° de CC for (ctl=0; ctl<17; ctl++) { error |= MIOS_BANKSTICK_Write(272+ctl,CTL_CC[ctl]); } MIOS_LCD_Clear(); if (error) { MIOS_LCD_PrintCString("Erreur BankStick"); MIOS_LCD_PrintBCD3(error); } else MIOS_LCD_PrintCString("BankStick OK "); Any comments appreciated to get things even better ::) ;D Btw I hope it is not too :-X for you ... ;D Cheerz
  13. Ok, what I'm gonna do is split each controller name into 2 parts, something like this : unsigned char NAME_PART1[17][8]; unsigned char NAME_PART2[17][8]; Much more simplier than to split into 2 groups of controllers, as the process is mostly the same for each controller. BTW, if anyone gotta better idea ... :P ;D Peace, Goule
  14. Hi all, back in the midibox universe ;) just have to finish my OS ... I have several MIDI sensors and until now every name was saved like this : const char CTL_NAME[17][16] = { "Joystick 1 X ", "Joystick 1 Y ", "Joystick 2 X ", "Joystick 2 Y ", "Joystick 3 X ", "Joystick 3 Y ", "Joystick 4 X ", "Joystick 4 Y ", "Pitch Bend Wheel", "Modulation Wheel", "DBeam Left ", "DBeam Right ", "Basic Knob 1 ", "Basic Knob 2 ", "Ribbon Ctrl V ", "Ribbon Ctrl H ", "Expression Pedal" }; Now I want to be able to edit/store/read those names in the BankStick. The problem is when I want to create the structure that will be receiving the data from the bankstick : if I create that kind of things ... unsigned char CTL_NAME2[17][17]; ... I get the error message "no target memory available", even with this simple command. I can easily manipulate BankStick but do I have to read it every time I want to display the name of the controller that has been touched ?? :-\ :-X Thanks for helping !
  15. Hi Thorsten, If my calculations are correct, raising the upper border to 0x7fff only provides one more ko for program (20 ko instead of 19 - I mean for the program only-), which is not such a big upgrade ... but the PIC18F4685 seems to be the real thing when it comes to writing complex applications ! :D Thanks for that quick answer and for that very good news ! ;D Olivier
×
×
  • Create New...