• Stars
    star
    158
  • Rank 237,131 (Top 5 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Sega Genesis inspired synthesizer

Genesynth

Genesynth is a music synthesizer module based around the Yamaha YM2612 FM Synthesis Chip, the same chip used in the Sega Genesis / Mega Drive.

Why?

Because I wanted to. :)

How?

This project is designed to use the Teensy 3.5 to control the YM2612 via USB MIDI.

More details for the hardware is available under the hardware folder, and more details on the firmware is under the firmware folder.

License

This project is under the Apache License, Version 2.0. See LICENSE for more details.

If you use anything in this for a project, please let me know! I'd love to hear what you do with it. :)

Building your own

This repository contains everything you'll need to build your own version of this synthesizer.

Parts

You'll need to order all of the components in the three separate hardware modules under the hardware directory. You can use KiCAD to generate a BOM. These parts are readily available from Mouser and other distributors with the exception of the YM2612 chip - but this is easily obtainable on ebay.

Also note that you must use a Teensy 3.5. The Teensy 3.6 will not work as it's 3.3v logic and this design uses 5v logic.

You'll also need a 9v center-positive power supply.

Ordering the PCBs

The gerbers for the PCBs are already created and are in the respective subdirectories under hardware. These are designed to fit within OSHPark's design rules, but I actually used PCBWay for my boards.

Soldering components

You should absolutely use a socket for the YM2612 and the Teensy. Otherwise, this is all standard through-hole construction. Solder the smaller parts first followed by the larger parts.

Connecting the boards.

There's three boards that make up the synth - the motherboard, a display board, and an audio board. The audio board connects to the right side of the motherboard, the display board to the left. You can connect these with wires or use pin headers and dupont connectors.

Connect audio output.

The audo board has mono line out and stereo headphone out. You'll need to wire up the appropriate jack to the right side of the audio board.

Assembling the case.

There's SVGs for creating a laser-cut case under case. You should be able to do this at any makerspace or using Ponoko. The case simply snaps together and the boards are mounted with standard M2 and M3 hardware.

Preparing and programming the Teensy

Before powering on the synthesizer, be sure to cut the USB power traces on the underside of the Teensy. If you don't do this, you will fry your board. Once connected, you can build and upload the firmware using Teensyduino.

Place patches on the SD card.

The synth needs patches on the SD card. Patches are in TFI format and many patch libraries are readily available. You should put patches into subdirectories of the SD card.

All done!

You should now be able to boot the synthesizer, load patches, and play notes over MIDI. Have fun!

More Repositories

1

kicanvas

The KiCAD web viewer
TypeScript
577
star
2

witchhazel

A dark, feminine color theme. https://witchhazel.thea.codes.
Lua
112
star
3

noel

Easily deploy applications to Kubernetes
Python
72
star
4

cmarkgfm

Python bindings for GitHub's cmark
Python
69
star
5

structy

Structy is an irresponsibly dumb and simple struct serialization/deserialization library for C, Python, and vanilla JavaScript.
C
53
star
6

phomemo_m02s

Python library for the Phomemo m02s bluetooth thermal printer
Python
45
star
7

blog.thea.codes

blog.thea.codes
JavaScript
39
star
8

PhoenixCore

An experimental 2D optimizing rendering system built with OpenGL
C
24
star
9

conducthotline.com

A code of conduct hotline for every one
Python
24
star
10

loglady

Python
13
star
11

vscode-qalc

Superpowered calcuator for VSCode using Qalculate!
TypeScript
13
star
12

Darth-Vendor

Third-party vendoring helper for Google App Engine and other sandboxed python environments.
Python
11
star
13

Protopigeon

Helpers for datastore models and protorpc messages
Python
9
star
14

docker-procfile

Example of how to define and run multiple processes in docker.
Python
8
star
15

3d-prints

OpenSCAD
8
star
16

model-m

C++
7
star
17

ym2612dev

The YM2612 Reference Project
5
star
18

Bea

Document/View and Event Engine for PhoenixCore
C
5
star
19

thea.codes

personal website
HTML
5
star
20

pycon2018-notebooks

Notebooks from mine and Brian Dorsey's sponsor talk @ PyCon
Jupyter Notebook
5
star
21

graviton

C
4
star
22

App-Engine-Flask-Restful-Example

Python
4
star
23

Bea-Collision

Simple polygon collision for Bea.
C++
4
star
24

kicad-libraries

2
star
25

wallart

Python
2
star
26

sphinx-docstring-typing

typing support for Sphinx docstrings
Python
1
star
27

gcloud-vs-oauth

Python
1
star
28

pronouns.thea.codes

Pronoun stickers for all
HTML
1
star
29

cmarkgfm-wheels

Wheel builder for cmarkgfm
Shell
1
star
30

ohs-2024-talk

My talk at OHS 2024
HTML
1
star
31

dotfiles

Shell
1
star
32

photos.thea.codes

HTML
1
star
33

penny

Robots robots robots
JavaScript
1
star
34

witchhazel-sublime

Witch Hazel color scheme package for Sublime Text
1
star