Jump to content

Bassman

Members
  • Posts

    60
  • Joined

  • Last visited

Everything posted by Bassman

  1. well, no wonder my movlif TMP1, W didn't work. ;) bassman
  2. ok Cimo, Here's the link again. It's very useful stuff. http://www.alumilite.com bassman
  3. Get some Alumilite and make your own http://www.alumilite.com
  4. Hi Garyde, Go with a Midbox64 basic set up; 1 Core kit, 1 DIN kit, 4 small momentary push buttons, 7 - 10 & 1 - 16 pin ribbon connectors, ribbon cable and an LCD screen. It will get you started, it's easy to edit and it's easily expanded if you want some buttons for more functions and leds etc. The Midibox is super reliable. The alternative ones, including the one you mentioned, are not very good, I have tried them all, from Hungary, Poland, USA and more, they're dissapointing and limited. It seems complicated at first, but stick with it and you'll be happy in the end that you're not stuck with a situation that you can't change or improve anything. Everyone here is amazing and helpful. good luck bassman
  5. Thanks PK, I'm suitably encouraged. bassman
  6. Well, I tried and tried, I can't figure out a good approach to this. I think I'll have to leave it on the back burner until I can spend more time on it. Thanks for your help Stryd, until the next problem? bassman
  7. Aren't these the button events? Around line 285 in app_defines.h? ;; button events, byte 0 MB64_BUTTON_EVNT0_00 EQU 0x200 ;; ... MB64_BUTTON_EVNT0_3F EQU 0x23f ;; button events, byte 1 MB64_BUTTON_EVNT1_00 EQU 0x240 ;; ... MB64_BUTTON_EVNT1_3F EQU 0x27f ;; button values (packed) MB64_BUTTON_VALUES_SR0 EQU 0x280 ;; ... MB64_BUTTON_VALUES_SR7 EQU 0x287 ;; midi button values (packed) MB64_MBUTTON_VALUES_SR0 EQU 0x288 ;; ... MB64_MBUTTON_VALUES_SR7 EQU 0x28f Maybe I'm wrong, but this looks like the place. bassman
  8. Yes, you're right, the more I thought about it, and looked at the code, the more complex it became. In principal, I think the simple alterations I made were fine for the application, it is quite useful as a simple Meta Event, the user can program the transposition. With minor mods other Meta events can be used to shift Prg Changes or a particular controller etc. All useful to perhaps cut down on the amount of hardware needed, or to expand the use of current hardware used. I'm trying to take it into the musical instrument sphere, which is not the purpose of the midibox64. I'm happy to have achieved my little mod, I can do so much more with remote control using the transpose, to shift up/down a set of functions. However, regarding your point. Surely all I have to do is search the DIN registers, and that routine is already there somewhere. If I don't fine any zeros I can apply the shift, if there are zeros, wait until they're all set before applying the shift. Wouldn't that work? I don't need to know what events are 'active', only if there are any? bassman
  9. Yes, I guess the "Anyway, I'm just trying to post things that might be useful to someone." could easily be taken as passive/defensive. Sorry guys, my fault bassman
  10. To all, Hey sorry to give the impression I was offended, not at all, I am grateful to everyone for their help. I don't have anyone to discuss things with, except here, I thought that's what I was doing. Anyway nuff said! Right now I am trying to figure out how to allow someone to press a button that sends a note on, and do the transpose whilst holding the note. At the moment, the note gets left on, as the MIDI_EVNT1 gets added too, before note off (or rather note on, zero velocity). It might be easy enough to account for one note, but there could be a while chord. Any ideas here? Same would apply to Prog change. It might be usefull to shift a whole group of buttons up/down by 8 or 16. But if the transpose happened whilst a button was held down, it could get messy. bassman
  11. Hi bugfight, Actually that can't happen. You can only implement this with Meta Evnt #8, whatever number you enter as the second Hex number in 'Edit Event' is the amount it will transpose up. It doesn't keep adding, no matter what mode you choose for the button. I suppose you could put a transpose of 127 (h7f), which would cause it to wrap around to 0, but why would anyone do that? Anyway, I'm just trying to post things that might be useful to someone. bassman
  12. There's no need to worry about this because the original code for sending 3 bytes already deals with this. ;; sending three bytes: MIDI_EVNT_Send_8x ; Note Off MIDI_EVNT_Send_9x ; Note On MIDI_EVNT_Send_Ax ; Aftertouch MIDI_EVNT_Send_Bx ; Controller movff MIDI_EVNT0, WREG call MIOS_MIDI_TxBufferPut movff MIDI_EVNT1, WREG andlw 0x7f ;; oveflow to above 0x7f dealt with here! call MIOS_MIDI_TxBufferPut movff MIDI_EVNT_VALUE, WREG andlw 0x7f call MIOS_MIDI_TxBufferPut rgoto MIDI_EVNT_Send_End but it was something I thought of, thanks, TK has already made sure nothing like that can upset things. Anyway, I thought it best used with the button in Toggle mode, that way it transforms, then returns to normal. bassman
  13. Well this is finally working. I got my mb64 to do transpose. Here's my extra code to use META_EVENT_8 to perform a note shift or transpose. When you assign a button to a meta event, in the Edit Events, first it's midi channel 1, the first hex number will be 08 (meta function #8) and the second hex number will be the number of half steps to transpose up (an octave will be 12 notes 0C hex). Lastly set the button mode to T (Toggle), unless you want to use 2 buttons for up and down, then O for OnOnly. In theory you can go up almost 10 octaves, yikes, at the touch of a button. Hope it's useful for anyone. Oh, one thing, I haven't trapped the possiblility of transposing whilst another button is held down, you'll get notes stuck on. Insert into app_defines.h after line 196 DRUMS_CTR ;; used by Bassman's note shifting code NOTE_SHIFT EQU 0x69 ;;holds value for note number shift Insert into midi_event.inc after line 71 MIDI_EVNT_Send_9x ;; pickup NOTE_SHIFT value and add to current note number movf NOTE_SHIFT, W ;; get note shift value addwf MIDI_EVNT1, W movwf MIDI_EVNT1 so the section will look like; ;; sending three bytes: MIDI_EVNT_Send_8x ; Note Off MIDI_EVNT_Send_9x ; Note On ;; pickup NOTE_SHIFT value and add to current note number movf NOTE_SHIFT, W ;; get note shift value addwf MIDI_EVNT1, W ;; add NOTE_SHIFT to MIDI_EVNT1 movwf MIDI_EVNT1 MIDI_EVNT_Send_Ax ; Aftertouch MIDI_EVNT_Send_Bx ; Controller movff MIDI_EVNT0, WREG call MIOS_MIDI_TxBufferPut movff MIDI_EVNT1, WREG andlw 0x7f call MIOS_MIDI_TxBufferPut movff MIDI_EVNT_VALUE, WREG andlw 0x7f call MIOS_MIDI_TxBufferPut rgoto MIDI_EVNT_Send_End This will only affect notes. But you could adapt it for other events, like move all your program changes up by 16 or 32 etc. In this case use similar 3 extra lines but put it after MIDI_EVNT_Send_Cx ; Program Change, just change the 2 references to MIDI_EVNT1 to MIDI_EVNT_VALUE. Lastly Insert into mb64_meta.inc after line 184 MB64_META_Handler_08; movff MIDI_EVNT_VALUE, NOTE_SHIFT ;; Save shift amount in NOTE_SHIFT return ;; exit So it will look like this; ;; a trick: all labels are pointing to the same routine ;; Currently mb64_meta events are all F0, so midi channel 1 ;; Use the first hex number in Event Edit - Meta to determine which Meta handler # to jump to. ;; Use the second hex number in Event Edit - Meta to determine number of notes to transpose MB64_META_Handler_08 ;; Perform Note shift ;; BANKED access not required - see mb64_meta.inc movff MIDI_EVNT_VALUE, NOTE_SHIFT ;; Save shift amount in NOTE_SHIFT return ;; exit MB64_META_Handler_09 MB64_META_Handler_0A MB64_META_Handler_0B MB64_META_Handler_0C MB64_META_Handler_0D MB64_META_Handler_0E MB64_META_Handler_0F Many thanks to stryd_one, who helped me figure it out. bassman
  14. I know it daft really, filing down 100 LEDs! ;D But, like I said, there's about 4mm before you get near anything important, more than enough to make them flat, that only needs about 1mm. Actually, the filed end will be matt, so it does look different, like a diffuser. Try one and see. This is the home of crazy ideas, isn't it? :D bassman
  15. Of course you could just take a fine file and flatten the regular cheap LEDs. Polish them up with steel wool or leave them 'matt' for a diffused effect. You have at least 4mm depth before you hit anything important inside. bassman
  16. Hi Per S, No I don't think you're missing anything, I just came up with the simple mod, and thought it might be useful to somebody. It isn't neccessary, as you say, 'on' sends a message and 'off' sends a message. I doesn't really matter if the switch stays on in between, however long that is, providing key 'repeat' is disabled. But you don't need to mod every stop, you might need just a few stops/tabs to not flip and stay. bassman
  17. Thanks stryd_one, I thought it looked possible. where is the right place to define a new variable? thanks bassman
  18. Here is a little tip for organ midifiers. If you are tired of wasting old hardware because the tabs are not suitable for midi use, i.e. they are not momentary, they are changover switches, then this little tip might save you a lot of trouble. These typical Tabs can be made momentary quite easily. And, as they are usually semi-transparent plastic, you can light them from underneath at the same time. So take your tabs racks out of the organ, and you will see they all pivot on a long pin. Pull this pin out slowly and remove each tab one at a time and set aside so as to remember the order (if neccessary). Nothing will spring out and get lost. Turn the rack over and you will see the little spring located in a hole. About 1/2" from this you will see, among many others, another hole in line with the spring hole. Sometime they have posts fitted which have to be removed, a little patience doing this, otherwise the board will break. Take a 1/8" drill and enlarge these 'new' holes. N.B. While you are at this, you can drill holes in the frame under each Tab to take LEDs. Most of these tabs are semi-transparent, and if you use bright white LEDs they will light up the tabs and look great when finished. Now get a small flat nosed pliers, the ones with teeth, and grip the spring by two coils as close the locating hole as possible. Lift the spring out of it's hole and place in the new hole that you have enlarged. Repeat this all along the tabs. Re-assemble the tabs on the pivot rod, one by one, in reverse order, and now you have momentary Tabs, that will illuminate (once you've done the wring etc.) when pressed. All you need to do is choose suitable contacts for each Tab. Some are break, some are make, the latter are the ones you need. Also you will help the environment by not trashing perfectly usable hardware. good luck Bassman
  19. Is it possible to insert a short routine at MIDI_EVNT_Send_9x to add 0x0C or 0x00 to MIDI_EVNT1 (this would be the note number) from a user register, before the Note On gets sent? Is it then possible to use a meta event as a hook to store either 0x00 or 0x0c in that user register? Would this achieve an octave toggle? What register should be used? excert from midi_evnt.inc ;; sending three bytes: MIDI_EVNT_Send_8x ; Note Off. rgoto MIDI_EVNT_Send_Bx MIDI_EVNT_Send_9x ; Note On ;; add a routine here MIDI_EVNT_Send_Ax ; Aftertouch MIDI_EVNT_Send_Bx ; Controller movff MIDI_EVNT0, WREG call MIOS_MIDI_TxBufferPut movff MIDI_EVNT1, WREG andlw 0x7f call MIOS_MIDI_TxBufferPut movff MIDI_EVNT_VALUE, WREG andlw 0x7f call MIOS_MIDI_TxBufferPut rgoto MIDI_EVNT_Send_End If I am barking up the wrong tree, is there a better way to approach this? thanks Keith
  20. How nice of you, Thorsten, but no way did I find the solution myself! It was your idea! Thanks for your help Keith
  21. After scratching my head for days, I realised the solution is so simple. You were right Thorsten, we just forgot one thing. You set me on the right track, after working through pages of assembler, I realised the "rcall MB64_BUTTON_Hlp_SaveStat" line should be after the branch too. Now, provided all required 'OnOnly' mode buttons are kept to SR groups, this works, perfectly. OnOnly mode button LEDs stay on, and clears when another is pressed. The LCD screen is properly updated to reflect the same. MB64_BUTTON_OnOnly ;; when on: send button value defined in dump ;; when off: send nothing BRA_IFSET TMP1, 0, ACCESS, MB64_BUTTON_NotifyChangeEnd ;; turn off SR3 8 LEDs SET_BSR MB64_BUTTON_VALUES_SR0+3 setf MB64_BUTTON_VALUES_SR0+3 ;; save status of button - now after the branch rcall MB64_BUTTON_Hlp_SaveStat rgoto MB64_BUTTON_Send thanks again, Keith
  22. Thanks for the link, ilmenator, Great to see all those inventions. I used micro switches from old 'mice' and mounted them on a small piece of vero board, then put a dab from a hot glue gun to the bottom of the LEDs and sat them down to cool with a flat surface to the bottom to push the switch. thanks again, you were there way before me...... ;D Keith
  23. Well it got a bunch of keys broken many years ago and sat around as I couldn't get parts. Then I got it midfied and scrapped the keyboard part. It's pretty old but the sound is enormous for bass. I have a Moog Taurus as well, but my 'beast' and the old mini moog is the same but much better. anyway, we're way............. off topic. ;D I got to get to studying Thorsten assembler, to make changes. Keith
  24. Thanks Foona, I use it to play an old midified Minimoog, oh some serious oomph bass live! Shakes the house! Ha! Keith
  25. Hi Foona, Here is my 'beast', as you call it, you're probably right, :D It's not a great picture, but it will give you an idea. It's working very well, now, except I can't figure out how to keep the LEDs for 'OnOnly' mode buttons, to stay on until another is pressed. Ah, one day! Just for those curious about these things, the menu buttons are actual LEDs sitting on top of tiny micro switches. They don't fall out as the LED base flange keeps them in the hole, and the switch keeps them in place. But the neat thing is they light up when pressed!! It was a fiddly assembly but it worked out. Also, just to the left of the LCD, behind the LCD green plastic cover are the RX and TX LEDs. I used 2 pot controllers, one for the synth that the pedals plays, and one to send to my guitar processor so I have complete volume control at my feet. thanks for everyone's help, now on to my next 'want' project. Keith
×
×
  • Create New...