Sign in to follow this  
Followers 0
TK.

Magic MIDI Delay

70 posts in this topic

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

Share this post


Link to post
Share on other sites

This is related to my post from before about them being in series, button 1 is the first pin on the first SR, and count up from there :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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 :)

Share this post


Link to post
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

Share this post


Link to post
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?

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

AC and I have borrowed TK's code :)

Hey John did you use the right ID for LTC out? I'd have thought that the midi out would've given you trouble when uploading the app?

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Hi Ultra, I physically finished it but have never tested it properly. Moved studios since I started and im set up again now, Ill dig it up some time soon and post. Did you complete yours?

Cheers,

J

Share this post


Link to post
Share on other sites

nope, since i started school i've had way less time and money than i had thought, so i haven't gotten much done.  i was just wondering how yours was doing.  :)

Share this post


Link to post
Share on other sites

Some pics

DSC04972a-400_thumb.jpg

DSC04974a-400_thumb.jpg

2690_DSC04972a-400_jpg1ac745677459da2118

2692_DSC04974a-400_jpg37fe80413bfb369985

Share this post


Link to post
Share on other sites

Sweet as. Just my kinda layout too: simple, militaristic, easy.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

can this be synced externally?

i made a 1u layout for this.  the holes for the encoders are not drill-size, it's the base size of the "waldorf" knobs.  so there will be much more space between them at the top of the knob.

:)

mmd.gif

Share this post


Link to post
Share on other sites

The current firmware does not seem to do this, you can manually select the BPM but nothing more in terms of the sync. Perhaps someone could develop this?

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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 :).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0