| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  | # Yamaha OPZ (YM2414)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-10 16:41:52 -04:00
										 |  |  | **disclaimer: despite the name, this has nothing to do with teenage engineering's OP-Z synth!** | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  | this is the YM2151's little-known successor, used in the Yamaha TX81Z and a few other Yamaha synthesizers. oh, and the Korg Z3 too. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | it adds these features on top of the YM2151: | 
					
						
							|  |  |  | - 8 waveforms (but they're different from the OPL ones) | 
					
						
							|  |  |  | - per-channel (possibly) linear volume control separate from TL | 
					
						
							|  |  |  | - increased multiplier precision (in 1/16ths) | 
					
						
							|  |  |  | - 4-step envelope generator shift (minimum TL) | 
					
						
							|  |  |  | - another LFO | 
					
						
							|  |  |  | - no per-operator key on/off | 
					
						
							|  |  |  | - fixed frequency mode per operator (kind of like OPN family's extended channel mode but with a bit less precision and for all 8 channels) | 
					
						
							|  |  |  | - "reverb" effect (actually extends release) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | unlike the YM2151, this chip is officially undocumented. very few efforts have been made to study the chip and document it... | 
					
						
							|  |  |  | therefore emulation of this chip in Furnace is incomplete and uncertain. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | no plans have been made for TX81Z MIDI passthrough, because: | 
					
						
							|  |  |  | - Furnace works with register writes rather than MIDI commands | 
					
						
							|  |  |  | - the MIDI protocol is slow (would not be enough). | 
					
						
							|  |  |  | - the TX81Z is very slow to process a note on/off or parameter change event. | 
					
						
							|  |  |  | - the TL range has been reduced to 0-99, but the chip goes from 0-127. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-10 20:34:13 -04:00
										 |  |  | ## effects
 | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `10xx`: **set noise frequency of channel 8 operator 4.** `00` disables noise while `01` to `20` enable it. | 
					
						
							|  |  |  | - `11xx`: **set feedback of channel.** | 
					
						
							|  |  |  | - `12xx`: **set operator 1 level.** | 
					
						
							|  |  |  | - `13xx`: **set operator 2 level.** | 
					
						
							|  |  |  | - `14xx`: **set operator 3 level.** | 
					
						
							|  |  |  | - `15xx`: **set operator 4 level.** | 
					
						
							|  |  |  | - `16xy`: **set multiplier of operator.** | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `x` is the operator (1-4). | 
					
						
							| 
									
										
										
										
											2023-09-13 00:28:45 -04:00
										 |  |  |   - `y` is the new MULT value.. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `17xx`: **set LFO speed.** | 
					
						
							|  |  |  | - `18xx`: **set LFO waveform.** `xx` may be one of the following: | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `00`: saw | 
					
						
							|  |  |  |   - `01`: square | 
					
						
							|  |  |  |   - `02`: triangle | 
					
						
							|  |  |  |   - `03`: noise | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `19xx`: **set attack of all operators.** | 
					
						
							|  |  |  | - `1Axx`: **set attack of operator 1.** | 
					
						
							|  |  |  | - `1Bxx`: **set attack of operator 2.** | 
					
						
							|  |  |  | - `1Cxx`: **set attack of operator 3.** | 
					
						
							|  |  |  | - `1Dxx`: **set attack of operator 4.** | 
					
						
							|  |  |  | - `1Exx`: **set LFO AM depth.** | 
					
						
							|  |  |  | - `1Fxx`: **set LFO PM depth.** | 
					
						
							|  |  |  | - `24xx`: **set LFO 2 speed.** | 
					
						
							|  |  |  | - `25xx`: **set LFO 2 waveform.** `xx` may be one of the following: | 
					
						
							| 
									
										
										
										
											2023-02-03 17:00:15 -05:00
										 |  |  |   - `00`: saw | 
					
						
							|  |  |  |   - `01`: square | 
					
						
							|  |  |  |   - `02`: triangle | 
					
						
							|  |  |  |   - `03`: noise | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `26xx`: **set LFO 2 AM depth.** | 
					
						
							|  |  |  | - `27xx`: **set LFO 2 PM depth.** | 
					
						
							|  |  |  | - `28xy`: **set reverb of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `2Axy`: **set waveform of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `2Bxy`: **set EG shift of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `2Cxy`: **set fine multiplier of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-04 15:09:43 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `2Fxx`: **enable envelope hard reset.** | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - this works by inserting a quick release and tiny delay before a new note. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `3xyy`: **set fixed frequency of operator 1/2.** | 
					
						
							|  |  |  |   - `x` is the block (`0-7` for operator 1; `8-F` for operator 2). | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the frequency. fixed frequency mode will be disabled if this is less than 8. | 
					
						
							|  |  |  |   - the actual frequency is: `y*(2^x)`. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `4xyy`: **set fixed frequency of operator 3/4.** | 
					
						
							|  |  |  |   - `x` is the block (`0-7` for operator 3; `8-F` for operator 4). | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the frequency. fixed frequency mode will be disabled if this is less than 8. | 
					
						
							|  |  |  |   - the actual frequency is: `y*(2^x)`. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `50xy`: **set AM of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` determines whether AM is on. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `51xy`: **set SL of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `52xy`: **set RR of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `53xy`: **set DT of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value: | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  |     - `0`: +0 | 
					
						
							|  |  |  |     - `1`: +1 | 
					
						
							|  |  |  |     - `2`: +2 | 
					
						
							|  |  |  |     - `3`: +3 | 
					
						
							|  |  |  |     - `4`: -0 | 
					
						
							|  |  |  |     - `5`: -3 | 
					
						
							|  |  |  |     - `6`: -2 | 
					
						
							|  |  |  |     - `7`: -1 | 
					
						
							|  |  |  | - `54xy`: **set RS of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `55xy`: **set DT2 of operator.** | 
					
						
							|  |  |  |   - `x` is the operator (1-4). a value of `0` means "all operators". | 
					
						
							| 
									
										
										
										
											2022-05-02 19:15:51 -04:00
										 |  |  |   - `y` is the value. | 
					
						
							| 
									
										
										
										
											2023-06-25 03:05:30 -04:00
										 |  |  | - `56xx`: **set DR of all operators.** | 
					
						
							|  |  |  | - `57xx`: **set DR of operator 1.** | 
					
						
							|  |  |  | - `58xx`: **set DR of operator 2.** | 
					
						
							|  |  |  | - `59xx`: **set DR of operator 3.** | 
					
						
							|  |  |  | - `5Axx`: **set DR of operator 4.** | 
					
						
							|  |  |  | - `5Bxx`: **set D2R/SR of all operators.** | 
					
						
							|  |  |  | - `5Cxx`: **set D2R/SR of operator 1.** | 
					
						
							|  |  |  | - `5Dxx`: **set D2R/SR of operator 2.** | 
					
						
							|  |  |  | - `5Exx`: **set D2R/SR of operator 3.** | 
					
						
							|  |  |  | - `5Fxx`: **set D2R/SR of operator 4.** | 
					
						
							| 
									
										
										
										
											2023-08-04 12:11:53 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-10 20:34:13 -04:00
										 |  |  | ## info
 | 
					
						
							| 
									
										
										
										
											2023-08-04 12:11:53 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-10 02:44:29 -04:00
										 |  |  | this chip uses the [FM (OPZ)](../4-instrument/fm-opz.md) instrument editor. |