• Enraged
  • Embarrased
  • Drunk
  • Down
  • Depressed
  • Crying
  • Crazy
  • Cool
  • Cocky
  • Bemused
  • Awesome
  • Annoyed
  • Angry
  • Amused
  • Friendly
  • Geeky
  • Godly
  • Happy
  • Hateful
  • Hungry
  • Innocent
  • Meh
  • Piratey
  • Poorly
  • Sad
  • Secret
  • Shy
  • Sneaky
  • Tired
  • Wtf
  • Page 1 of 4 123 ... LastLast
    Results 1 to 10 of 33

    Thread: Williams SS sound board synth

    1. #1
      kapGo's Avatar
      kapGo is offline
      is solid stateless
       
      ----
       

      Join Date
      Apr 2017
      State
      Victoria
      Posts
      37
      Mentioned
      0 Post(s)
      Quoted
      5 Post(s)
      Australia

      Williams SS sound board synth

      Hi there, i am currently playing around with some Williams Sys 4-7 sound boards and various ROMS all with the idea of turning them into some sort of 8 bit synthesizer. Not sure if this is the place to post this, or even if theres any interest in this, so I will just put a pic here and if anyone's curious then I can post some more.
      ta,
      kapGo
      2card-breadboard.jpg

    2. #2
      Johns-Arcade's Avatar
      Johns-Arcade is offline My quest awaits!
      is a Homepin authorised parts
      stockist
       
      Meh
       

      Join Date
      Apr 2006
      State
      SE Queensland
      Posts
      3,763
      Mentioned
      158 Post(s)
      Quoted
      719 Post(s)
      Australia
      Looks interesting, but I'd like a lot more info on exactly what you are doing. Maybe even a Youtube vid

      Regards,

      Johns-Arcade.

    3. #3
      BIG Trev's Avatar
      BIG Trev is offline
      is joining the Dark side
       
      Awesome
       

      Join Date
      Feb 2015
      State
      NSW
      Posts
      2,491
      Mentioned
      88 Post(s)
      Quoted
      504 Post(s)
      Australia
      More details please.
      Cheers Trev

      Sent from my SM-G930F using Tapatalk
      It doesn't hurt to ask.

    4. #4
      kapGo's Avatar
      kapGo is offline
      is solid stateless
       
      ----
       

      Join Date
      Apr 2017
      State
      Victoria
      Posts
      37
      Mentioned
      0 Post(s)
      Quoted
      5 Post(s)
      Australia

      Well i got interested in this from the Williams sounds that came out of the classic arcade games of the E. Jarvis era. So i been looking into the assembly and trying to figure out the synth routines used and hopefully one day being able to expose the parameters externally. From what i can figure there are 9 vector table synth subroutines that can be feed parameter(s) which drive all the sounds coming from the 2716 sized roms. Getting a pukka 6802 compiler working correctly on my PC is taking a while too but i have an editor version and a runnable version. But I really like the sound board (and mpc) design and capabilities from this era.

      With the boards only capable of making one sound at a time (single voice) I have figured that 4 boards together would make an interesting musical instrument of sorts. Plus, I don't know if anyone is aware but these boards have a knock out sound. I demoed 2 boards at a chip tune gig a couple of months ago (using the Defender pin ROM and pinball ROM 1) and the sound was described as "punchy", which is just how i like my audio.

      So along the way I am building a python controller running on a Raspberry Pi and a hardware controller with 3 banks of switch matrices. When this all works i intend to get back into the assembly side of things again especially now that i have rom burning sorted out.

      Heres a pic of figuring out how to trigger the sounds: each byte sent only uses 5 bits to generate a specific trigger. I havent yet connected up the last pin. The RaspPi is connected to an MCP23008 i/o expander which then addresses a nand/and gate that grounds which ever pin combination desired.
      1card-test-breadboard.jpg

    5. #5
      kapGo's Avatar
      kapGo is offline
      is solid stateless
       
      ----
       

      Join Date
      Apr 2017
      State
      Victoria
      Posts
      37
      Mentioned
      0 Post(s)
      Quoted
      5 Post(s)
      Australia

      With the Pi controlling the multiplexer and grounding pins when a particular byte is sent, I needed some useful way to control event triggering (I won't say musical...) and it seems that most libraries for the Pi are either in C or python. I've never programmed python before so I figured it would be a good chance to learn. So with the libs python-rtmidi, GPIO and tkinter a midi interface of sorts is possible. Each midi note is assigned a hex value that corresponds to a particular pin combination (byte). Ideally control change messages will be assignable to parameters and one to overall volume would be nice as some sounds are quite loud compared to others. All sounds are basically one shot hits that play out until they are finished or interrupted by another sound, except in the case of several later ROMs there are 1 or 2 sounds that are continuous.

      So far on all the ROMs I been using they have 11000100 (0x23) as a reset/stop all sounds. This is useful for the sounds that are used in some pinballs where they have a continuous but evolving sound, such as in Blackout that has a heartbeat type sound that increases in frequency with each successive trigger. On this ROM there is another background sound that evolves and also requires 0x23 to stop it - I describe this sound as "2 tone osc low endless multi-tap speed up" which if anything demonstrates how hard it is to meaningfully describe sound with words.
      1card-midi-kybrd.jpg

    6. #6
      kapGo's Avatar
      kapGo is offline
      is solid stateless
       
      ----
       

      Join Date
      Apr 2017
      State
      Victoria
      Posts
      37
      Mentioned
      0 Post(s)
      Quoted
      5 Post(s)
      Australia

      This is just a little post about the python controller. The Rasp Pi uses the SCL, SDA lines to address each mcp23008 IC that is for a given sound board. These in turn are connected to two CD4066B gates that AND the common ground to the pin trigger selected. Its probably a bus speed thing but the controller works best (ie the sound is triggered cleanly) when a 0x00 is sent prior to the pin select, such as:
      for card in CARD_ENUM:
      bus.write_byte_data(card, gpio_register, 0x00)
      bus.write_byte_data(card, gpio_register, pinHex)

      but it may be that the pinball/game ROMs include this as well, will have to look into that later.

      I did try to get a tracker like interface going but the gui lib used seems to not like the way i implemented it, so instead of a playhead that advances per tick that shows the pin hex triggered, it just has a long list of the triggers. Tempo is controlled by a crappy timer that is just a tick with a sleep: not the best at all but it works for now. The 680x mpu on the sound card is plenty fast enough to keep up with the Pi, i think its clocked at just under 1 mHz, but it would be nice to get a better and MIDI equivalent clock running soon. Programming currently takes place via a win 7 laptop running an Xming server and piping geany and the controller windows to the laptop via ssh. The pic is of the dev version of the controller as I explored getting all the bits working together and profiling the performance.
      Pi-python-controller.jpg

    7. #7
      kapGo's Avatar
      kapGo is offline
      is solid stateless
       
      ----
       

      Join Date
      Apr 2017
      State
      Victoria
      Posts
      37
      Mentioned
      0 Post(s)
      Quoted
      5 Post(s)
      Australia

      After testing the various ICs on the breadboards it is time to make a controller card out of some pcb experimenter's boards from jaycar. I tried to place everything logically and reasonably close but with enough room to probe and get fingers in to remove various components. The mcp23008 is socketed on the left of the pic, with power, ground, SCL,SDA and address lines visible. The other 2 sockets are for the CD4066B gates that will be connected to the pins on the sound board. The middle two connectors on row 25 are distributing the ground from the sound board to various inputs on the gates that, depending on the state, form a connection with one of the sound board pins. Row 7,8 have the serial bus lines that have a second connector so that other controller cards can be daisy chained, 5v power is also distributed in this way. Presently the Pi header for 5v and ground are being used to power the cards.

      The second pic is of the solder side and is there to show the way i connected everything and also how fugly the solder slubs look. I dont know if they are called slubs but i have always called them that - that technique of forming a solder line from point to point. But mainly, in future i will try not to use this trick

      controller-card-component-side.jpg

      controller-card-solder-side.jpg

    8. #8
      BIG Trev's Avatar
      BIG Trev is offline
      is joining the Dark side
       
      Awesome
       

      Join Date
      Feb 2015
      State
      NSW
      Posts
      2,491
      Mentioned
      88 Post(s)
      Quoted
      504 Post(s)
      Australia
      That doesn't look that bad underneath after all it is a prototype.

      Sent from my SM-G930F using Tapatalk
      It doesn't hurt to ask.

    9. #9
      kapGo's Avatar
      kapGo is offline
      is solid stateless
       
      ----
       

      Join Date
      Apr 2017
      State
      Victoria
      Posts
      37
      Mentioned
      0 Post(s)
      Quoted
      5 Post(s)
      Australia

      Thanks, BIG Trev, everything i do is a prototype

      The solder all held well but i did notice the pin connectors are not the best and sometimes you have to re-check the cable join to the pin head, but other than that the cards all worked well. next thing is to put them all in to something that could be taken to a gig and i followed the process of a previous sound project i built and got a cheap suitcase from the local market (Vic market) for about twenty bucks and an indifferent thanks. Two sound boards, two controller cards, Raspberry Pi and the DC +12v, -12v and GND terminal block. A separate 5v line was plugged in via an ATX power supply unit that provides all the voltages at more than enough amps (i hope...) for multiple sound cards.

      The entire 2 board assembly is seen in the pic below. The bulky square PSU has no place in the suitcase so i figured i just place it on stage somewhere nearby... yeah no problem.
      One thing that drove this assembly was ensuring i had some method of either running a meter or re-wiring on the fly if needed. This is only from experience a couple of years ago when i had 2x 12v SLA batts running in series and they undervolted a motherboard during a performance, so i whipped out the pliers and stanley knife to rewire them in parallel (probably the other way around, i was nervous onstage and cant remember) for a bit of performance art.

      2card-demo-case.jpg

    10. #10
      kapGo's Avatar
      kapGo is offline
      is solid stateless
       
      ----
       

      Join Date
      Apr 2017
      State
      Victoria
      Posts
      37
      Mentioned
      0 Post(s)
      Quoted
      5 Post(s)
      Australia

      After hooking up all the boards and cards and checking they all work via the xming'd laptop, i needed to figure on how to translate this mess into a live performance kit. Well the Pi has an s-video out (should make things suitably lo-fi) so after running a few scripts so that things autorun at boot I now have an XCFE desktop with big icons pointing to the executable python script that runs the controller. Control of this is via a usb mouse held to my leg, while standing, as a mousepad. Yeah this will also go well on stage...

      The tracker like controller was running with a movable playhead but either TKinter is not very optimised or my lack of python mojo is detrimental, but it dropped the tick counter to a slow dirge like march. So now it just has a playhead strip at the top that just prints to screen whatever sequence line it is up to. Not very tracker like and ultimately will have to be scrapped and replaced with something written in C probably. I don't really know much about the Pi but I think there is pretty good C support.

      I should note that I have used both 0x23 and 0x0 within sequences, where 0x23 is the stop all sounds trigger and 0x0 seems to work as a sort of debouncer/skip tick trigger. This note is mainly cos I'm going to have to revisit this when it comes to the hardware controller build.

      Second note is that the mixer shown in the pic below is flipping fantastic, during the performance i was sending speaker level audio to it and it mixed it ok as long as i didnt move the faders, look at it, prayed to the Luddite gods etc, etc. Yep. This problem has been rectified.

      2card-demo-case-lcd-mixer.jpg

    Page 1 of 4 123 ... LastLast

    Thread Information

    Users Browsing this Thread

    There are currently 1 users browsing this thread. (0 members and 1 guests)

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •