Jump to content

ssp

Programmer
  • Posts

    659
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by ssp

  1. ok well it looks like logic doesnt accept the mmc pause command it would seem i cant understand why these daw's dont take the full suite of mmc commands when thrown at them over midi, but never mind. so the only thing i need to add is a single encoder for a jogwheel, thorsten is it better to use a table now or have a second meta handler like this as an example? ; $Id: mb64e_meta.inc 875 2009-12-29 13:06:43Z tk $ ;; -------------------------------------------------------------------------- ;; This function is called by MB64E_midi.inc when a meta event (Fx xx) has ;; been assigned to a enc or button ;; You can use this handler to enhance the firmware by your own MIDI events. ;; Here you are able to send more than one MIDI event (i.E. two Note On ;; Events to control Cakewalk via MIDI remote with one button), or a ;; SysEx/NRPN string to your synthesizer, or just to toggle PIC pins ;; in order to switch relays... ;; IN: ;; on enc events (entry point: MB64E_META_Handler_Enc): ;; o Enc number in MB64E_CURRENT_ENC (BANKED access required!) ;; o first MIDI byte in MIDI_EVNT0 (no BANKED access required) ;; o second MIDI byte in MIDI_EVNT1 (no BANKED access required) ;; o enc value in MIDI_EVNT_VALUE (no BANKED access required) ;; ;; on button events (entry point: MB64E_META_Handler_Button): ;; o Enc number in MB64E_CURRENT_BUTTON (BANKED access required!) ;; o first MIDI byte in MIDI_EVNT0 (no BANKED access required) ;; o second MIDI byte in MIDI_EVNT1 (no BANKED access required) ;; o button value in MIDI_EVNT_VALUE (no BANKED access required) ;; -------------------------------------------------------------------------- MB64E_META_Handler_Enc ;; THIS IS JUST AN EXAMPLE META EVENT HANDLER ;; ADAPT IT FOR YOUR NEEDS! ;; we are using the same handler for pots and buttons here rgoto MB64E_META_Handler MB64E_META_Handler_Fader ;; THIS IS JUST AN EXAMPLE META EVENT HANDLER ;; ADAPT IT FOR YOUR NEEDS! ;; we are using the same handler for pots and buttons here rgoto MB64E_META_Handler MB64E_META_Handler_Button ;; THIS IS JUST AN EXAMPLE META EVENT HANDLER ;; ADAPT IT FOR YOUR NEEDS! ;; we are using the same handler for pots and buttons here rgoto MB64E_META_Handler ;; -------------------------------------------------------------------------- ;; THIS IS JUST AN EXAMPLE META EVENT HANDLER ;; ADAPT IT FOR YOUR NEEDS! ;; HINT: if a large number of SysEx strings with the same structure (means: ;; for the same synth) should be sent, it would be more advantageous to ;; use a table which contains the parameter values and refers to the ;; sending routines ;; ;; More examples are located in the meta_examples directory ;; -------------------------------------------------------------------------- MB64E_META_Handler_01 ;; send MMC command: ;; F0 7F 00 06 xx F7 ;; With Meta event "F0 01" you will send MMC Stop ;; With Meta event "F0 02" you will send MMC Play ;; With Meta event "F0 04" you will send MMC FFwd ;; With Meta event "F0 05" you will send MMC Rwd ;; With Meta event "F0 06" you will send MMC Rec ;; With Meta event "F0 07" you will send MMC Rec exit ;; With Meta event "F0 08" you will send MMC Rec ready ;; With Meta event "F0 09" you will send MMC Pause ;; button mode should be set to "OnOnly" movlw 0xf0 call MIOS_MIDI_TxBufferPut movlw 0x7f call MIOS_MIDI_TxBufferPut movlw 0x00 call MIOS_MIDI_TxBufferPut movlw 0x06 call MIOS_MIDI_TxBufferPut movf MIDI_EVNT1, W call MIOS_MIDI_TxBufferPut movlw 0xf7 call MIOS_MIDI_TxBufferPut ;; -------------------------------------------------------------------------- The Shuttle MMC message Both forward and backward shuttling share the following MMC message: F0 7F 00 06 47 03 sh sm sl F7 Note: sh, sm and sl are defined as Standard Speed in the MIDI 1.0 Recommended Practice RP-013 ;; -------------------------------------------------------------------------- MB64E_META_Handler_02 ; F0 (sysex start) ; 7F (factory brand ID) ; 00 (synth type or ID) ; 06 (file version) ; 47 (program parameter) ; 03 (parameter number) ; sh (parameter value = std speed) ; sm (parameter value = std speed) ; sl (parameter value = std speed) ; F7 (sysex end) movlw 0xf0 call MIOS_MIDI_TxBufferPut movlw 0x7f call MIOS_MIDI_TxBufferPut movlw 0x00 call MIOS_MIDI_TxBufferPut movlw 0x06 call MIOS_MIDI_TxBufferPut movlw 0x47 call MIOS_MIDI_TxBufferPut movf MIDI_EVNT1, W call MIOS_MIDI_TxBufferPut movf MIDI_EVNT_VALUE, W andlw 0x0f call MIOS_MIDI_TxBufferPut swapf MIDI_EVNT_VALUE, W andlw 0x0f call MIOS_MIDI_TxBufferPut andlw 0xf7 call MIOS_MIDI_TxBufferPut return
  2. tk ok things are working fine apart from the pause button, for some reason pause is not working here are the mmc commands for sysex An MMC message (that is sent to, or generated by, an MMC device) is: F0 7F deviceID 06 command F7 The third byte is the Device ID. The fifth byte is the command: 01 Stop 02 Play 03 Deferred Play 04 Fast Forward 05 Rewind 06 Record Strobe (Punch In) 07 Record Exit (Punch out) 08 Record Ready (Record Pause) 09 Pause 0A Eject 0B Chase 0F MMC Reset 40 Write 44 Locate/Go to 47 Shuttle so here is my meta file as you can see i set the pause to 09 as per the standard mmc commands. MB64E_META_Handler ;; send MMC command: ;; F0 7F 00 06 xx F7 ;; With Meta event "F0 01" you will send MMC Stop ;; With Meta event "F0 02" you will send MMC Play ;; With Meta event "F0 04" you will send MMC FFwd ;; With Meta event "F0 05" you will send MMC Rwd ;; With Meta event "F0 06" you will send MMC Rec ;; With Meta event "F0 07" you will send MMC Rec exit ;; With Meta event "F0 09" you will send MMC Pause ;; button mode should be set to "OnOnly" now i fired my mac up its running the last revision of leopard not and i then started logic pro up, in the preferences i set it to recieve mmc. ok so stop, play , rew, ffwd, rec(punch in) rec stop(punch out) all work fine, i just cant get pause to work for some reason. any ideas? also how can i add this to the meta file for a single encoder to use as a shuttle wheel? The Shuttle MMC message Both forward and backward shuttling share the following MMC message: F0 7F 00 06 47 03 sh sm sl F7 Note: sh, sm and sl are defined as Standard Speed in the MIDI 1.0 Recommended Practice RP-013.
  3. thorsten i used the meta file you placed in the folder 3 in the 2.2d update and then went into serges mb64e editor and applied the meta events to each button, its working great now, and i applied other buttons also., logic worked first time, i have to check the pause one again because thats the only one that didnt work. i will put the meta file here to show you, many thanks its sunk it a bit better now.
  4. thanks again thorsten i will look at that now. i just grabbed the mk_sysx file and i find this: [bUTTONS] # First 16 Buttons 1 = 90 3C 7F @OnOff 2 = 91 3C 7F @OnOff 3 = 92 3C 7F @OnOff 4 = 93 3C 7F @OnOff 5 = 94 3C 7F @OnOff 6 = 95 3C 7F @OnOff 7 = 96 3C 7F @OnOff 8 = 97 3C 7F @OnOff 9 = 98 3C 7F @OnOff 10 = 99 3C 7F @OnOff 11 = 9A 3C 7F @OnOff 12 = 9B 3C 7F @OnOff 13 = 9C 3C 7F @OnOff 14 = 9D 3C 7F @OnOff 15 = 9E 3C 7F @OnOff 16 = 9F 3C 7F @OnOff what would i put into this line here: 9 = 98 3C 7F @OnOff to make the 1st button on the 2nd sr send the stop mmc sysex string? do i just put it like this: 9 = F0 7F 00 06 01 F7 @OnOff
  5. thorsten thanks for your reply, i just tried it again and im still confused. i know you have limited time but could you show me an example by doing a meta event for the mmc stop command with a handler, if i see it there then it will click and i nad then see where i am going wrong, at the moment im still confused. you say the mk_syx.pl script is easier, but i wouldnt have a clue how to use that either! i wouldnt know what to do in that to make changes as i cant find much info. thanks again simon
  6. just tried several things and im still getting nowhere with this, im missing something but i cant see what it is. :logik:
  7. i have just spent 2 hours editing the mb64e_meta.inc file so as i can put mmc sysex codes to buttons. even after all the reading up i have done and the editing i havent got anywhere with editing the meta file to assign the mmc sysex to 5 nuttons on the second shift register on a dinx4 board. now the id of the button on the din im using is 30 so i edited the meta file like so. from this ;; -------------------------------------------------------------------------- MB64E_META_Handler_00 ;; this example sends a SysEx string: F0 43 10 5C 10 10 31 vv F7 (AN1x: high pass filter) ;; META Event: "F0 00" (enc) or "F0 00 7F @OnOff" (Button - 7F may vary) movlw 0x31 ; store parameter value in W rgoto META_Send_AN1x_SysEx ; branch to SysEx routine i then edited it to this ;; -------------------------------------------------------------------------- MB64E_META_Handler_00 ;; this example sends a SysEx string: F0 7F 00 06 01 F7 (MMC: STOP) ;; META Event: "F0 00" (enc) or "F0 00 30 @OnOff" (Button - 30 as used on the second shift register for a test button) movlw 0x31 ; store parameter value in W rgoto META_Send_MMC_SysEx ; branch to SysEx routine now you have this line above^^ movlw 0x31 ; store parameter value in W do i edit the "movlw 0x31" so that the 0x31 is a different value? do i make it 00 or 7f? also do i then edit the handler like this ;; -------------------------------------------------------------------------- ;; This is a subroutine which sends a SysEx stream for MMC STOP ;; IN: parameter address in working register WREG ;; enc/button value in MIDI_SEND META_Send_MMC_SysEx movwf TMP1 ; temporary store parameter value from working register W into TMP1 call MIOS_MIDI_BeginStream ; begin stream movlw 0xf0 ; send 0xf0 call MIOS_MIDI_TxBufferPut movlw 0x7f ; send 0x7f call MIOS_MIDI_TxBufferPut movlw 0x00 ; send 0x00 call MIOS_MIDI_TxBufferPut movlw 0x06 ; send 0x06 call MIOS_MIDI_TxBufferPut movlw 0x01 ; send 0x01 call MIOS_MIDI_TxBufferPut movlw 0xf7 ; send 0xf7 call MIOS_MIDI_TxBufferPut movf TMP1, W ; send parameter value, stored in TMP1 call MIOS_MIDI_TxBufferPut movf MIDI_EVNT_VALUE, W ; send enc/button value, stored in MIDI_EVNT_VALUE <<--- do i edit this with a value instead of "w"? call MIOS_MIDI_TxBufferPut movlw 0xf7 ; send 0xf7 call MIOS_MIDI_TxBufferPut goto MIOS_MIDI_BeginStream ; end stream and exit after doing that i recompiled the hex and uploaded it to the core, and then tried the button and it still sent out a note c_2 127 sysex id 30 can someone please tell me what im doing wrong here because i still cannot fathom out how to assign a set of 5 mmc sysex commands to 5 buttons on shift register 2 on a dinx4 board. thank you.
  8. i have raed and read the meta_event file in the src folder in the mb64e main folder. i still do not understand how you define the sysex string to a certain button on a certain shift register. so say the mb64e uses the first 8 connectors on the first sr for its menu buttons, then the second shift register would have 8 buttons free for me to use as assignments for my sysex. how do you assign the sysex to each button 1-5 on the second sr? as these would need to be done via sysex in the meta handler wouldnt they? im now totally lost on how to assign 5 buttons to meta events to transmit mmc commands, and also if it needs to be a double send or not. can anyone shed some light on this as i have been trying to make sense of it for the last few days.
  9. ok after much reading i have figured out the mmc stuff. the cores device id being 00 button / mmc.cmd / sysex.cmd 1 STOP F07F000601F7 2 PLAY F07F000602F7 3 FFWD F07F000604F7 4 RWD FO7F000605F7 5 REC FO7F000606F7 how can i assign these to 5 buttons by making a dinx2 board? serges editor doesnt allow you to apply sysex commands to buttons and i dont know enough about asm files to edit those to a shift register on an dinx2 board. how can i apply this to these buttons in the asm files please? i can then re-compile and test. i read this thread but i dont understand it im afraid. im thinking its like this MB64_META_Handler for mmc stop command? SO USING THIS MB64_META_Handler for mmc stop command? SO USING THIS button / mmc.cmd / sysex.cmd 1 / STOP / F07F000601F7 movlw 0xF0 call MIOS_MIDI_TxBufferPut movlw 0x7F call MIOS_MIDI_TxBufferPut movlw 0x00 call MIOS_MIDI_TxBufferPut movlw 0x06 call MIOS_MIDI_TxBufferPut movlw 0x01 call MIOS_MIDI_TxBufferPut andlw 0xF7 call MIOS_MIDI_TxBufferPut return however would i need a double button press for the mmc or would the single mmc transmit of the sysex string be ok?
  10. ssp

    bpm controller

    many thanks to santa nils, the boards arrived here today, looking forward togetting things built over xmas. woman allowed me to take a picy or two then promptly took them off me ! apparently she feels the need to cover them in a cheap winter scene printed paper. oh well. pics.
  11. well i have spent the day going over the lc files from top to bottom, i havent found what im looking for, it has to be there but i cannot for the life of me see it! if the mmc is transmitted as sysex commands then where are the commands? thorsten if you read this, help please mate ;) also can i have 1 fader and 5 buttons on j5 of the core running mb64 or mb64e and use the fader as a master fader and the buttons for mmc use. how do i edit this so that the buttons use A1-A6 on J5 with the fader using A0? thanks
  12. ssp

    bpm controller

    the cnc work there is really basic stuff , you ought to see some of the stuff you can get done as long as you are willing to pay for it!
  13. there are some bottles you can get that have acrylic bonding glue in, they have a very fine metal tube that comes from the tip to give you a fine glue line. my local model shop seels these without glue in and i use these, i fill the bottle with my paint and gently squeeze the paint into the lines with the tube tip in the indentation.
  14. ssp

    The Razer

    its ok your not wasting my time with this at all, i cant do any more on my current projects until after xmas anyway, and the little ones im working on now well im still working on :thumbsup: quite a while ago i offered my services as a casework designer here so im just doing what i offered to do and i like interesting case designs. lets just say im better at cases than i am at eagle pcb work, nils will testify to that lol! if you need more help just ask. oh yes, a pem stud or clinch stud as its known is a through face pressed in threaded stud, if youtake a look at my bpm thread in design concepts section of the forum, the one this thread is in you will see some pictures of the casework i just had cnc laser cut and shaped. notice the threaded stud bars sticking out in various places on the top part of the case, they are pem studs. they offer a form of secret fixing from the face to hold boards to the rear of the case.
  15. ok i know how to include# the mtc.inc file now thats ok. now i looked into one of the files in the lc folders and found that ;; 7th shift register ;; button LED db ID_MARKER, ID_MARKER db ID_NUDGE, ID_NUDGE db ID_CYCLE, ID_CYCLE db ID_DROP, ID_DROP db ID_REPLACE, ID_REPLACE db ID_CLICK, ID_CLICK db ID_REWIND, ID_REWIND db ID_FAST_FWD, ID_FAST_FWD ;; 8th shift register ;; button LED db ID_STOP, ID_STOP db ID_PLAY, ID_PLAY db ID_RECORD, ID_RECORD db ID_CURSOR_UP, ID_IGNORE ; (no LED supported by host) db ID_CURSOR_LEFT, ID_IGNORE ; (no LED supported by host) db ID_ZOOM, ID_ZOOM db ID_CURSOR_RIGHT, ID_IGNORE ; (no LED supported by host) db ID_CURSOR_DOWN, ID_IGNORE ; (no LED supported by host) now i have a spare core with the mb64 app installed, can i assign the play stop rec etc to the j5 pins on the core instead of the shift registers on a din board? so i have got the fader on vs/vd/A0 and then the buttons on A1-A6 can i mix them on that terminal strip and mios will take it? the only other option is to make a dinx2 board just have two shift registers, with the mb64 menu buttons on the first sr and the mmc on the second sr. what would be great is to have say an mb-lc mmc.inc file available that can be dropped into the folder and intergrated.
  16. i need to make a little controller similar to the presonus faderport. all it needs is the lcd, the mtc 7 segment time code display and then 5 buttons for the transport, rew, ff, stop, play & record. also a single fader. so as i understand i would go about it this way. using J5 on the core i put a single fader to Vs/Vd/A0 and then i attatch the 5 buttons to A1-A6 grounding the last pin or diabling it in the asm file. question: how do i intergrate the mtc.ic file into the mb64 setup question: how do i assign the mmc commands to the 5 buttons? because i cannot find any info on that on the forums and there isnt an mmc option in serge's editors and also add this to the mb64 setup. Or is there a way to assign the mmc codes using serge's editor?. thanks
  17. ssp

    bpm controller

    pcbs are done, all i can say is damn nice looking boards!
  18. ssp

    The Razer

    well the acrylic case can be cnc cut and then bonded, the face plate can also be cnc cut, if you go with the acrylic face then its all done at the same time using the same comapny, i can find a company near to you that can take solidworks/dxf/dxg or iges files etc. as for aluminium you can use any cnc cutting service as long as the files are supplied and correct they will just dump them into the machines and cut it. i can also locate all the pem holes etc. now to do this case properly is going to need precise measurements and tech drawings of the components/parts being used, by this i mean the data sheets for the parts. the case is buildable, its just the acrylic way seems the best option for you to get the lightness and glossyness you want. once bonded the things is realy strong, just dont drop it!
  19. ssp

    The Razer

    well i ran it through solidworks and even with the tightest margins on a cnc bender you would have to have breaks in the fold tabs. however there is another option which is the have it all cut out of acrylic, a nice gloss red acrylic and then bond the sides to the base to give you the upright side panel sections, similar to the ponoko way but with fewer tabs. and the edges of the sides can be chamfered so they too can be bonded together, thereby making a very strong lower case, the main face can be an aluminium or acrylic face. if you go aluminium you can have some clinch/pem studs inserted and then the panel can be primed and painted or powdercoated. if i get time this week i will do a little set of renders to explain the sectional bonding process with a few little panels shown. in the meantime heres a quick render of the case where i tried a marginal cnc bend.
  20. the switches i used for my humon, the blue illuminated ones have got quite a good bit of travel to them so they would do what you want perfectly, you would have to get the non illuminated ones and then get then with the small round cap so you can glue it inside as suggested. i will find the manufacterers details for you and post it tomorrow.
  21. well look at it like this. by the time you have designed the hex caps, had them cnc cut, designed the face plate and had that cut with any lettering etc, then bought your kits and then the switches and caps for those etc your not going to be far from getting the one you linked. the whole point of the switches we linked is to get the build done at a relatively small cost i would seriously price up what you are going to need by doind some serious reading of the forums here and also of ucapps.de site and then compare the price for the unit and then the self build and see which is more feasable. im not trying to put you off but you really should work things out and then add to the thread. the best advice anyone uf can give you is to read up , read some more and then price things up.
  22. 3-4 mm travel? your not going to need that amount of travel, those hex systems that you link to dont even have that amount of travel. the tact switches offered as examples are perfectly suitable to do the job at hand. if you had to press one of those switches in by 3-4 mm it would be difficult to get your finger down in there with the press. By having a small tact switch the amount of pressure required and downward stroke is such that it makes usability feaseable. however if you had a 4mm downward stroke the spacing and depth required per button makes them hard to use in application. you have got to factor in these tolerances, spacing of buttons, stroke of the button press, the face plate width, and most importantly your fingers as you would have to factor in the width of them when you press the button down not to touch any other button at the same time.
  23. also you dont have to have the caps the exact size as the other one, even if they are 1mm over does it really matter? you will still need them custom designed and cut anyway. at least this way you can be a bit more adventurous with the design etc.
  24. the other option is to get some tall shaft tact switches and then you just drill a hole in the centre of the hex cap for this to settle into. however, you want to make a hex control surface similar to what you have linked in the first post, to get the tolerances of spacing right you would need to get them cnc cut and the holes will also need to be cnc drilled, otherwise your not going to get withing 0.001 tolerance. the likely hood of you hand cutting and shaping, sanding these caps and getting to that sort of tolerance would be quite an effort. what has been suggested is the quickest, cheapest and one of the most used methods for custom caps members use here.the other option is the just glue them to the top of the cap, however your not guaranteed to get them centred at all
  25. look the way i suggested is the quickes, and easiest way for you to get the hex caps you want, you recess the green coloured cap into the actual ex cap by glueing it in there, it then just clicks onto the tact switch, that is the quickest, easiest and proven method of doing it. quite a few mboxers have done this method when making custom caps. so to re-iterate, you get the hex cap made with a small hole drilled into the bottom of it with enough depth to glue the green cap into it flush with the bottom. when its set you can then click it onto the switch. hey presto there is your hex switch/cap. its really that simple. you take the cap, measure the diameter of the cap, then with the hex cad file which has got the correct dimension hole cut out in the bottom you take the cap and insert it into the hex acrylic cap. like so once its in there you will have this you can see the green caps rectangle hole? well to connect the now one piece cap which is one piece because you glued the green cap into your cnc cut hex cap you just click it onto the original switch using the original cap hole. heres a side profile. where the gap is where the glue is.
×
×
  • Create New...