Jump to content

8 to 1 Merger


daemons_ca
 Share

Recommended Posts

Hi,

I searched the forum but didn't find anything specific. What I need is an 8 (or 9) to 1 midi merger. I'm pretty sure the 16F877 is fast enough for it, but my question is this... can MIOS do this, with some modifications?

My circuit design would be pretty much what MIDImerger is, except I would use all the Port A inputs. It would have NO LCD... or any need for controls. It would do one job, and one job only: Merge Midi data to one output. Even the input/output MIDI status leds would be handled in hardware using hex buffers/inverters.

If MIOS can't handle it I'll have to write my own code, which will take well.. alot longer  :(  

Since thats all the PIC would be doing running at full speed, I'm wondering if it would be possible to use more inputs (yes, being greedy, I know). If ram buffers would be a good idea, I was thinking of using an external 8kx8 ram module but that would limit the midi inputs since I would need the PIC I/Os to interface with the ram module.  I know I could use serial ram, but that would mean more processing and possibly reducing the efficiency with more midi inputs, so why bother. I've been gathering parts to make a Midibox64 and I have almost everything to make one (except the time and work area.. Lol ) but with the new gear I recently aquired, a Midi merger is very much of a need at the moment.

Before someone brings up the latentcy issue, this merger would be used mostly for Midi outs of rack modules and non-controller devices. All 9 inputs are not expected to be used at the _exact_ same time. If it can handle any two Midi INs at once, it would already be doing a great job in my mind since the output is limited to a single MIDI bandwith (31250bps).

Also, if someone would like to work on this project with me I'd welcome the help.

Marc

Newbie to this forum.

Link to comment
Share on other sites

Hey Marc,

I'm pretty sure MIOS could handle that.  I don't think there'd be problems as far as the hardware is concerned.

I think the real problem lies in MIDI itself: it's a pretty slow standard. You do already have timing problems if you merge two MIDI-streams, especially if you use your keyboard controllers (or worse: sysex data).

With 8 or 9 IN-ports you would certainly experience heavy latencies due to the mass of data (and not because of the speed of the PIC)

This would only work satisfactory if you just merged three, maybe four streams the same time, using little controllers.

regards, Tom

Link to comment
Share on other sites

I did mention that in my original post... I can't reinvent Midi. Of course there will be latentcies... I'm going from 8 x 31250bps to 1 x 31250bps

I'd have the same problem as everyone using an 8 to 1 Merger has. I asked a friend who does pic programming and he suggested I make a dedicated program for it instead, and I would have less chances of errors. ...and since I have a 16F877 here I guess I'll start with understanding the MIDImerger code first. :) The circuit is already designed. I'll try to make it into a gif or jpg and post it here.

Marc

Hey Marc,

I'm pretty sure MIOS could handle that.  I don't think there'd be problems as far as the hardware is concerned.

I think the real problem lies in MIDI itself: it's a pretty slow standard. You do already have timing problems if you merge two MIDI-streams, especially if you use your keyboard controllers (or worse: sysex data).

With 8 or 9 IN-ports you would certainly experience heavy latencies due to the mass of data (and not because of the speed of the PIC)

This would only work satisfactory if you just merged three, maybe four streams the same time, using little controllers.

regards, Tom

Link to comment
Share on other sites

hi,

if youre planning to merge the output of rack units for the purpose of saving sysex dumps etc. and you are able to control the dump requests to make sure they are not simultanious then why not OR the inputs by connecting the open collectors from the optos? (dead simple solution!)Of course active sensing or timecode from any of the inputs would shag this approach :-/

A more sophisticated approach whould be a multiplexer with a arbiter circuit to prevent interruptions to the midi stream (still much simpler than 8 UARTs and buffers and plenty of firmware to write!).

The suitable solution really depends on what you need the merger for.

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...
 Share

×
×
  • Create New...