Jorgan keyboards

classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

Jorgan keyboards

Aaron Laws
I am beginning to replace the electronics in my organ (Allen 50s or 60s?), and I've done some work with jorgan to get it going. I have a good deal of this worked out, but one question remains.

I am using a c++ library to interact with some custom hardware in the organ. I have a separate java class (separate from my Transmitter) encapsulating interaction with this native library. Something like this:

Organ Hardware -> C++ library -> java class DeviceHandler -> Transmitter(s)

The DeviceHandler is a java singleton that spawns its own thread for communicating with the c++ library. The Transmitters register themselves with the DeviceHandler specifying which keyboard's events they want to receive.

In jorgan, if I make both virtual keyboards linked to my Transmitter type, they each get a new instance (which is fine). When a key is pressed on the swell, though, which Transmitter should transmit the keypress? In other words, how does each Transmitter know whether it's hooked up to the Great or the Swell?

I hope I've been clear; please let me know if I can provide any more information to clarify further. Thanks!

In Christ,
Aaron Laws

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Sven Meier
Administrator
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun
Sven

On 06.07.2016 22:21, Aaron Laws wrote:
I am beginning to replace the electronics in my organ (Allen 50s or 60s?), and I've done some work with jorgan to get it going. I have a good deal of this worked out, but one question remains.

I am using a c++ library to interact with some custom hardware in the organ. I have a separate java class (separate from my Transmitter) encapsulating interaction with this native library. Something like this:

Organ Hardware -> C++ library -> java class DeviceHandler -> Transmitter(s)

The DeviceHandler is a java singleton that spawns its own thread for communicating with the c++ library. The Transmitters register themselves with the DeviceHandler specifying which keyboard's events they want to receive.

In jorgan, if I make both virtual keyboards linked to my Transmitter type, they each get a new instance (which is fine). When a key is pressed on the swell, though, which Transmitter should transmit the keypress? In other words, how does each Transmitter know whether it's hooked up to the Great or the Swell?

I hope I've been clear; please let me know if I can provide any more information to clarify further. Thanks!

In Christ,
Aaron Laws


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape


_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

greenfox
Hello Aaron

For each device connecting to a different keyboard instance in jOrgan you will need to set the MIDI device and the MIDI channel.  If your devices each have identical names (you will only see one) you will need to use the Enumerate MIDI function in jOrgan.  This is not selected in default but it seems more and more people are having trouble with this and have no idea the function is there.

View- Configuration - MIDI - Enumerate Devices.

This will put a hash and numeral against each MIDI device showing in the available devices list in jOrgan.  You will now be able to see multiple items listed and each will have a unique number.

Regards
Rick
 

On Thu, 7 Jul 2016 at 07:25 Sven Meier <[hidden email]> wrote:
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun

Sven


On 06.07.2016 22:21, Aaron Laws wrote:
I am beginning to replace the electronics in my organ (Allen 50s or 60s?), and I've done some work with jorgan to get it going. I have a good deal of this worked out, but one question remains.

I am using a c++ library to interact with some custom hardware in the organ. I have a separate java class (separate from my Transmitter) encapsulating interaction with this native library. Something like this:

Organ Hardware -> C++ library -> java class DeviceHandler -> Transmitter(s)

The DeviceHandler is a java singleton that spawns its own thread for communicating with the c++ library. The Transmitters register themselves with the DeviceHandler specifying which keyboard's events they want to receive.

In jorgan, if I make both virtual keyboards linked to my Transmitter type, they each get a new instance (which is fine). When a key is pressed on the swell, though, which Transmitter should transmit the keypress? In other words, how does each Transmitter know whether it's hooked up to the Great or the Swell?

I hope I've been clear; please let me know if I can provide any more information to clarify further. Thanks!

In Christ,
Aaron Laws


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape


_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
greenfox - Brisbane Queensland Australia
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

RoyR
Hi, Rick,

             Will a group of identical hardware items have the same hash number when you shut down and restart? 

  Does this apply to Windows or Linux? So far I've always used MidiMerge with all keyboards on different channels but jOrgan can show errors if the Linux hw:nn numbers come up in a different order.

   

      Have fun,

            Roy.


On 7 July 2016 at 04:59, <[hidden email]> wrote:
Hello Aaron

For each device connecting to a different keyboard instance in jOrgan you will need to set the MIDI device and the MIDI channel.  If your devices each have identical names (you will only see one) you will need to use the Enumerate MIDI function in jOrgan.  This is not selected in default but it seems more and more people are having trouble with this and have no idea the function is there.

View- Configuration - MIDI - Enumerate Devices.

This will put a hash and numeral against each MIDI device showing in the available devices list in jOrgan.  You will now be able to see multiple items listed and each will have a unique number.

Regards
Rick
 

On Thu, 7 Jul 2016 at 07:25 Sven Meier <[hidden email]> wrote:
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun

Sven


On 06.07.2016 22:21, Aaron Laws wrote:
I am beginning to replace the electronics in my organ (Allen 50s or 60s?), and I've done some work with jorgan to get it going. I have a good deal of this worked out, but one question remains.

I am using a c++ library to interact with some custom hardware in the organ. I have a separate java class (separate from my Transmitter) encapsulating interaction with this native library. Something like this:

Organ Hardware -> C++ library -> java class DeviceHandler -> Transmitter(s)

The DeviceHandler is a java singleton that spawns its own thread for communicating with the c++ library. The Transmitters register themselves with the DeviceHandler specifying which keyboard's events they want to receive.

In jorgan, if I make both virtual keyboards linked to my Transmitter type, they each get a new instance (which is fine). When a key is pressed on the swell, though, which Transmitter should transmit the keypress? In other words, how does each Transmitter know whether it's hooked up to the Great or the Swell?

I hope I've been clear; please let me know if I can provide any more information to clarify further. Thanks!

In Christ,
Aaron Laws


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape


_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user



------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
ken
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

ken
In reply to this post by greenfox
Hi Rick;  Thanks so much for explaining the mysteries of Keyboards
in jOrgan. I will try to set up jOrgan again. I gave up because of this
keyboard recognition problem.
Ken Barta


On 7/6/2016 11:59 PM, [hidden email] wrote:
Hello Aaron

For each device connecting to a different keyboard instance in jOrgan you will need to set the MIDI device and the MIDI channel.  If your devices each have identical names (you will only see one) you will need to use the Enumerate MIDI function in jOrgan.  This is not selected in default but it seems more and more people are having trouble with this and have no idea the function is there.

View- Configuration - MIDI - Enumerate Devices.

This will put a hash and numeral against each MIDI device showing in the available devices list in jOrgan.  You will now be able to see multiple items listed and each will have a unique number.

Regards
Rick
 

On Thu, 7 Jul 2016 at 07:25 Sven Meier <[hidden email]> wrote:
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun

Sven


On 06.07.2016 22:21, Aaron Laws wrote:
I am beginning to replace the electronics in my organ (Allen 50s or 60s?), and I've done some work with jorgan to get it going. I have a good deal of this worked out, but one question remains.

I am using a c++ library to interact with some custom hardware in the organ. I have a separate java class (separate from my Transmitter) encapsulating interaction with this native library. Something like this:

Organ Hardware -> C++ library -> java class DeviceHandler -> Transmitter(s)

The DeviceHandler is a java singleton that spawns its own thread for communicating with the c++ library. The Transmitters register themselves with the DeviceHandler specifying which keyboard's events they want to receive.

In jorgan, if I make both virtual keyboards linked to my Transmitter type, they each get a new instance (which is fine). When a key is pressed on the swell, though, which Transmitter should transmit the keypress? In other words, how does each Transmitter know whether it's hooked up to the Great or the Swell?

I hope I've been clear; please let me know if I can provide any more information to clarify further. Thanks!

In Christ,
Aaron Laws


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape


_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape


_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user



------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Aaron Laws
In reply to this post by greenfox
On Wed, Jul 6, 2016 at 11:59 PM, <[hidden email]> wrote:
Hello Aaron

For each device connecting to a different keyboard instance in jOrgan you will need to set the MIDI device and the MIDI channel.  If your devices each have identical names (you will only see one) you will need to use the Enumerate MIDI function in jOrgan.  This is not selected in default but it seems more and more people are having trouble with this and have no idea the function is there.

View- Configuration - MIDI - Enumerate Devices.

This will put a hash and numeral against each MIDI device showing in the available devices list in jOrgan.  You will now be able to see multiple items listed and each will have a unique number.

Regards
Rick

Thanks for the hint. I was able to figure out my problem, but I don't think Enumerate Devices helped in this case. I changed my code so that my KeyboardProvider provides one MidiDevice.Info per keyboard. I should have figured this out on my own. So when a Keyboard is requested from the keyboard provider, the MidiDevice.Info object is passed along. Then, when the keyboard generates a Transmitter, the MidiDevice.Info object is passed along. Then, when the Transmitter registers with the hardware layer (my "Device Handler"), it translates the MidiDevice.Info object into a particular keyboard (they're numbered at this point). In actuality, I don't pass the whole MidiDevice.Info object, but just the name which is "Swell", "Great", etc.

Now, when I select an "Input" for my keyboards, all the MidiDevice.Infos show up in that list, and work as expected.
 
 

On Thu, 7 Jul 2016 at 07:25 Sven Meier <[hidden email]> wrote:
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun

Sven

Right. My code certainly passes MIDI messages. My Transmitter (responding to "hardware" key presses and releases) passes note on and note off messages to the receiver it is given by jorgan. I'm happy to share my code if you're still interested, but I don't have any pressing questions at this point.

I see your name, Sven, on many of the jorgan commits, so I'll take a moment to say, Excellent work! I'm very happy with the technical arrangement of jorgan. I fully expected it to be "not quite right" here and there, but it's truly excellent. For instance, the freedom of association of ranks to stops, stops to keyboards, etc., etc. creates (as far as I can tell with my limited use at this point) a sufficiently flexible system, if it does create a bit more work when designing a disposition.

In Christ,
Aaron Laws

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

greenfox
In reply to this post by RoyR

Hi Roy

Yes, this "new" hidden function eliminates the need to set different MIDI channels on multiple MIDI devices, and the need to use the MIDI merge function.

This function is running in the Java environment. It will show in jOrgan what Java sees as devices available from whatever platform the system is running in.
There is a second selectable function to cache device numbers.
I believe this covers the aspect you raise.
I understand each USB port has a  unique identifier linked to the MIDI device behind the scenes in the operating system. This is used to create the unique hash number.
As long as each device is in the identical USB port it will maintain the same hash number on the next startup.

Regards
Rick

On 7 Jul 2016 7:06 pm, "Roy Radford" <[hidden email]> wrote:
Hi, Rick,

             Will a group of identical hardware items have the same hash number when you shut down and restart? 

  Does this apply to Windows or Linux? So far I've always used MidiMerge with all keyboards on different channels but jOrgan can show errors if the Linux hw:nn numbers come up in a different order.

   

      Have fun,

            Roy.


On 7 July 2016 at 04:59, <[hidden email]> wrote:
Hello Aaron

For each device connecting to a different keyboard instance in jOrgan you will need to set the MIDI device and the MIDI channel.  If your devices each have identical names (you will only see one) you will need to use the Enumerate MIDI function in jOrgan.  This is not selected in default but it seems more and more people are having trouble with this and have no idea the function is there.

View- Configuration - MIDI - Enumerate Devices.

This will put a hash and numeral against each MIDI device showing in the available devices list in jOrgan.  You will now be able to see multiple items listed and each will have a unique number.

Regards
Rick
 

On Thu, 7 Jul 2016 at 07:25 Sven Meier <[hidden email]> wrote:
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun

Sven


On 06.07.2016 22:21, Aaron Laws wrote:
I am beginning to replace the electronics in my organ (Allen 50s or 60s?), and I've done some work with jorgan to get it going. I have a good deal of this worked out, but one question remains.

I am using a c++ library to interact with some custom hardware in the organ. I have a separate java class (separate from my Transmitter) encapsulating interaction with this native library. Something like this:

Organ Hardware -> C++ library -> java class DeviceHandler -> Transmitter(s)

The DeviceHandler is a java singleton that spawns its own thread for communicating with the c++ library. The Transmitters register themselves with the DeviceHandler specifying which keyboard's events they want to receive.

In jorgan, if I make both virtual keyboards linked to my Transmitter type, they each get a new instance (which is fine). When a key is pressed on the swell, though, which Transmitter should transmit the keypress? In other words, how does each Transmitter know whether it's hooked up to the Great or the Swell?

I hope I've been clear; please let me know if I can provide any more information to clarify further. Thanks!

In Christ,
Aaron Laws


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape


_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user



------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
greenfox - Brisbane Queensland Australia
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

RoyR
   Thanks, Rick, I'll give that a try. Most things I've tried screw up if, for instance, you plug a USB stick into the machine. If you leave it there when you reboot all the hw:? numbers change.

   

      Have fun,

            Roy.


On 7 July 2016 at 23:29, <[hidden email]> wrote:

Hi Roy

Yes, this "new" hidden function eliminates the need to set different MIDI channels on multiple MIDI devices, and the need to use the MIDI merge function.

This function is running in the Java environment. It will show in jOrgan what Java sees as devices available from whatever platform the system is running in.
There is a second selectable function to cache device numbers.
I believe this covers the aspect you raise.
I understand each USB port has a  unique identifier linked to the MIDI device behind the scenes in the operating system. This is used to create the unique hash number.
As long as each device is in the identical USB port it will maintain the same hash number on the next startup.

Regards
Rick

On 7 Jul 2016 7:06 pm, "Roy Radford" <[hidden email]> wrote:
Hi, Rick,

             Will a group of identical hardware items have the same hash number when you shut down and restart? 

  Does this apply to Windows or Linux? So far I've always used MidiMerge with all keyboards on different channels but jOrgan can show errors if the Linux hw:nn numbers come up in a different order.

   

      Have fun,

            Roy.


On 7 July 2016 at 04:59, <[hidden email]> wrote:
Hello Aaron

For each device connecting to a different keyboard instance in jOrgan you will need to set the MIDI device and the MIDI channel.  If your devices each have identical names (you will only see one) you will need to use the Enumerate MIDI function in jOrgan.  This is not selected in default but it seems more and more people are having trouble with this and have no idea the function is there.

View- Configuration - MIDI - Enumerate Devices.

This will put a hash and numeral against each MIDI device showing in the available devices list in jOrgan.  You will now be able to see multiple items listed and each will have a unique number.

Regards
Rick
 

On Thu, 7 Jul 2016 at 07:25 Sven Meier <[hidden email]> wrote:
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun

Sven


On 06.07.2016 22:21, Aaron Laws wrote:
I am beginning to replace the electronics in my organ (Allen 50s or 60s?), and I've done some work with jorgan to get it going. I have a good deal of this worked out, but one question remains.

I am using a c++ library to interact with some custom hardware in the organ. I have a separate java class (separate from my Transmitter) encapsulating interaction with this native library. Something like this:

Organ Hardware -> C++ library -> java class DeviceHandler -> Transmitter(s)

The DeviceHandler is a java singleton that spawns its own thread for communicating with the c++ library. The Transmitters register themselves with the DeviceHandler specifying which keyboard's events they want to receive.

In jorgan, if I make both virtual keyboards linked to my Transmitter type, they each get a new instance (which is fine). When a key is pressed on the swell, though, which Transmitter should transmit the keypress? In other words, how does each Transmitter know whether it's hooked up to the Great or the Swell?

I hope I've been clear; please let me know if I can provide any more information to clarify further. Thanks!

In Christ,
Aaron Laws


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape


_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user



------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user


------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user



------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Aaron Laws
In reply to this post by Aaron Laws
On Thu, 7 Jul 2016 at 07:25 Sven Meier <[hidden email]> wrote:
Hi Aaron,

I'm not sure I understand what you're trying to achieve.

jOrgan is based on Midi messages mainly, so the best solution for you would be hook your custom device into the Java Midi system.
Are you using your code and the custom hardware for keyboard input?
Perhaps you could show me some code (publicly available or via private email) so I can get a better understanding of your solution?

Have fun

Sven

To answer your question further, here is a quick tour of what I'm working on: https://www.youtube.com/watch?v=9M9fJ25XzWk 

Rather than scanning those black switches, I would like to expand the system to my Allen organ. Hopefully it will work?

In Christ,
Aaron Laws

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Sven Meier
Administrator
Hi,

 >To answer your question further, here is a quick tour of what I'm working
 >on: https://www.youtube.com/watch?v=9M9fJ25XzWk

cool, thanks for sharing!

Have fun
Sven

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Peter Hanlon
In reply to this post by Aaron Laws
Hi Aaron,

I am using Teensy 3.2 (TeensyDuino mode), a custom Arduino shield, and a couple of Midi DIN R5 boards to provide hardware connectivity into jOrgan. As you have discovered, Teensy is terrific because it has inbuilt quality MIDI support. The DIN boards have nothing per se to do with MIDI, and are just shift register complexes providing connection to individual keys. I made this PCB to help out with the mass wiring.

 
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Aaron Laws
On Sun, Jul 24, 2016 at 11:38 PM, Peter Hanlon <[hidden email]> wrote:
Hi Aaron,

I am using Teensy 3.2 (TeensyDuino mode), a custom Arduino shield, and a
couple of Midi DIN R5 boards to provide hardware connectivity into jOrgan.
As you have discovered, Teensy is terrific because it has inbuilt quality
MIDI support. The DIN boards have nothing per se to do with MIDI, and are
just shift register complexes providing connection to individual keys. I
made this PCB to help out with the mass wiring.

<http://jorgan.999862.n4.nabble.com/file/n4663313/IMG_1410_%281%29.jpg>

Thank you for the kind note. As you can see from my video, midi boards aren't actually necessary ;-) I'm not using teensy as a midi device (which seems possible based on other code examples I saw). I'm using "raw HID" -- just sending bytes over USB. These bytes are bitfields corresponding to each key's state. The midi messages are generated based on these bitfields in my jorgan addition.

Those printed circuit boards look sharp! For the final installation, I'm waiting for https://www.amazon.com/gp/product/B00FXHXSN6/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1 to arrive. ($2.92 free shipping can only mean one thing: 1 month from China!) Mine won't look nearly as good as yours, that's for sure. Do you have larger pictures of your PCBs, and pictures of the whole thing set up?

Thanks again
Aaron Laws

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

morcc
In reply to this post by Peter Hanlon
On 07/25/2016 01:10 PM, BILL wrote:

> Hi Peter,
>
> Have you actually gotten your Teensy working with your DIN boards? If
> you have, I'm interested because of my work
> on a novel key switch that uses a serial interface much like that of
> the DIN boards.
>
> As a hardware guy I'm comfortable with "bit-banging", but get
> frustrated by anything abstracted, even a Teensy.
>
> Here's a picture of my board to handle one octave---it works. You can
> find details by looking up US Patent No. 8319089.
>
> Bill
>
>
>
> On 07/24/2016 11:38 PM, Peter Hanlon wrote:
>> Hi Aaron,
>>
>> I am using Teensy 3.2 (TeensyDuino mode), a custom Arduino shield, and a
>> couple of Midi DIN R5 boards to provide hardware connectivity into
>> jOrgan.
>> As you have discovered, Teensy is terrific because it has inbuilt
>> quality
>> MIDI support. The DIN boards have nothing per se to do with MIDI, and
>> are
>> just shift register complexes providing connection to individual keys. I
>> made this PCB to help out with the mass wiring.
>>
>> <http://jorgan.999862.n4.nabble.com/file/n4663313/IMG_1410_%281%29.jpg>

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

ManregA.gif (58K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Peter Hanlon
In reply to this post by Aaron Laws
Hi Aaron,

My PCBs made in China too. Along the top of the board, I have 8 2X3 female sockets. I use 4 connectors within each, and have just paralleled the 2 leftovers. Each socket represents one note on 4 buses, such as the swell and great keyboards, pedals, and stops. Each connector (4) flows through a diode, and the 4 diodes in common to a line on the 10-way ribbon cable connector on the PCB.

Each PCB thus looks after 8 notes from 4 buses, and results in a single ribbon cable output. The physical keyboard wires are just push fit into the sockets, each keyboard having a common bus which is managed by the Teensy. 8 of these PCBs stretch across the physical keyboard forming a terminal block, in much the same way that the original (Schober) organ was arranged. The 8 resulting ribbon cables then connect to a port on the DIN board.

I have attached one variant of the Teensy (Arduino) program, as for a bit-banger it is the easiest approach.

Bill, Also noted your PCB. My original organ had 3 buses per keyboard, for early, middle and late key striking. I ganged these together. Your stuff seems to have elements of this?


Peter

schober_midiusb4.zip (14K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

morcc
In reply to this post by Aaron Laws
Hi Peter,

Thanks for posting what appears to be code plus a comprehensive description of what you're doing. The code part looks brief. Can't claim to understand it yet, but will study it, and if need be, I have a friend who's into that stuff.

My board was designed and laid out here, and was also made in China, where I've found a very good vendor.
 
The board has sensors for first and second touch, as is desirable for a theatre organ. There is no wiring to the keys because the sensors are magnetic. All the wiring is visible in the picture.

Each key has is drilled with two holes, and each hole fitted with a magnet and a set screw. When a key is depressed, its magnets move away from its sensors, first the first touch magnet, then the second touch magnet. Each set screw adjusts the touch point of one sensor.

Each first touch sensor is an input to a first touch shift register, and likewise for second touch sensors. Shift registers of each octave card can be concatenated with those of other octave cards.

Regards,

Bill 
 
 
On 07/25/16, Peter Hanlon<[hidden email]> wrote:
 
Hi Aaron,

My PCBs made in China too. Along the top of the board, I have 8 2X3 female sockets. I use 4 connectors within each, and have just paralleled the 2 leftovers. Each socket represents one note on 4 buses, such as the swell and great keyboards, pedals, and stops. Each connector (4) flows through a diode, and the 4 diodes in common to a line on the 10-way ribbon cable connector on the PCB.

Each PCB thus looks after 8 notes from 4 buses, and results in a single ribbon cable output. The physical keyboard wires are just push fit into the sockets, each keyboard having a common bus which is managed by the Teensy. 8 of these PCBs stretch across the physical keyboard forming a terminal block, in much the same way that the original (Schober) organ was arranged. The 8 resulting ribbon cables then connect to a port on the DIN board.

I have attached one variant of the Teensy (Arduino) program, as for a bit-banger it is the easiest approach.

Bill, Also noted your PCB. My original organ had 3 buses per keyboard, for early, middle and late key striking. I ganged these together. Your stuff seems to have elements of this?


Peter

schober_midiusb4.zip (14K) <http://jorgan.999862.n4.nabble.com/attachment/4663355/0/schober_midiusb4.zip>




--
View this message in context: http://jorgan.999862.n4.nabble.com/Jorgan-keyboards-tp4663244p4663355.html
Sent from the jOrgan - User mailing list archive at Nabble.com.

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Peter Hanlon
Thanks Bill. Nice idea, along the lines of a magnetic reed switch common in home security door opening detection systems.

My code is heavily commented not for any altruistic purpose, but it was handy to keep track of what each switch does, particularly for the stops. The program flow in the Teensy/Arduino environment is basically run a 'setup' routine once at power on, then run a 'loop' routine, and repeat that ad infinitum. So 'loop' detects any switch changes and writes out the MIDI commands.

Aaron, I will post the PCB Eagle files for the Key complexes and for the Arduino shield. The latter wasn't perfect
as I couldn't figure out how to define Vcc and GND (bus vs net element I think). All the holes connecting to the Arduino and the general layout worked well enough.  
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

Peter Hanlon
In reply to this post by Aaron Laws
Eagle definition files for my two PCBs are attached.
 

hanlon2.zip (50K) Download Attachment
hanlon1.zip (64K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Jorgan keyboards

morcc
In reply to this post by Peter Hanlon
Hi Peter,

There has been some time for study. It looks like what you have is more
complex than my likely path.
The matrix of four buses makes for some wiring. Since my sensors are "on
board" and shift register chips
are cheaper and easier to install than connectors and wiring, I get off
easy in the wiring department.

My choice is to concatenate the shift registers of all manuals, use a
fast clock, and have all the "buses"
dump their data as 64-bit chunks in a single-bit wide serial stream.
Since one manual uses 61 of 64 inputs,
hard wiring the 3 unused positions ON makes the end of each one-manual
chunk identifiable at start up
as long as no keys are pressed during initialization. I hope to change
MIDI ports (not MIDI channels)
between chunks. This will require a different set up routine. There will
be no need for bank selection, but
instead there will be a need to recognize the chunks and to parse their
data properly.

Unlike typical key switches which have low-mass parts that go "boing",
my key sensor output is linear and
closely related to key position. Schmitt trigger inputs are needed to
avoid electrical oscillations, but the
inertia of the keys and their low mechanical Q has made any mechanical
key bounce undetectable, so a
routine for bounce may be unnecessary.

Originally I considered offering such cards for sale, but investigation
brought to light a woeful lack of
standards for key lever spacings that could turn such an offering into a
field support nightmare. Since I'm
also working on mechanically improved claviers, including such cards
within claviers looks more practical.

Regards,

Bill



On 07/27/2016 02:21 AM, Peter Hanlon wrote:

> Thanks Bill. Nice idea, along the lines of a magnetic reed switch common in
> home security door opening detection systems.
>
> My code is heavily commented not for any altruistic purpose, but it was
> handy to keep track of what each switch does, particularly for the stops.
> The program flow in the Teensy/Arduino environment is basically run a
> 'setup' routine once at power on, then run a 'loop' routine, and repeat that
> ad infinitum. So 'loop' detects any switch changes and writes out the MIDI
> commands.
>
> Aaron, I will post the PCB Eagle files for the Key complexes and for the
> Arduino shield. The latter wasn't perfect
> as I couldn't figure out how to define Vcc and GND (bus vs net element I
> think). All the holes connecting to the Arduino and the general layout
> worked well enough.
>
>
>
> --
> View this message in context: http://jorgan.999862.n4.nabble.com/Jorgan-keyboards-tp4663244p4663389.html
> Sent from the jOrgan - User mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity planning
> reports.http://sdm.link/zohodev2dev
> _______________________________________________
> jOrgan-user mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/jorgan-user
>


------------------------------------------------------------------------------
_______________________________________________
jOrgan-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jorgan-user