Jump to content

Pipe organ Conversion to Midi


John_W._Couvillon
 Share

Recommended Posts

PER S

If you enable the merger function in the configuration of the ini file for your midio128's won't they pass the signals on through to the PC. In other words, midi out of the last core to midi in of the middle core and so on, daisy chained with the midi out of the first core connected to the midi in of the PC. I am in the process of hooking up a midio128 and midio64.  Two manuals on the midio128 and the pedal and stops on the midio 64 and I was going to do as I suggested above.  I hope that is the correct way to set it up.

question:  I'm using a moller console and rewiring the keys to the midibox digital in modules.  I found a schematic for hooking up the keys to pins, however, I am confused as to which pin on the chain of 4 modules is No. 1 for the lowest note. Is it the first or the last?

Didn't realize you were in Stockholm. I am in Baton Rouge, Louisiana and the summer heat and humidity is already going bad. Our hight today will be 88 deg. f, with 80% humidity.  Quite stickey!

This internet is really something, and this forum is awsome. and its great to be able to talk with someone in Stockholm, Sweden.

Regards,

Johnc

Link to comment
Share on other sites

" Question to anyone how wants to answer:

In reading different threads on all subjects, I read about presets.  I don't know anything about Hammond organs or B4, etc. So what are presets and how does this apply to the organ?

Thanks,

Johnc"

To start with, the Hammond Organ was invented by Laurens Hammond as a substitution for church organs. The drawbars were named after the length of the pipes (16' 5 1/3', 8', 4',2 2/3', 2', 1 3/5', 1 1/3' and 1'). So 9 drawbars were used. You could vary the loudness of the tone (for example the fundamental 8' ) by changing the position of the drawbar (9 positions: 0ff, one to eight).

You had 2 sets of drawbars for each manual. And here come the Preset keys: The big hammond console organ with 61 note keyboards (B3, RT3, C3, A100 and similiar) had a special octave of keys. This octave has reverse colored keys in order to make it more visuable. With the b and the a# of the preset octave keys the player switched between the 2 drawbar sets. With the rest of the preset octave you can choose a "Preset".

A Preset is a hardwired sound setting in opposite to a set of 9 drawbars. Instead of being connected via the drawbar the Preset keys are directly connected to the tone generator of the organ (setting tone pitch and loundnessof the tone). All Preset were the same at a stock hammond. If you want to vary the Presets you have to rewire 9 cables (using a soldering iron).

The B4 is a software program emulating a B3 hammond organ.

I hope I made myself clear. If not, feel free to ask.

andreas

Link to comment
Share on other sites

Hi Per,

If the MIDIO128 can keep up with the MIDI baudrate then there should be no problem. Account must be taken to the debounce function. Today I run the standard, 25 ms I believe (or is it 32 ms). I have the older version 16F.

the implementation of the debouncing function in the PIC16F firmware is far from perfection. It uses only one "time-out counter" which is started every time when any button has been triggered. Once the counter is running, all button inputs are not captured for the specified debouncing time. This means: this "poor" debouncing function is only useful if (keyscan) latency doesn't matter, but it's not qualified for the MIDIfication of a organ keyboard where more than one key could be activated at the same time.

The debouncing function has been significantly improved in MIOS. Here every input has it's own time-out counter, means: every digital input is handled seperately.

Also the performance of the MIDI merger has been improved - the MIDI stream is now buffered with 64 bytes at the input side and 48 bytes at the output side (PIC16F: 16 bytes input, 0 bytes output) --- normaly an external merger is not required.

So, if you notice timing problems, I would recomment a PIC18F before building a merger

The really big problem now is the weather, summer has arrived in Stockholm, +25C and sunshine, so I rather be outside than cutting cables.

I was in Stockholm last year and was very impressed about the clear sky, fresh air and hot sun! And about the fact that the sun (nearly) never goes down during midsummer :)

Best Regards, Thorsten.

Link to comment
Share on other sites

This means: this "poor" debouncing function is only useful if (keyscan) latency doesn't matter, but it's not qualified for the MIDIfication of a organ keyboard where more than one key could be activated at the same time.

It figures. Years ago I made changes to the Midi_out.inc to allow for multiple Note on msg's with one key depression I also hardcoded the debounce value to zero. I didn't use the INI-SYX procedure since it involved additional steps during the testing. This is the explanation for not seeing a latency problem despite the dubious debouncing function, zero debounce.

Here's my planned configuration:

MIDIO128 #1 (16F), Swell, Pedal, Stops---> MIDIO128 #2 (16F), Accompaniment, Stops---> MIDIO128 #3 (18F New) Great, Solo, Stops---> MIDI to PC running Miditzer and later HW2

All will run the original code except #1 where there is a small change to allow for Swell potentiometer AD conversion.

Sunrise today 03:40 Sunset 21:56

Per S

Link to comment
Share on other sites

Per S,

I will use one midil128 for the great and swell, and a midio64 for the pedal and stops. In reviewing the example ini file for buttons for the 128 it only show "90 30" for the first input. Do I have to complete the line, i.e. "90 30 7F 90 30 00" for each input pin?  Also, which of the midio64 firmware should I use the "64" or the "64E". On the sample ini file for buttons on the 64E are all 64 inputs available for programming as on the 128? the first 17 on the ini example are typical then  4 more have some specific function that I don't understand. Its confusing. I want to assign 1-32 to the pedal, and 33-64 for stops. The example buttons on the ini file for the 64 shows "90 30-7F". Same question, do I add the note off part "90 30 00" for each input. Changing the channel number and note number, of course.

Thanks,

Johnc

Link to comment
Share on other sites

Johnc

The "90 30" you refer to [MIDI_IN] is only for MIDI events coming FROM the PC into the MIDIO128. This function is not used so don't change anything here.

Further down in the ini file you will find this:

[MIDI_OUT]

##########################################

# Pin   # On Evnt # Off Evnt # Behaviour #

##########################################

   1 =  90 47 40   80 47 40   @OnOff

   2 =  90 46 40   80 46 40   @OnOff

   3 =  90 45 40   80 45 40   @OnOff

   4 =  90 44 40   80 44 40   @OnOff

   5 =  90 3C 40   80 3C 40   @OnOff

Above is an example of the first few entries I have. All 128 have to be configured to the

desired function.

Regarding your questions about the midio64 (MIDIbox64E ?). I'm not familiar with these devices so I can't comment. In my application all that's needed is to send a MIDI event when a key is pressed or a stop is switched on. The MIDIO128 does a good job doing just that.

I have sent you a msg with my private address so we can exchange items that are not of general interest.

Per S

Link to comment
Share on other sites

  • 3 weeks later...

Hello all, I'm new to this thread but not to midibox or organ conversions. I'd like to offer my help and experience in these matters if any of you need a little help with this. I'm well versed in MIOS programming if anyone needs some custom programming for any of this, or help in doing your own.

I'm also fairly well versed in the amplifier/speaker area for electronic organs if anyone is interested in that.

One interesting things I noticed from reading this thread is that no one seems to be using the diode matrix approach for inputting keyboards etc. I've used diode matrix techniques on all my organs and find it much easier than the direct in approach. With the matrix approach you can get up to 1024 inputs with 1 core, 1 DOUT and 1 DIN. Thorsten has a code sample on the MIOS download page on how to do this in MIOS, but it would need an app written around it (very easy to do).  TK's code is for a 8x8 matrix which gives you 64 inputs, which is perfect for organ use. You can get 4 of the 8x8s with the 1 core, 1 DIN and 1 DOUT. A big advantage here is that you have 1 16 conductor cable going to each keyboard, it cuts down immensely on the cabling.

John S.

(Hmmm, that makes John C, John H and now John S on this thread!)

Link to comment
Share on other sites

Hi John S,

Now that IS an interesting idea! The diode matrix sounds like the easiest way to go. Smaller cables from the keyboards, fewer boards to build, but lots of diodes to install. Fortunately, diodes in 100's quantity are very inexpensive. I'll be exploring this further.

What keyboards/stops to what MIDI channel are you using? Hopefully we can come up with a "standard" configuration so MIDI files can be exchanged with a chance of sounding reasonably correct on different organs.

I'll probably have a bunch of questions as soon as I learn enough to be able to know what to ask.

Later,

Mickey

Link to comment
Share on other sites

Johns,

I'm going through the riggers of wiring 200+ keys so it late for me.  However, I am interested in the diode matrix approach.  Is there a typical schematic  available? I don't understand how it works. How does it work for converting a  common bus system found in many organ consoles?  All my keys are connected to a bus and are not separable without adding new contacts, and rewiring the entire console.

your offer to custom aps programming is generous! you may be taken up on that offer!!!

Regards,

Johnc

Link to comment
Share on other sites

Hi John C,

to see how the wiring is done, go to the MIOS download page and look for the sm_example_v1 sections, there is a picture of the wiring. For an 8x8 you have 16 wires running the length of the keyboard, 8 to a DOUT and 8 to a DIN. One side of each key is connected to one of the DOUT wires, a diode is connected to the other side of the key which then goes to then goes to one of the DIN wires.

You are quite correct that you need to get to both sides of the contact, the common "bus" arrangement is tough for that, particularly if you are trying to preserve the original functionality.  I've done it  by either adding aditional contacts (I'll explain my favorite later) or modifying the "bus" if you do't need the original functionality. If the common contact is continuously supported (such as a bar on a wood support, just cut it apart at each key! One I did by putting some tape over the original bar and gluing a new wire over it at each loacation, it was actually quite easy.

For adding extra conacts I usually like to use "non contact" contacts. I've done both optical and magnetic. For the magnetic I use a reed switch (magnetic switch enclosed in a glass envelope), you can get these quite cheap from mouser or digikey.  I then bought a roll of magnetic strip material and cut off little pieces and glued them to the end of each key. The reed switches, diodes and 16 wires I put on a board that runs along behind the keyboard with each switch oriented vertically. When the key is pressed the magnet raises up and turns on the switch, no physical contact happens.

I've also done this optically in two different ways. There are reflective sensors, that send out a light beam and have a detector right next to it. You glue a piece of white paper (carboard, plastic, whatever) on the back of the key and place the sensor so that when the key is depressed the reflector sends the light back into the sensor. The problem with this is that it can be sensitive to external light. Ie it works fine when the over is on but when you open things up and aim bright lights at it for trouble shooting, it doesn't work!

The other is the interrupting beam approach. In this one the sensor has a slot with a source and detector on opposite sides of the slot. You glue something on the key which will slide through the slot and block (or unblock) the beam as the key is depressed. I used some plastic strips from the hobby shop and glued them to the end of the keys. Because the detector is much more enclosed than in the previous version it doesn't get mucked up by ambient light.

The magnetic approach is the cheapest. I did a 3 manual + pedalboard for less than $100. The optics cost more.

Have fun!

John S.

Link to comment
Share on other sites

Guest JimCook

John,

Do you notice any latency problems with the reed switches?  I know that reed switches close and open at different speeds when the magnet is sensed so are they usable for the manuals?  When I worked at Rodgers Organ Company, their detachable pedal claviers used reed switches but I would expect the contact speed of a pedal board wouldn't be as critical as the manual contacts.

This would be an easy way of adding foldback to Hammond spinets!  Just add a few lightweight magnets to the upper octaves and use reed relays to add the foldback oscillators.

Speaking of manual magnets...  Anyone adding simulated tracker touch to their pipe organ manuals?  Add a magnet under the tail of each key and a strip of steel beneath that can be adjusted to set the pluck as the key tail lifts.  Rodgers used to offer this option and I always felt it was a superior tactile sensation to the usual electronic organ feel.  I have limited experience playing on a true tracker action but I never really liked it.  But I really liked the little pop of the simulated tracker touch.

Link to comment
Share on other sites

John S, thank you for reminding us of the diode matrix approach.  I think you are absolutely correct that this is a superior approach to MIDIfication of an organ console as compared to multiplication of DINs and Cores.  It looks especially attractive to me as I will be MIDIfying an original Wurlitzer theatre pipe organ console where the keys (including the pedals) have second touch.  That means there are two seperate key closures that have to be detected per key.  But both of the two contacts under each key use the same common.  So I already have a start at rearranging the common bus side for a diode matrix.

Would it advance the development of the diode matrix project if I were to draw up the necessary matrix for my project?  I am a programmer, although not PIC (yet), and pretty handy with hardware too.  Let me know what I can do to be most useful.  I have all the MIDI Box pieces that will be required already.

Jim Henry

www.MidiTheatreOrgan.com

(Just call me John H for the purposes of this discussion. ;D )

Link to comment
Share on other sites

Jim C, the reed switches are very fast, even the release is less than a millisecond (at least for the small ones you would use on on a keyboard, some of the BIG ones are slow). The only real problem as far as playing goes is that the on and off points on the key travel are at slightly different points. The switch closes when the magnetic field reaches a certain field strength, it releases at a slightly less field. There are a very few organists that don't like this (they are usually those that only like playing trackers!)

Many years ago I was thinking of putting a magnet on a small post sticking down from the key with a coil around it. A computer would then send exactly the right pulse through the

coil to give you any "feel" you wanted. You could have tracker feel, harpsichord feel even tubular pneumatic feel! But I have never gotten around to building this, one of the big problems was magnet strength, but with modern rare earth magnets its should be easy. The coil is also a very good velocity sensor if you wanted to implement something based on velocity.

Speaking of trackers one of my goals is to sometime in my life build a pure tracker out of modern hi tech materials such as frictionless flex bearings, high strentgh fibers that have almost no stretch due to load or humidity or temperature. You should be able to build a large tracker that once adjusted STAYS adjusted no matter what the temperature or season. Some of these fibers in a teflon tube have very low friction so you could even make a moveable tracker console!!

John S.

Link to comment
Share on other sites

Hey Everybody!!

This is my first time I've seen this post, and I'm very interested in this topic.  I've converted a pedalboard to MIDI by building a circuit using a PIC16F877 and at the same time it also merges MIDI Input from my one keyboard.  I've added another keyboard, but as MIDI Mergers seem to be very hard to find in South Africa, Ive had to add another soundcard to support the 2nd keyboard's MIDI.  I'm using Hauptwerk which I bought.  I've noticed that here is a circuit to build a MIDI Merger.  Was wondering if it could be extended to more that 2 MIDI Inputs?

Anyways, since the topic concerns Pipe Organ conversion to MIDI, you should check out http://homepage.ntlworld.com/derek.johnson/  He has a lot of interest in PICs and MIDI and he has a project using a PIC to MIDIfy an organ with 3 manuals and 32note pedal board, together with couplers, etc.  He hasnt got the project on his site, but I've emailed him and he sent it to me.  Havent built it myself, but looks excellent!  Think it's worth investigating.

Jean  :)

Link to comment
Share on other sites

Hi Jean,

I've looked very closely at the code for the midibox midi-merger and came to the conclusion that it would be very difficult to convert to multiple midi input. The current version uses the built in UART and a software UART, it implements the functions of the UART entirely in code. Part of the code is using a timer to sample the waveforms at certain points. Since all the midi streams are asynchronous to each othyer they they all need different timings which would entail a major rewrite of the code to handle multiple ones from 1 timer.

Anyway I looked at the problem and gave up and just built three midi mergers and cascaded them. The three midimergers cost WAY less than one commercial 2-1 midi merger.

For this application the midibox core module only needs some of its parts, plus some extras. All the stuff for the LCD is needed as well as some of the connector pins for AIN, DIN DOUT etc. The standard core module only has one optocoupler, but with the merger of course you need 2, so I had to add a separate little board with the extra couplers. In the cascaded connection (2 2-1 feeding a third 2-1 giving 4-1) you don't need the optocoupler on the secend level merger, you can feed cmos level directly into cmos level.

Since you are already dealing with 877s it sounds like you have the environment setup to program them, the midimerger also uses the 16f877.

If you decide to try the multiple midi merger let me know and I can give some more details if the above description is too vague.

John S.

Link to comment
Share on other sites

thorston or anyone

Got a problem!

I have a midio128 core (core 00)programmed with 64 notes on the great keyboard starting with midi note 24, channel 0, and 64 notes starting with note 24, channel 1 on the swell keyboard.  All notes on the great work fine. on the Swell, note 39 gets the correct "note on" message (91 39 7F) and the note plays. But, when released the note does not turn off, and the note off message it receives (monitored with midiox) is 80 10 4F which is an E1 note rather than an A3. the program sends a 91 39 00 to turn off the note. All the other notes past note 39 get the correct programme information, note on and note off. I rechecked the ini soure file and it is correct.  I have another core (core 01) for the pedal thats output goes to the midi in on core 00 and the output of core 00 goes to the pc. I reprogrammed both cores again and there is no change.

I've turned the power on and off several times and Its allways the same pin on the din chip like there is a ground. If I turn on the system, I can play any note with no problem and no sticking notes. playing the A3 note causess the continuous tone on the A3 pitch.

Any suggestions from anybody!

Johnc

Link to comment
Share on other sites

  • 1 year later...

What a great discovery - this forum!  And with the new topic I need to discuss.  I have just reached a milestone in my project to restore and "midify" my Seeburg MO piano/organ.  It is just to the point now of playing the piano from Style "A" Nickelodeon music rolls.  I have a parallel data bus just waiting to be tied to a MIDI decoder output, along with a single enable line to play the piano from a MIDI source.

     The piano pneumatic stack plays the piano notes by way of a set of pallet valves that replace the original primary valves.  These valve/electromagnets are of my own design and contain no frictional parts.  They operate from 12 volts at 150 milliamps.  They are driven by a set of solenoid/relay driver chips.  The input to these chips is the parallel bus.

     The paper music roll is “read” by the machine’s “A” roll frame by the traditional vacuum process.  However, the tracker bar tubing connects to a pneumatic/electric relay assembly that converts the pneumatic pressure signals into a contact closures.  There is a full set of pouches that operate bifurcated gold wire contacts which make up to a gold wire bus that is excited with 5 Vdc.  A set of cables carries these signals to a circuit board that contains a set of bus drivers whose output (when enabled) feeds the data bus playing the piano notes.  With the present arrangement, the machine is ready for MIDI adaptation but will play music rolls as it did originally.  Eventually the pneumatically operated contact closures will tie to a MIDI input for recording the music rolls.  There is also a set of pneumatic pallet valves tied to 61 keys (this was original).  These are tied in pneumatic parallel with the tracker-bar holes (through a cutout) so they will also be active as inputs to be recorded in MIDI from keyboard strokes.

     The organ will eventually have a set of 61 magnetic valves to interface to MIDI or the music roll.  There are 98 pipes that consist of 3 partial ranks – 24 Diapasson (C16 through B39) and 37 each Flute and Quintadena.  The latter two ranks map 1/1 with each other and start at C40 through C76.

     I want to get my MIDI interface working on the piano and also purchase what I will need for the organ.  My plan is to first MIDI-interface the piano using one core unit.  The piano plays 58 notes, so I can use a MIDIO64,  and the extra outputs (8) can be used as controls for other functions, I assume, such as sustain and soft pedal, vacuum shutoff, etc.  For the organ, I can also use a ’64, but it may be smart to get a ‘128 to allow for future additions to the machine.  I need to know what kind of LCD display to get so my PIC’s can be preloaded with the correct boot software.  I plan to use MIOS.

  Does this plan make sense to some of you that have already done this?

     Maybe this posting will help trigger ideas for some others working on their projects.  Thanks for any comments.

     

Link to comment
Share on other sites

MIDIO128 is the project you'll want to use for both projects as your type of project is exactly what MIDIO128 was done for in the first place. MIDIO64 is directed more toward making a MIDI control surface including potentiometer inputs. Take some time to poke around. There are lots of interesting and useful things to be found including the story of the original MIDIO128 project and recommendations for LCD displays.

Link to comment
Share on other sites

  • 2 months later...

What sort of help do you need?  The MIDIIO128 project was original for Midifying a band organ.  DOUT boards will produce a digital on/off signal in response to MIDI messages of your choosing.  You'll need to provide some additional circuitry between the DOUT and the pipe magnets to handle the electrical load.  There is some documentation, a schematic as I recall, of a way to connect a DOUT to relays on Thorsten's site.  That will give you some ideas.

You need to think about whether a standard MIDI cable is going to be fast enough to deliver all the data a pipe organ will consume on the output side of the virtual relay.  I think some "cleverness" will be required in this regard.  Maybe it will be as simple as using a multiport USB to MIDI interface box and then running MIDI cables to multiple Midibox cores, each core controlling 1 or 2 ranks of up to 128 pipes.  I wouldn't suggest using the core linking feature for this application.

Link to comment
Share on other sites

  • 3 months later...

Hello jorgan fans:

Version 2.2.1 of jorgan allows you to setup a soundsource using an external midi device.  For those that are interested in a hybrid organ using pipes and soundfonts, this feature is significant.

With my jorgan pc setup, I use a midisport 2x2 USB adapter.  The midi input from the keyboard decoders feeds in to USB ain, and the new soundsource called "pipe Driver" designates USB B out as the midi device.  I built a new core running mios and midio128, and added 4 dout cards to provide 128 outputs.  In order to drive the 90 ohm magnets, I use 4 ULN2803A darlington driver chips per dout card.

The midi stream that jorgan outputs is in two parts:  when the stop is selected, it outputs:

Status  Data 1  Data 2  Channel  Event

c0          2          -        1            Program Change

b0          2        64        1            Control Change

I don't know what these commands are supposed to do?

When you press a key on the keyboard, say note 18 on the pedal,  jorgan sends out:

Status  Data 1  Data 2  Channel  Event

90        18        64          1          Note ON

80        18          0          1          Note off

will the midio 128 respond  to a note off code of "80" rather then "90"?  If not, what can I do to get it to respond?

the ini file for midio128 is set up with the midi merger enabled and the other settings at default. 

The [midi in]  list is set for  pin 1  90  18..... pin 64 =  90  57,

pin 65 = 91 24 .......  pin  128 =  91  63.  Jorgan will send the stop for the 16' bourdon on channel 1, and for the 8' diapason on channel 2, hence the "90" and "91". 

With the new cores programmed and installed,  When the power is turned on, the uln2803's pickup immediately.  This is without any input from jorgan.

Since the inverse outputs in the ini file is disabled, the outputs of the 74HC595's should be 0 or high impedence.  Confused?  Could jorgan be sending out an active low signal such that the default ini settings cause the core to respond opposite to normal?

Any help or comments would be appreciated

Regards,

Johnc

Link to comment
Share on other sites

Hi John,

short note:

will the midio 128 respond  to a note off code of "80" rather then "90"?

yes, any Note Off message will be converted internally to a Note On event with zero velocity (8n xx vv -> 9n xx 00)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Thorsten,

Thanks for the reply.

So we are good so far.

Since I entered the long reply, I noticed that each time  I attached a magnet to the uln outputs, the usb Bin  light on the usb adapter blinked, which didn't make any sense.  So i checked wiring between the core and the dout, and found that I had wired to j9 rather then j8.  All but the center wire are common to both connectors, so I switched the center wire to j8. This solved the blinking USB Port light, but not the active outputs on the uln's.  Any suggestions?  Smashtv - Any Comments? If I can get this working, it will be a major development for those needing an organ control system, as jorgan will fill the bill.  All done with MBHP devices.

I have a block diagram of the entire setup which I can email if anyone is interested.

Regards,

Johnc

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