source: buchla-emu/readme.txt@ 9674f1a

Last change on this file since 9674f1a was ed545d5, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Mention microcode PROMs.

  • Property mode set to 100644
File size: 4.3 KB
Line 
1Buchla 700 Hardware Emulator
2----------------------------
3
4This repository, buchla-emu.git, contains a software emulation of the
5Buchla 700's hardware.
6
7It is minimalistic; it emulates just enough of the hardware to be able
8to run the firmware from the companion repository, buchla-68k.git.
9
10We don't have access to original hardware, so this is our best guess
11based on the firmware source code published by Lynx Crowe - the
12firmware's developer - via Aaron Lanterman:
13
14 http://lanterman.ece.gatech.edu/buchla700/
15
16See the buchla-68k.git repository for the firmware source code.
17
18
19Building the emulator
20---------------------
21
22The emulator uses SDL2, an abstraction layer for low-level machine
23access on Linux, OS X, and Windows. It can be obtained from the
24project's website:
25
26 https://libsdl.org/
27
28Currently, the emulator supports Linux and OS X. A port to Windows
29should be pretty easy, given that it doesn't use any platform-specific
30features, just C99 and SDL2.
31
32Our Makefile expects SDL2 to reside in /opt/sdl2. This is how we
33typically install it:
34
35 tar zxvf SDL2-2.0.5.tar.gz
36 cd SDL2-2.0.5
37
38 mkdir build
39 cd build
40
41 ../configure --prefix=/opt/sdl2
42 make
43 make install
44
45Now that we have SDL2 in place, invoke
46
47 make buchla
48
49from the top-level directory of this repository to build the emulator.
50
51
52Emulated hardware
53-----------------
54
55Here's what we emulate:
56
57 * Motorola 68000 CPU. This is actually the Musashi CPU emulator by
58 Karl Stenerud:
59
60 https://github.com/kstenerud/Musashi
61
62 * Motorola MC6840: Timers.
63
64 * Motorola MC6850: Serial console and MIDI ports.
65
66 * Epson SED1335: LCD controller.
67
68 * Intel 82716: Video chip.
69
70 * National Semiconductor LMC835: Equalizer.
71
72 * General Instrument AY-3-8910: A sound chip, which is not used for
73 sound generation, but only for its I/O ports. It connects the CPU
74 to the above equalizer chip.
75
76 * Western Digital WD1772: Floppy disk controller.
77
78 * A few LEDs.
79
80 * Item X: A program running on a microcontroller. It converts the
81 analog signals from the Buchla's controller pads to digital
82 values.
83
84 Neither the program, nor the microcontroller are known, but the
85 protocol (known from the firmware source code) is pretty simple
86 and self-explanatory.
87
88 * Item Y: The actual sound generator, referred to by the firmware
89 source code as "the FPU." This could actually be two chips:
90
91 1. One chip, maybe a DSP, for generating the 15 different
92 parameter envelopes for each of the 12 voices:
93
94 - 4x FM modulator (oscillator) frequency.
95
96 - 6x FM modulator (oscillator) envelope.
97
98 - 1x Output signal amplitude envelope.
99
100 - 1x Output signal filter envelope.
101
102 - 1x Output signal filter resonance envelope.
103
104 - 1x Output signal stereo location.
105
106 - 1x "Dynamics." (TBD - currently not emulated.)
107
108 Over time, the chip interpolates between the points of the
109 envelopes drawn in the MIDAS VII instrument editor.
110
111 2. A second chip for the actual sound generation. This is likely
112 a DSP, possibly a Hitachi HD61810, which supports a 16-bit
113 floating-point format that's also found in the firmware
114 source code (12-bit mantissa, 4-bit exponent).
115
116 This chip takes in the current levels of a voice's envelopes
117 and, based on them, performs the FM synthesis for this voice
118 by modulating the user-drawn carrier waves A and B according
119 to the selected FM configuration (algorithm).
120
121 We don't know how many of the envelopes not related to FM
122 (e.g., the filter) are actually used digitally. At least some
123 of the envelopes probably control analog circuits.
124
125 Obviously, the emulator does everything digitally.
126
127 This "two chip" hypothesis would be in line with the "four
128 computers" marketing claim from the Buchla 700 marketing copy. The
129 four "computers" would be the Motorola 68000, the microcontroller
130 that does the A/D conversion of the pad inputs, plus the two CPUs
131 that constitute "the FPU."
132
133If you have access to an actual Buchla 700, please do contact us. It
134would be great to be able to compare the emulation to real hardware.
135
136If it's non-functional, this is also fine. We might be able to gain
137some insights from reading the FPU microcode PROMs.
Note: See TracBrowser for help on using the repository browser.