I bought a GSA-1 box on eBay 6 years ago, pretty cheap, just to see what it did. The answer was: very little, without a Farfisa Syntaccordion - these still retail at hundreds, or even thousands, of pounds as they are pretty decent acoustic accordions, and also easily converted to Midi (e.g by Scotland Accordions/ MidiRig). The service manual (with schematics) and the user manual are both available for download pretty cheaply on eBay, so I was able to analyse how the thing worked - it used serial communications from the accordion, read into big SIPO registers on the GSA.
Initially I thought I'd hack directly into the box somehow, but by chance I came across a previous hack by someone which included the top and electronics of a Syntaccordion. The next challenge was to find a suitable cable - the original cables are "unobtainium". Some research indicated that it used the IEEE488/HPIB/GPIB format sockets, and short GPIB cables are available cheap-ish on eBay. An alternative is to use crimp-connectable plugs and sockets - I found some online - or soldered plugs (from RS). PCB-mountable sockets would have been nice, but these connectors use Centronics spacings, which do not sit in standard stripboard, and breakout boards are quite expensive.
Although my top-of-Syntaccordion just made a horrible racket when connected, the racket changed in a repeatable way when I threw some of the rocker switches, so it was clearly working up to a point. I was therefore able to monitor the signals between the Syntaccordion and the box. After a lot of experimentation I arrived at an Arduino program capable of driving the box, using also a line driver buffer chip. I used the same 4049 inverting buffer as in the Syntaccordion, though I could perhaps have simplified the hardware and software by choosing a non-inverting chip. I did try driving the box directly from the Arduino, but it didn't work too reliably.
Initially I intended to make all of the Syntaccordion switches in hardware, reading them using an Arduino Mega or Due, but for coding experience I wrote a Processing sketch to emulate the switches on a touchscreen PC instead and this worked so well I never bothered with the hardware version.
The obvious way to communicate between the Processing PC program and the Arduino driver circuit was via Midi, with the added possibility of being able to control the GSA box directly from a Midi keyboard controller.
It is possible to get nice organ, piano and harpsichord sounds from the GSA box just using the Arduino, but the mono and bass sounds will not work at all without connecting some potentiometers and the strings and brass lack the "brilliance" available via potentiometers. I therefore wired up a set of linear rotary pots (cheaper than the sliders on the original Syntaccordion). Again, a fair bit of trial and error was required.
The end result was interesting - a fusion of several different better-known Farfisa product lines.
In the 70s, Farfisa's traditional organs were becoming less popular with live performers and they ventured into synthesizer territory. Their last high-end organs, the late Professional and VIP series, produced nice Hammond organ sounds and also electric pianos. They then produced separate synth models - the Syntorchestra, Soundmaker and Polychrome - which majored on polyphonic string synth voices but added some monophonic sounds and effects. Presumably, they wanted to avoid cannibalising their organ sales by including organ voices too.
Separately, they made electronic accordion products - first the Transicord, then the Transivox, and finally the Syntaccordion. The Transicord was essentially a Farfisa Compact organ in a smaller footprint. The Transivox combined a good acoustic accordion with electronic organ sounds and some effects (glide and repeat).
But the Syntaccordion provided the same high-level organ sounds as the Farfisa Professional 110 (minus drawbars), the same analogue string machine as the Soundmaker and Syntorchestra-4, and some of the same mono synth voices and effects (minus the attack component of ADSR and some other elements) as the Soundmaker, Syntorchestra and Polychrome. In some ways, it therefore represents the best combination of Farfisa features to be found in a single device. This is understandable, as the GSA box provides more space than any keyboard or accordion could - it was possible to put more in, and they did so.
This project has gone as far as I have time to take it. I have got nothing interesting or useful out of the Left Hand (bass and chords) section. My test runs produced some low volume bass guitar sounds, and single notes in response to setting the chord switches - whether this is a misunderstanding, hardware or software fault at my end, or a hardware fault in the box, I just can't tell - let me know if you can see the issue. But, frankly, as a keyboard player I don't mind too much either way.
Some future directions would be:
(1) Adding Midi via USB. I have implemented with an Arduino Leonardo to permit me to send Midi using Hairless/LoopMidi if I can be bothered to add the code.
(2) Adding true USB Midi. I think this would require an Arduino Due with host shield or a Teensy. Not a big priority but would be better.
(3) Implementing separate Midi channels for mono, poly and bass/chords. You could then use Program Change messages to control the GSA.
There now follows some analysis of how the Syntaccordion/GSA works - you don't need to read this to implement the project, it's just for interest.
What the Syntaccordion DidThe accordion had 3-and-a-bit octaves of keys (41 total) for playing with the right hand, plus bass note and chord buttons. Presumably one octave of bass notes. seems to be total 5 octaves 60 notes
On the generator, notes include
- B3-C6 (4 octaves treble, 48 notes)
- B2-C2 (I octave bass)
It had reeds and could be played as a conventional accordion. There were 7 internal microphones which went out to a jack socket, and also to a line on the plug connector for playing acoustically through the box.
The box acted as a +/-12Vdc power supply for the electronic side of the accordion, like the Transicord and Transivox predecessors.
Beyond this, and unlike its predecessors, most of the communication between the box and the accordion was by serial binary data. The interface used 3 signals: a DATA line sending binary data, a NOT CLOCK line sending clock values for clocking the data into shift registers at the GSA box, and a TRANSFER ENABLE (TE) line which, after all serial data had been sent, suspended serial input and made the shift register data available as parallel outputs. For details, see the datasheet for the Nat Semi MM 5559 chip. I found that the Syntaccordion was running at a clock cycle time of about 20uS (50KHz) so that each cycle of 132 data bits took under 3mS - negligible in terms of latency, and capable of being executed - just about - by the lowest-level Arduino boards. I also found that the GSA box was pretty insensitive to speed. The datasheets suggest that the chips could run several times as fast. On the other hand, running a test at a tenth of the speed also worked. The GSA box runs off clock transitions rather than synchronising frequencies, so you can go (almost) as slow as you like.
The remaining lines were for the analogue readings which needed to be communicated from the sliders and knobs on the accordion, each of which got its own parallel line. Some carried voltages, divided between +12V and GND or -12V and +12V. Others were variable resistances. Most used 10K slider potentiometers.
Finally, it is perhaps worth mentioning the Farfisa volume pedal. This works like other Farfisa (and, generally, organ) swell pedal - by supplying current to a bulb, and responding to a photoresistor which is obtruded by a diagonal blade actuated by the pedal so as to control the amount of light passing - to give a nice clean volume control. The pedal also contains a button which controls either the GLIDE function or, if GLIDE is (un)selected, SUSTAIN.
Further information on this project, including demos of the sounds, is at
UPDATE: I realised that you could add a Gate output, to allow use of an external ADSR on the mono voices (if you turn up the decay to max). So I have added a resistor, LED and 3.5mm socket to the component list, and uploaded revised schematic and code which output the gate signal (5V not retriggering) on pin 9 to a socket, together with an LED for feedback.
Comments
Please log in or sign up to comment.