• Welcome to the Pipe Organ Forum! This is a part of the open community Magle International Music Forums focused on pipe organs (also known as "church organs"), organists, organ music and related topics.

    This forum is intended to be a friendly place where technically advanced organists and beginners (or even non-organists) can feel comfortable having discussions and asking questions. We learn by reading and asking questions, and it is hoped that the beginners (or non-organists) will feel free to ask even the simplest questions, and that the more advanced organists will patiently answer these questions. On the other hand, we encourage complex, technical discussions of technique, music, organ-building, etc. The opinions and observations of a diverse group of people from around the world should prove to be interesting and stimulating to all of us.

    As pipe organ discussions can sometimes become lively, it should be pointed out that this is an open forum. Statements made here are the opinion of the poster, and not necessarily that of the forum itself, its administrator, or its moderators.

    In order to post a new topic - or reply to existing ones - you may join and become a member by clicking on Register New User. It's completely free and only requires a working email address (in order to confirm your registration - it will never be given away!). We strive to make this a friendly and informative forum for anyone interested in pipe organs and organ music.

    (Note: If you wish to link to and promote your own website please read this thread first.)

    Many kind regards
    smile.gif

    Frederik Magle
    Administrator

    Krummhorn
    Co-Administrator

Organ Console open Midi implementation exist?

mickeyratt

New member
Dear Friends

I'm developing a MIDI controller electronic for an Organ console (3 manual + Ped + 128 stops), and i'd like to know, is there any open standard for MIDI implementation, which work with Hauptwerk and GrandOrgue? The manuals and pedals are unequivocal, but the stops is not.
The only info i found in this topic is on the Peterson website. There are a lot of documents there, the most valuable is the next:

http://www.petersonemp.com/manuals/manuals/MIDI Resource System/MIDI User Instructions.pdf

This document describes their method: the stops controlled with SysEx messages. But for this implementation is a must to have an unique manufacturer id.
So what do you think? What would be the best method for stop control?
Thank You in advance! Best wishes from Hungary! :)
 

e9925248

New member
For GO, you should stick with the normal MIDI messages (no SysEX).

* Manuals/Pedals on seperate channels with Note On/Off (maybe including velocity for second touch).
* Ctrl Change for Enclosures
* Draw-Stops: I would suggest Note on/off (Ctrl Change is an alternative - PGM Change will only allow to Toggle)
* Buttons (eg. Divisionals): Program Change - GO support the extended format with Bank Select MSB/LSB (Note on/off / Ctrl Change also work).

Please avoid misusing official assigned numbers (Bank Select MSB/LSB, RPN/NRPN LSB, Data Entry, Sound Off, Notes off, ....).

If you want feedback from GO, it supports the send the same message types - their configuration is seperate from the receiving configuration in GO.

GO trunk does not require any schema for the MIDI messages (eg. like Divisionals of Manual 1 must use the same channel as Manual 1).
 

mickeyratt

New member
Dear e9925248

Thank You for your reply.
I see, that the Sysex way is not possible. :cry:
Yesterday i implemented the Peterson sysex format for a try, but when i try to learn this sysex message in GO, it can't recognize them :(

So turned back to common MIDI messages (9x, Bx, Cx).
I'd like to address more than 128 stops, but all the control data on only one specific midi channel (5). With 9x messages maximum 128 of "stops" controls is possible - if i think right. (or maybe expandable with Bank Select Controller.)

And an another question:
Is there a way to get the actual memory (setzer) number from GO by MIDI message(s) to display it at the console? (LCD or 7seg LED display planned to be fit in the console)
It would be nice to do the console using a headless linux PC (without any input device: monitor, key ...), but for this, to get the actual state of GO by MIDI is essential.

Thank You in advance!
 

L.Palo

New member
Hi!

If you only want to dedicate one channel for stops I think you'll have to use not only 9x messages if you want more than 128 stops. However it's no problem for GO to map different messages (even from different channels) to the stops, you don't need to have them all exactly the same. On the other hand a console with more than 128 stops would be quite huge anyway...

I've recently become interested in the LCD display idea too, but not so much that I've got around to buy any module and wire up something to start experimenting. I'm very dubious about the use of sending such information by MIDI though, I'd suspect that normal ASCII characters would be quite okay for most purposes. Of course it would be nice to have such a feature integrated in GO but I think it should be built on (or using) open source as well as being multi platform and generic enough to work with most devices.

Kind regards

Lars P
 

Dorsetmike

Member
Is there a way to set stops to divisionals/generals with Midi or must it be done manually through memory set? If MIDI can do this the divisionals and/or generals could be set up at the beginning of a piece or even changed partway through.

To select Divisionals I use Programme change on the channels for each manual/pedal and set stops to them manually for each work; I edit the programme changes into the MIDI file using Midiochre. I have extended the number of divisionals so that I can cope with more settings.it could be handy to do the setting atthe start of a MIDI file; I don't use Generals often, when I do I use Programe change using LSB above 32, I've not used more than 16 divs so far so no chance of any mistakes (I hope)

(I generate MIDI files from notation software then edit in the commands; I don't play a keyboard)
 
Last edited:

mickeyratt

New member
Dear Lars

Ooh, is that You? :)
Thank you for your hard work, and your free samplesets! ;)
And thanks for reply.

Yes, i realise, that i must use 9x (note on) messages. I tried bank select + patch change messages, but it is working in toggle mode, there is no exact on or off state. (it would be a nice feature in GO, if one bank lsb + patch change message would set the stop on, another patch change set to off, but this is not exist - as far as i know :()
Yes, 128 is a big number, but one of mine friends make a huge console with 128 stops now. (so 128 is just enough now) :)

For the display subject:
There is a lot of LCD modules on the market equipped with common connections (USB, RS232...)to the PC, this is an other subject to make GO compatible with this devices.
But if GO would be capable to send its actual state with MIDI (i think, it is only possible with SysEx communication) messages, it would be possible for every developer to adapt his/her console to work with GO seamlessly.
(as Hauptwerk doing: there are predefined organ console information for big manufacturers)
So a standardized MIDI SysEx protocol would be an absolutelly must to have in GO :)

Thak you! :D
 

e9925248

New member
I'd like to address more than 128 stops, but all the control data on only one specific midi channel (5). With 9x messages maximum 128 of "stops" controls is possible - if i think right. (or maybe expandable with Bank Select Controller.)

9x is limited to 128 notes and there are no extensions. Just use a second channel.
I have coded support for RPN/NRPN messages, but not found time to test the patch (NRPN equals 64k slots similar to Ctrl. Change). So GO will likely get support for it somewhere in the future.

Is there a way to get the actual memory (setzer) number from GO by MIDI message(s) to display it at the console? (LCD or 7seg LED display planned to be fit in the console)
The only missing part is a official MIDI message format for sending text via MIDI. Inventing something for GO is in my option the wrong way.
 

e9925248

New member
Is there a way to set stops to divisionals/generals with Midi or must it be done manually through memory set?

Your MIDI sequencer just need to the combination, turn set on and press the combination button. MIDI assignment for these buttons work the same way. Set can be found on multiple setter panels.
 

e9925248

New member
I tried bank select + patch change messages, but it is working in toggle mode, there is no exact on or off state. (it would be a nice feature in GO, if one bank lsb + patch change message would set the stop on, another patch change set to off, but this is not exist - as far as i know :()
What is "patch change"?
 

mickeyratt

New member
What is "patch change"?

Sorry, i mean:
Send Patch change (Cx) message with preceeding bank select message(s) (Bx x0)
So for example, if i only send LSB bank select controller (Bx 20) with a patch change (midi ch: 1, bank: 0, patch:0) the message will be this:
B0 20 00 - C0 00
and GO recognizes and distinguish correctly (so it is 127 x 127 = 16129 possible types of message. If i send bank select MSB too, it is more: 127x127x127)
:)
 

e9925248

New member
Sorry, i mean:
Send Patch change (Cx) message with preceeding bank select message(s) (Bx x0)
So for example, if i only send LSB bank select controller (Bx 20) with a patch change (midi ch: 1, bank: 0, patch:0) the message will be this:
B0 20 00 - C0 00
and GO recognizes and distinguish correctly (so it is 127 x 127 = 16129 possible types of message. If i send bank select MSB too, it is more: 127x127x127)
:)
GO support Program Change with bank select LSB/MSB for a long time. This allows to use the voice selection of normal MIDI keyboards.

RPN/NRPN for Ctrl Change is not yet present (waiting for testing).
 

mickeyratt

New member
GO support Program Change with bank select LSB/MSB for a long time. This allows to use the voice selection of normal MIDI keyboards.

RPN/NRPN for Ctrl Change is not yet present (waiting for testing).

"GO support Program Change with bank select LSB/MSB for a long time"
Yes, but it can only toggle a stop. It can't be assigned one message to turn ON, and an another to turn OFF the stop :(
 

Dorsetmike

Member
I think the problem is that the first programme change will turn a stop on, any subsequent programme change on that channel, (example to turn another stop on) will turn off the first, so you could not turn on two stops with separate programme change commands, this is why I use divisionals and generals.

As a manual (or pedals) does not use all 128 possible MIDI notes and as stops should be associated with a specific manual , you will usually have over 60 note on/off's available to operate stops on each manual channel, more for pedals; so for your 3 manual + pedal example that would give you over 290 stops - assuming 61 notes per manual and 32 for the pedal.
 

mickeyratt

New member
Why should any normal MIDI gear require this? Turn it on via push button A and turn it off with push button B?

No, this two midi message belongs to one stop. If i only can toggle a stop in GO, then there is no way to know (from the midi controller hardware viewpoint) what is the actual state of the stop in GO.
This problem is only matter when i don't want to use note on (9x) messages.
The same problem is for midi out from GO. If the console stops equipped with leds or lamps, and they are controlled from the GO via midi, you can't assign two separated midi message for two state of the stop.
- Yes, it is not necessary if the controller controls the lamps :)
 

e9925248

New member
The same problem is for midi out from GO. If the console stops equipped with leds or lamps, and they are controlled from the GO via midi, you can't assign two separated midi message for two state of the stop.
- Yes, it is not necessary if the controller controls the lamps :)

GO supports multilple events for one object, eg. sending a PGM change, when off and a Note Off, wenn on is possible.
 

mickeyratt

New member
Oh, yes, you are right, thanks! :)
I give up to search another way for stop control than "9x" messages.
If 128 will be not enough, i will use another channel :)

Thanks!
 

mickeyratt

New member
I just hear that HW LCD SYSEX will be implemented (r1622) ! ! !

;):eek::grin:

What a nice news! Thank You Martin!
 
Top