Jump to content

Magic MIDI Delay


TK.

Recommended Posts

Im a bit lost as to where to actually connect up the buttons to now.. Is there anything like:

http://www.ucapps.de/mbhp/mbhp_dinx4_16enc.pdf

But for the buttons to connect to the DIN on this project, or at least somewhere that they are listed in the code?? I couldnt see anything logically telling me that button x is on SR x pin x.

Can someone help please?

Thanks!

John

Link to comment
Share on other sites

  • Replies 69
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Hey M8,

Thanks for the response, I dont think I was clear enough. I need some way to know what button 1 is ie:

SR  Pin  Name

1    1    BPM up

1    2    BPM down

1    3    Channel config up

1    4    Channel config down

etc etc (obvioulsy these ones arent right)..

Have I missed an area in the config files showing which pins go to which functions?

Any suggestions would be cool :)

Thanks,

John

Link to comment
Share on other sites

Sorry I should explain better :)

The juice is in mmd_din.inc, right at the top. It uses TK's jumptable macro to jump through the code by X lines, where X is the number of the button which triggered the DIN_Notify.

In the code below, button number is in TMP1. It gets moved to W.

That value is used to increase the top of stack counter, which is effectively skipping X lines of code. (Note it is limited to jump 30 lines to avoid going too far)

;; branch depending on pressed button
	movf	TMP1, W
	JUMPTABLE_2BYTES 30	; max. 30 entries
	rgoto	MMD_BUTTON_Delay0Down
	rgoto	MMD_BUTTON_Delay0Up
	rgoto	MMD_BUTTON_Delay1Down
	rgoto	MMD_BUTTON_Delay1Up
	rgoto	MMD_BUTTON_Delay2Down
	rgoto	MMD_BUTTON_Delay2Up
	rgoto	MMD_BUTTON_Delay3Down
	rgoto	MMD_BUTTON_Delay3Up
	rgoto	MMD_BUTTON_Transp0Down
	rgoto	MMD_BUTTON_Transp0Up
	rgoto	MMD_BUTTON_Transp1Down
	rgoto	MMD_BUTTON_Transp1Up
	rgoto	MMD_BUTTON_Transp2Down
	rgoto	MMD_BUTTON_Transp2Up
	rgoto	MMD_BUTTON_Transp3Down
	rgoto	MMD_BUTTON_Transp3Up
	rgoto	MMD_BUTTON_Chn0Down
	rgoto	MMD_BUTTON_Chn0Up
	rgoto	MMD_BUTTON_Chn1Down
	rgoto	MMD_BUTTON_Chn1Up
	rgoto	MMD_BUTTON_Chn2Down
	rgoto	MMD_BUTTON_Chn2Up
	rgoto	MMD_BUTTON_Chn3Down
	rgoto	MMD_BUTTON_Chn3Up
	rgoto	MMD_BUTTON_ChnInDown
	rgoto	MMD_BUTTON_ChnInUp
	rgoto	MMD_BUTTON_ChnCfgDown
	rgoto	MMD_BUTTON_ChnCfgUp
	rgoto	MMD_BUTTON_BPMDown
	rgoto	MMD_BUTTON_BPMUp
So in English:
Function  	SR	Pin
Delay0Down	1	0
Delay0Up  	1	1
Delay1Down	1	2
Delay1Up  	1	3
Delay2Down	1	4
Delay2Up  	1	5
Delay3Down	1	6
Delay3Up  	1	7
Transp0Down	2	0
Transp0Up  	2	1
Transp1Down	2	2
Transp1Up	2	3
Transp2Down	2	4
Transp2Up	2	5
Transp3Down	2	6
Transp3Up	2	7
Chn0Down	3	0
Chn0Up  	3	1
Chn1Down	3	2
Chn1Up  	3	3
Chn2Down	3	4
Chn2Up  	3	5
Chn3Down	3	6
Chn3Up  	3	7
ChnInDown	4	0
ChnInUp 	4	1
ChnCfgDown	4	2
ChnCfgUp	4	3
BPMDown 	4	4
BPMUp   	4	5

Of course you could rearrange that order as required... If you want to wire it up differently just say the word and I'll post code :)

Link to comment
Share on other sites

Thanks M8!

Worked a charm. All the buttons etc are working fine now  ;D

My only real problem now is that the midi out wont work. Maybe its the wiring. The LTC lights up on midi in, but nothing on the out ever flashes, nor do the signals make it out of the box on out1 or out2.

So close to finally testing this thing out!!!

All the best,

John

Link to comment
Share on other sites

i could possibly work that into my sequencer design.  hmmmmmmmmmmmmmmmmm.  does anybody consider this delay to be good enough to be permanently incorporated into a bigger, more expensive project?  i'm making a seq in a 19" rack, and at 3U height and even with the led matrix, it seems i'll have some space left over.  does this repeat any information sent to it?

on a side note, has anybody coded randomization into their midibox gear?

Link to comment
Share on other sites

Hiya!

Ill let you know my results as soon as I get my midi out working! It could be made smaller I think by using encoders if you needed it to. Theres nothing in the sequencer that will do the delays like this will. In fact I think building it into the same case would be a great idea and having one IIC dedicated to the delay out or switched between it and another output.

Ive added an LTC into mine for a second midi out for further layering of sounds from another source using the same delays.

On the down side it doesn't seem to have program memory so its a "jamming" tool only from what I can see.

All the best,

John

Link to comment
Share on other sites

Hiya Stryd_One

I think Ive done something like that wrong as I can see that the midi in is working and the LTC lights up ok, but the midi out isnt working, and also the midi out light isnt showing anything either. Checked and the midi wires are on ok in the right order, when Ive used the LTC board before I dont recall doing anything special to set it up, what have I missed and does it sound like the cause of my problem? Im getting no midi out from the core, no midi out or thru from the LTC, only in.

If thats not the problem, whats the most likey next thing? I do recall seeing the midi out work and the out light go on when testing with the Midi IO 128 test application. Maybe something got bumped since then??

Just curious... could this project be further enchanced to have program memory and sync to midi clock?

** Update - I uploaded the code on mac osx with the sysex file as I still cant get mios studio running on mac osx with plumstone, ive read everyones comments on how to do it but its not working still, most of the mentioned downloads for the java update are for 10.4 only and im 10.3. I guess with sysex it could work without the midi out??

Cheers,

John

Link to comment
Share on other sites

using encoders to save space was exactly my thought.  a smaller lcd off to the right would fit into my seq, so i'm sure a few extra encoders underneath would work out too.  i guess i won't know until i've found the right switches to glue my rgb leds to for the matrix buttons and get going on the layout.

as far as outputting goes, i figured i'd have a second core inside the box, and instead of having four midi plugs available, i'd just have two and allow the delay to be bypassed and external gear could be midi'd through the seq and use it's delay (i'm assuming the seq has midi thru to the output).  if i understand midi correctly, there's two transmission wires and a ground so that could as simple as adding a dpdt switch.

memory and sync would be great.  i do plan on tinkering with some code once i get a midibox working, but all i've coded so far is in visual basic.  i've read that tk's code is well documented though so perhaps it wouldn't be too hard to figure out.

drew

Link to comment
Share on other sites

  • 1 month later...

as i finish my seq (no integrated delay :P), i'm planning on doing this project too.

two questions:

i would like to have this in a 1U rack, and of course with this being the case, the encoders that i'll use in place of buttons would have to sit to the side of the lcd.  i haven't seen any screenshots of this delay yet so i'm wondering if the position of the encoders relative to the display matters much?  such as like with the seq, the buttons and encoders below the lcd correspond with data on the screen.  is it such that it would be confusing if the encoders were set off to the side?  i suppose with such a short display (is it 2x16?) it wouldn't matter so much.

also, can the application be used without any modification to the code?

thanks,

drew

Link to comment
Share on other sites

Hiya Ultra,

I think putting this into a 1ru rack would be a breeze, however I cant say anything helpful about the encoders as I couldnt imagine how 8 encoders would run the whole show... Im sure they can, but it doesnt look like it would be a direct replacement for the 30 buttons as theres really 5 interface "groups" being the 4 delays with 3 +- settings each, and then 1 "main" settings with 3 sub settings with a +- each.... The screen does lay out with 4 settings across the 2x16 display (dont bother about a 2x20 as its wasted) but I couldnt imagine an easy way to group them all under the screen so I'd say put em where you like :) It wouldnt be confusing to have them to the side.

On another related note.. I thought I had midi I/O problems with this project, but I dont. I set it up with the default application, all the buttons work, the screen works, MIOS studio can upload to the box in interactive mode, but yet no midi out comes from the machine.. I havent seen much delay wise happening. I think I configured it correctly, and I did see some midi events coming out of it into midi ox, but I havent had the time to investigate fully.

All the best,

John

Link to comment
Share on other sites

thanks for the reply, john.  i had actually figured 15 encoders based on your design.  this seems like it would be a really cool thing to have.  probably within the next month i'll be able to start on mine.  good luck with getting it working :).

drew

Link to comment
Share on other sites

  • 10 months later...
  • 3 months later...

Hi Ultra,

Thought you might be interested to know mine is working 100%, its well worth building. I have it hooked up with the Midibox sequencer driving a Yamaha TX81Z in the attached example, there is also some drums and an undelayed sid.

Cheers,

John

BMHP Midi Delay Example DCE Records LQ.mp3

BMHP Midi Delay Example DCE Records LQ.mp3

Link to comment
Share on other sites

thanks dcer10.  this project is definitely still on my (long) to-do list.  thanks for the pics and demos.

i keep thinking i could combine it in the same box with some other kind of useful midi processor.  or a 1u rack.  would be great with a midibox seq and a klee.

Link to comment
Share on other sites

i'm juuuuuuuuuust getting into mios programming and c in general so it won't be me :).

although i will be writing a full app soon for my ableton live control surface, and i also want to make a "midibox klee" that programs more like a mb-seq.

does this magic midi delay send control change delays by default? or is it just notes?

edit:  basically what i would like to see is that the mmd just repeats whatever is fed into it.

Link to comment
Share on other sites

From what I can tell, its just notes in this one. I would like to see cc's happen! That would be interesting, might be a big mess but would be fun to try. I would love to see this become an option for the MB Seq on each channel.

Link to comment
Share on other sites

4 channels... 4 delays...

:)

if i knew a thing about assembly or assembler or whatever it's called, i'd give it a try.

this is a good reason to leave F1-F4 buttons on the seq.  who knows, maybe i'll be able to do it in the future :).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...