Ebay Classic organs

Collapse

Announcement

Collapse
No announcement yet.

Beginner MIDI project

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    If you can find a MIDI encoder that will handle 12V inputs, it would be as simple as making connections from the pads where the wires from the keys are soldered to the Rodgers PCB to your encoder inputs plus the 12V from the bus rod. It would be important to keep the Rodgers encoder in the circuit as it provides 12V and the resistors to pull the keying voltage back to 0V when a key is released.

    If you're willing to gut the Rodgers keying circuitry, unsolder each key wire from the PCB and connect it to the corresponding encoder input, then reconnect the wire from the bus rod to the encoder's key bus output. The piston buttons use a circuit similar to the keys, just feeding different inputs.

    --- Tom
    Rodgers 660 with additional analog rack sets (practice), 36D/C in digital conversion, Yamaha CVP-107

    Comment


    • #17
      Here are a set of boards with 12v inputs for a couple of manuals. The top board is an encoder/decoder that uses the Teensy 3.6. The larger boards are 64-input SPI boards that handle one manual each using 12v keying as the default mode. The bottom left board handles 32 stops, Allen drawknobs in this case where we reuse the Allen capture supply and the drivers which are attached at the back of each drawknob. I also show a small SPI buffered level shifter that helps with longer cable runs and in cases where it is desirable to run the SPI board at 5v instead of 3.3v.

      I keep promising to post complete info on the boards and I will !! The green I/O boards can be ordered assembled at great prices from JLCPCB. The encoder requires a Teensy at about $30. It's available from OSH Park and I hope to get a version ready for order from JLCPCB. In either case the encoder PCB is not assembled except I may have the voltage regulator and open collector driver IC mounted in the JLCPCB version. Gerbers, schematics, and parts lists are all available. Check my contact info on my web site below. Once I get all this properly posted there will be no need for me to be in the loop unless there are questions.

      Just as an example, 20 assembled 64-input boards ran less that $100 delivered by DHL. I ordered lead-free which is only a little more expensive. Small quantities are a bit pricier per item of course. It would certainly be possible to do a complete medium sized Allen or Rogers console for $150 to $200 plus perhaps a few incidentals like power supplies. A little more to include driver boards if doing a Rodgers with conventional SAMs as the Power MOSFETS get expensive.

      Click image for larger version

Name:	20200430_103314.jpg
Views:	259
Size:	172.8 KB
ID:	728952
      Attached Files
      http://www.kinkennon.com

      Comment


      • myorgan
        myorgan commented
        Editing a comment
        Thank you for sharing these boards, John. It's making me dream of ways I can use them in my applications!

        Michael

    • #18
      I finally had some success today on my MIDI part of this project anyway. I ordered an Arduino Leonardo which provides MIDI USB support without having to use a serial to MIDI bridge on the computer. Ultimately I want to have a foot switch-controlled MIDI device which will send a MIDI message to my VPO I can use to activate the Next button on the combination sequencer.

      I don't have a foot switch yet, but I do have an ultrasonic sensor which came with the starter kit I got from Elegoo. So I thought I could use a motion sensor activated by my foot to send the message.

      I've created the circuit on a breadboard using a MIDI USB library I was able to create a very simple sketch to send the MIDI message.

      I plugged the USB from the Leonardo into the USB hub and the PC recognized it as a MIDI device! I used GO auto-detect feature, moved my foot in front of the sensor, and that was all there was to it. Now all I have to do is move my foot whenever I want to change combinations without moving my hands off the keyboard.

      Of course it isn't ideal. I do have a foot switch on order. Also I have a breadboard and a micro controller on the floor with jumper wires. Not very pretty or durable. But before that becomes an issue, maybe I'll have some success re-MIDIfying my Rodgers console.

      Comment


      • jbird604
        jbird604 commented
        Editing a comment
        That is awesome! Glad it worked out so well for you. You'll be the resident MIDI pro soon!

    • #19
      The 830 is supposed to have a sostenuto function, and has a kick switch mounted on one of the expression pedals to perform this function. Look for it.

      In a PM you asked "Specifically I'm wondering if I can decode the output from the board that handles the keyboards using the existing ribbon connectors from the boards without having to do a ton of soldering." Rodgers data stream was proprietary and did not follow any sort of a standard protocol. So I don't know of any way to tap into it without a custom designed circuit. Surely designing that is more work than wiring the MIDI input board.

      The data scheme of this organ and others of the series for input data is a 3-wire connection providing clock, data, and strobe using 8-bit shift registers wired in sequence; for the input stream like keyboards the shift register provide parallel inputs from the keys, the clock moves the data through the serial stream, and the output comes on the data line. The strobe signal tells the shift registers when to bring the data in from the parallel inputs. Changes in the data are ignored when the strobe is not active.

      Comment


      • tbeck
        tbeck commented
        Editing a comment
        Thanks Toodles. I have a basic idea how shift registers work, and I realize it would be too much work to figure it out. I've never done any soldering and I don't know how long it would take me to become proficient enough to be able to do 2 manuals and pedal. Maybe I can hire someone.

    • #20
      I realize this should probably two threads: midifying the Rodgers, and working to provide some additional MIDI controls to my two-keyboard alternative setup.

      In any case, I've been working on BWV 590, the Pastorale in F. Only the first part has a pedal part. It's very simple, mostly pedalpoint with very long held notes. I don't have a pedalboard with my two MIDI keyboards, so it is frustrating not to be able to play the entire piece properly. Well, outside of my poor technique, that is.

      While waiting for a foot switch to arrive, I came up with the idea of using the Arduino as a MIDI controller to "play" the pedal line in the first part. As proof of concept, I wired a simple button to a breadboard. In the program, I created an array of notes corresponding to the pedal line (there are only 15 notes). So when the button is pressed it will send a MIDI note off event for the current note (obviously not necessary for the first note) and send a note on event for the next note in the array. When it reaches the end, it cycles back to the first. It just requires a momentary change of the switch to activate, so it isn't necessary to hold down the button, it plays the note until the next keypress. A long keypress (2 seconds) resets the sequence so it can be started again from the beginning.

      I've plugged this into the PC, set the pedals to listen to MIDI events from the pedal, and it works! Obviously it's not practical using the button, but when the foot switch arrives, it should work very well. I think I'll try to find some other repertoire that have very simple pedal lines. Now I need to find a way to store a set of sequences so I don't have to reprogram the board every time I want change sequences. Perhaps leave the button to cycle between sequences and use an LCD to display a number, or even a name?

      Well, it's keeping me occupied anyway.

      Comment


      • #21
        My foot switch arrived. I have a question about the wiring. It has three wires: black, white and red.

        My circuit will use the switch as normally high. Which wire is which? Is the white the common wire that I will attach to the ground pin? If so, then I assume the red wire will be connected to the input pin.?

        Any help would be appreciated.

        Comment


        • #22
          Ring it out with an ohm meter. Connect the leads to any two of the wires, for example, black and red. If you have continuity with the switch open, one of those wires is common and the other is NO (normally open) with the white wire NC (normally closed). If you don't have continuity with the switch open, close the switch. If you have continuity one of the wires is common, the other is the NO contact and the white wire is the NC connect. If you don't have continuity with either the switch open or closed, the third wire, white, is the common wire with red and black being the NO and NC contacts. To find out which, move one of the leads to the white wire and determine whether the black or red wire has continuity.

          Once you've determined the wiring of the switch, connect the common wire to ground and the NO wire to the switch.
          -Admin

          Allen 965
          Zuma Group Midi Keyboard Encoder
          Zuma Group DM Midi Stop Controller
          Hauptwerk 4.2

          Comment


          • #23
            Thank you admin. That's a great response. Have you ever written technical manuals?

            Comment


            • Admin
              Admin commented
              Editing a comment
              Thanks. Back thirty years ago when I was writing and publishing consumer software, and when software came with instruction manuals, I wrote the user manuals as well. As the tech support questions would invariably come my way, I learned pretty quickly how to better structure help. Being a software programmer, breaking down a problem into discrete steps goes with the territory.

          • #24
            Time for an update on the MIDI project. I've made a foot switch activated, remote-controlled dual mode MIDI controller with LCD using an Arduino Leonardo.

            In combination mode, the foot switch activates the "next" combination in the combination sequence. The remote controller can be used to set a specific combination number (from 0 to 999) or step forward or backward through the combinations. The display indicates the current combination number. As of now, the MIDI controller only sends, so if the combination setter panel on the VPO is used, the LCD doesn't reflect the change.

            My current VPO set up is two keyboards only, no pedals. So I created a foot switch controlled pedal sequencer. I create the sequences by capturing the MIDI output from a virtual keyboard in a MIDI monitor and saving the output in a text file. I wrote a little python script which reads the text file and creates another file with a comma-separated list I can pasted into the controller source code. The LCD displays the title of the sequence and the current note and pitch.

            The foot switch sends a MIDI note on event when the switch is activated a MIDI note off event when the switch is released and moves the sequence pointer to the next note. So in use, a note is played as long as the foot switch is down and stops playing when the switch is released. The remote controller steps through the sequences (I have seven so far) and also steps forward and backward through the notes to facilitate practice/screwups. I can also reset the current sequence to note 1 if I want to start over again.

            One problem with only having one switch is that it has to be completely released and then depressed to change notes, so it's hard to get a good legato. I've ordered two more switches. One I will add to the controller so that I can use both feet to facilitate a better legato, and the third to act as a dedicated combination sequence activator so that I can change combinations even when using the pedal sequences.

            One major drawback I have right now is that I don't have any external storage so the pedal sequences are hard-coded into the application. If I want to add a sequence, I have to update the code, recompile and flash the micro controller. Also, the internal memory on the Arduinos are quite limited. I'm thinking of adding an SD card reader to make the system more flexible.

            I'm enjoying listening to music with pedals again, even though I know I'm "cheating" it's better than nothing. It's also been a really fun adventure. I'm learning about electronics and I've gotten back into programming again, which I haven't done in over 10 years, other than writing some simple python scripts. The C language is definitely a pain, though. However, as i suspected the main difficulties have been dealing with the mechanical aspects of this project, rather than the virtual ones. Just connecting the foot switch was a big stumbling block. When I received the switch, I didn't have any proper tools, so I ordered a wire stripper/cutter, and some crimping pins. I also ordered a soldering iron with accroutrements but it seemed like crimping would be simpler. Well, without a crimping tool, it isn't so easy. I used needle-nosed pliers, and it works, but it's ugly.

            My next step is to practice soldering so maybe I can begin work on reMIDIfying my Rodgers console. I'll create a new thread for that when I start to get into it, because it really is a separate project

            Comment


            • jbird604
              jbird604 commented
              Editing a comment
              Wow, what a project! Thanks for documenting all this, and I'm sure many of us will benefit from your experience. Keep up the good work and keep on reporting.

          • #25
            I've been obsessed with keeping the combination number shown on GO combination setter and the MIDI controller in sync. It's not really important, but it seems sloppy to have them out of sync.

            So I set out to see if I could get the combination number from GO and as it happens, the label on the combination setter panel sends a sysex message when it changes.

            It seemed like it should be pretty easy to read that sysex and then update the lcd on my controller. Well, it turns out the reading MIDI messages is much harder than sending them. The MIDI library I'm using only reads packets of four bytes at a time, so the entire sysex message from GO has to be assembled and then parsed to get the combination number. Eventually I was able to read the combination number when I changed it in GO, but I was having no luck when I changed the combination from my controller. Here's the combination setter panel:
            Click image for larger version

Name:	combination_setter.png
Views:	155
Size:	168.2 KB
ID:	733227
            In order to set the combination from the controller, I enter numbers on the remote control and then activate the appropriate buttons on the setter panel. So if I want combination 865 I activate the +100 button 8 times, the +10 button 6 times and then the _5 button. After every one of these "taps", the label on the panel changes and triggers a sysex event. So I wasn't parsing the MIDI stream properly and ended up getting the wrong (or no) number.

            Eventually I figured out that I had to read the MIDI buffer a specific number of times for that particular message, rather than checking to see if I had received the last packet and voila, success. The MIDI controller and GO panel are now in sync.

            My next phase is to add the two additional foot switches. My hold-up there is that I want to solder the wires to a connector rather than use a crimping pin but my soldering woes are preventing me.

            Comment


            • #26
              Well it looks like my burgeoning career as a solderist might be over. Today I wanted to start practicing with the conical tip. So I removed the screw holding the tip in the iron and replaces the chisel tip with the conical tip. I finger fumbled the screw 2 or 3 times and the last time it flew away. It is a very tiny screw, but it is black and I have a white tile floor. So it should be no problem to find, right? Hah. It wasn't in the immediate area and after expanding my search with no success, I moved a few pieces of furniture around and swept everything into a dust pan. It's been a while since I cleaned this room, so there was a fair amount of dust and whatnot. I was going through that dustpan like a 49er but I didn't find the screw. I didn't find any gold either, but I had just about as much chance as finding the screw.

              So I'm pretty discouraged. If I'm too thumb-fingered to even put the tip on an iron, I don't think I'm going to be able to do any kind of fine soldering work. I also wanted to add a card reader to my MIDI project, but the breakout board I bought doesn't have the header pins soldered on to the board, so I wanted to see if I could get that to work, but now I don't even have a usable iron. I've done a quick search to see if I can find a replacement screw but so far no luck.

              Maybe it'll be cheaper if I pay someone's airfare to come to Puerto Rico when it's safe to travel and wire up my console.

              Comment


              • tbeck
                tbeck commented
                Editing a comment
                For sure I'd rather believe in the multiverse than gremlins or poltergiests.

              • jbird604
                jbird604 commented
                Editing a comment
                That is a bummer. If you have a well-stocked hardware store they MIGHT have the correct screw in stock. It could even be longer and have a different head, as long as the threads are correct so it will go down in there and hold the solder tip tightly in place. (And while you're at it, get several of the little buggers in case you lose another one!)

              • myorgan
                myorgan commented
                Editing a comment
                I've had the screw holding the tip on come loose when the iron heated up. I think, perhaps, it contracted when heated–but that's the reverse of what it's supposed to do when heated.

                Michael

            • #27
              I bought a mini SD card reader to add to this project. I wanted a way to be able to add pedal sequences to the controller without having to reprogram and reflash, On top of that, the Arduino Leonardo has very limited memory, so I couldn't store very many of the sequences on-board anyway.

              I've been playing around with the code for reading the sequences from the SD card. There is a library which makes the code relatively straightforward, however, as it happens, it also uses a fair amount of memory. This doesn't leave much overhead for storing even one relatively long sequence. I have the idea that I can read the sequence from the card one note at a time and then play it. So basically the app would fetch the note just in time to be played, then cache the next note to be played. I have this algorithm working, but I haven't yet tested it to see if the read and processing cycle is fast enough to use in real time. The deficiency of memory also means that I can only store a few sequence names in memory to scroll through to select the sequence to be played. Since I want more sequences than I can even hold the names of in memory, I have to scroll through the SD card directory and display the name. However, the card library only provides the ability to scroll forward through the directory, at the end of which, it is possible to "rewind" and start at the top once again. This is not really desirable.

              So I decided to upgrade my controller board. I bought a Teensy 4.1, which has a lot of memory and a built-in card reader among other goodies. I also bought a 2.8" color touchscreen display to improve the interface for my project. I haven't received the board yet, but I'm looking forward to using it.

              Comment


              • #28
                Time for an update. I migrated from the Arduino Leonardo to Teensy 4.1. I'm also using a 3.2" (the less said about my first one, the 2.8", the better). I actually managed to solder on the header pins without frying the board, so that was an accomplishment. The Teensy 4.1 has a mini SD card reader onboard, which I'm using to store sequences, and now, combination data.

                Upon booting, the program loads all the sequences file names and titles loaded on the SD card. Sequences are selected by scrolling through the list using a remote controller. As the sequence information is displayed on the screen the program loads all the note data into an array, which is played by a right and left foot switch. Pedal notes play for as long as the switch is down, thus facilitating legato and playing two notes at once. Keys on the remote controller step through sequence, forward or back. Pressing '0' on the controller resets the sequence to the beginning. The sequence "wraps around" to the beginning when the last note is played. Combinations can be selected by number from the remote controller. The program reads MIDI sysex message from GO in order to keep the combination number displayed on the controller in sync. So if I change the combination from the controller, or from the GO interface, the correct number is displayed on the controller.

                I've been thinking about implementing my own combination/capture system so I've add some functionality to this program. If a combo files exists for the selected piece it is loaded and can be stepped through using a middle foot switch. The combination is activated when the sequence is loaded so it is possible to start playing without looking up a combination and entering by hand. When the last combination is reached after stepping through, no more changes are made if you press the middle switch by mistake. The combinations are reset to the beginning when the sequence being played is reset. The system I'm playing around with right now, at least for the Bach works I play, is that the BWV number is the default beginning combination. In order to avoid running out of gaps between BWV numbers, I choose sequential numbers for combinations starting with 1. Of course many of the pieces don't need registration changes, but I can add as many changes into the combination file that I need. I keep note of the last number used and start the next set of combinations with a small gap in case I want to add some registration changes to an existing work. This system allows me to set up combination sequences that are not necessarily contiguous. One of the frustrations of using combination sequences occurs, at least in GrandOrgue, when you want to add a registration in the middle of a sequence. This displaces all of the subsequent combinations by one and your carefully documented combination settings are invalidated if you don't remember to go to the end of your sequence and then delete a combination. Which I've done on many occasions. With my system, the combination numbers are mapped into an array and actuated with the middle foot switch. This system is not without it's tedium, of course. When I'm creating the combinations, I have to keep track of which numbers I've used and them create the combo document on the SD card. I've started with a fresh slate, so I intend to use sequential numbers to make it easier to enter and keep track of. I'll use a range of numbers for the initial for the default combination for each piece, and then subsequent numbers can be used for any registration changes. Since most of Bach's organ music falls within a range of BMV numbers, this won't be a problem. I think I'll save the Bach combinations as a separate file so that I can use other ranges for different composers.

                Eventually I would like to automate creating the combo file and keeping track of the last number used in code by possible starting a capture session, then stepping through the combinations as the program stores them and then rights them out to a new file on the SD card.

                To that end, I want to use the touch screen for entering the filename and title for a work as well as initiating the capture session, etc. I've been experimenting with using the touchscreen for input, and it's fairly tedious. I'm using a library called GUIslice which provides a framework for adding visual controls, such as listboxes, sliders, number and alpha keypads, etc. It has a tool to use on the desktop which is used to create your GUI. You can then export the code created and use it to add event handling, etc. It works pretty well so far, but I'm just starting out with it.

                Since the program has grown and gotten more complex the limitations of the Arduino IDE has become apparent. I'm using Platformio with MSCode as the IDE and when it works, it is a much more pleasant experience than the Arduino IDE. Unfortunately, I cannot get the GUIslice code to compile or work properly with Platformio. It works fine in the Arduino IDE, but with Platformio it either won't compile in one configuration, or in another, will compile but won't accept touchscreen input. If anyone has any experience with this platform, I'd appreciate some help.

                Here's the display. It's not elegant, and does not have any of the GUIslice controls.
                Click image for larger version

Name:	MIDI controller_forum.jpg
Views:	45
Size:	869.7 KB
ID:	742527

                Comment


                • #29
                  I removed the circuitry from a Yamaha Electone organ from the 70’s, and rewired it to work with a midi controller from Midi Boutique (Largonet). It is a time consuming project, but I am very happy with the results. This would probably be more feasible than trying to get the Rodgers working again. I have looked into getting an expression pedal working with an arduino board, and I even bought all the components I need to do it, but lately I have been focusing on other projects. I feel like learning how to program the arduino is going to be time consuming. There are some midi foot switches available, some relatively inexpensive that I would consider while you look into getting the Rodgers working again.

                  Comment


                  • tbeck
                    tbeck commented
                    Editing a comment
                    Well, actually I made my own MIDI foot switches for this project. I don't really have access to other consoles or electronic organs with AGO specs. So it's either start from scratch and build one (which I don't really have the woodworking skills to do) or fix the one I have.
                    Last edited by tbeck; 09-21-2020, 06:16 AM. Reason: Fixed a typo.

                • #30
                  Ah, I somehow missed page 2 of this thread. Sorry, new to this forum. Based on what I have read of your accomplishments with the MIDI board on this thread, you shouldn’t have too much trouble taking out the Rodgers electronics and adding your own. You could order a pre-made board from a company like Midi Boutique, but given your skills already with the teensy, it shouldn’t be too hard for you to midify the whole console with multiple teensy’s. If you do pull out the existing circuitry, I would hold onto it. I took the existing circuitry to the recycling station, only to discover later that some of the electrical components I discarded would have been useful with other aspects of the project. You might be able to reuse the existing wiring harness, with either a converter board for the teensy, or make your own converter board using a proto board. You can mount circuit boards to wood using metal standoffs and small screws. I would encourage you to keep working on it, you would be amazed what you can accomplish with persistence!

                  Comment

                  Working...
                  X