User Tools

Site Tools


midibox_quad_genesis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
midibox_quad_genesis [2017/02/09 05:27]
sauraen [Channel Mode]
midibox_quad_genesis [2017/12/20 21:19] (current)
smithy [Hardware components]
Line 10: Line 10:
  
 [[http://​midibox.org/​forums/​topic/​19073-midibox-fm-v21-on-stm32f4/​|MIDIbox FM V2.1 (OPL3 synth on STM32F4) forum thread]], including some old discussion with yogi about MIDIbox Quad Genesis ideas [[http://​midibox.org/​forums/​topic/​19073-midibox-fm-v21-on-stm32f4/​|MIDIbox FM V2.1 (OPL3 synth on STM32F4) forum thread]], including some old discussion with yogi about MIDIbox Quad Genesis ideas
- 
-[[http://​goo.gl/​forms/​4Gg5JX6GpX|Fill out this form]] if you might be potentially interested in buying MBHP_Genesis boards 
- 
 ====== Hardware ====== ====== Hardware ======
  
Line 22: Line 19:
   * 2x40 character [[http://​ucapps.de/​mbhp_lcd.html|LCD]] (or VFD, or OLED...) (size mandatory)   * 2x40 character [[http://​ucapps.de/​mbhp_lcd.html|LCD]] (or VFD, or OLED...) (size mandatory)
   * [[MBQG_FP]] custom front panel board; or alternately,​ [[http://​ucapps.de/​mbhp_din.html|DIN]],​ [[http://​ucapps.de/​mbhp_dout.html|DOUT]],​ and/or [[http://​ucapps.de/​mbhp_dio_matrix.html|DIO_MATRIX]] modules as needed to make custom front panel   * [[MBQG_FP]] custom front panel board; or alternately,​ [[http://​ucapps.de/​mbhp_din.html|DIN]],​ [[http://​ucapps.de/​mbhp_dout.html|DOUT]],​ and/or [[http://​ucapps.de/​mbhp_dio_matrix.html|DIO_MATRIX]] modules as needed to make custom front panel
 +  * [[MBQG_TB_CASE]] a DIY wooden case for MIDIbox Quad Genesis, designed by Technobreath to be easily replicated with little skills and tools.
   * Stereo audio output connection of desired type   * Stereo audio output connection of desired type
   * Mono audio input connection for each SN76494/96 if desired   * Mono audio input connection for each SN76494/96 if desired
Line 40: Line 38:
  
 ====== Synth Architecture ====== ====== Synth Architecture ======
- 
-This section was written during early development;​ while it does provide a roughly-accurate overview of what the synth does, the details haven'​t been gone over recently and many have changed slightly. 
  
 |  Dummy  |  Dummy  |  Dummy  |  Dummy  |  [[https://​youtu.be/​N3epEVMNJdY|Dummy!]] ​ | |  Dummy  |  Dummy  |  Dummy  |  Dummy  |  [[https://​youtu.be/​N3epEVMNJdY|Dummy!]] ​ |
Line 67: Line 63:
  
 ==== Tracker Mode ==== ==== Tracker Mode ====
-A voice in tracker mode has little-to-no synth engine and is simply controlled in realtime by MIDI commands from a DAW or tracker. It is configured to respond to commands from one MIDI port on one channel. The following MIDI messages are supported:​ +A voice in tracker mode has little-to-no synth engine and is simply controlled in realtime by MIDI commands from a DAW or tracker. It is configured to respond to commands from one MIDI port on one channel, according to the GENMDM specificationI have been in contact with Aly James, ​the creator ​of FMDrive, ​the celebrated OPN2 VST plugin, and we are working ​to ensure the MIDI map of his software and my hardware are as identical as possible.
-  * Note On sets the voice'​s frequency and keys on all operators; Note Off keys off all operatorsVelocity is ignored. +
-  * Pitch Bend changes the voice'​s frequency ​in real time (as usual); the Pitch Bend Range RPN is supported. +
-  * CC7 (Volume) changes ​the amplitude ​of the voice'​s carrier operators according to a selectable mapping. +
-  * CC10 (Pan) changes whether the voice is assigned to left, right, or both channels. +
-  * Other CCs (TBD) set all other operator parameters. +
- +
-In addition, each YM2612 may be placed into Tracker mode itself, and then it will respond ​to MIDI messages to set its global parameters (LFO, test registers, etc.). +
 ==== Free Mode ==== ==== Free Mode ====
-A voice in free mode is available to be assigned in real-time by the synth engine to an appropriate instrument. 
  
-===== Instruments ===== +A voice in free mode is available to be assigned in real-time by the synth engine to any program. This sounds simple enough, but this requires tremendous complexity on the inside, for two reasons: 
-An instrument ​is a set of configuration information about one or more voices of certain types. As in a General MIDI ROMplerMIDI channels are assigned to instruments by the user (or via MIDI messages), and the synth automatically assigns those instruments to voices when notes are triggeredHowever, the actual content ​of these instruments is very different from a GM patch in MIDIbox Quad Genesis.+  - A VGM file can use any combination ​of voices ​on one pair of chipsand the voices are not homogenous ​(e.g. FM voices 3 and 6 can do things which 1, 2, 4, and 5 can't; and PSG voice 3 can do things which 1 and 2 can't; but the other way around does work correctly, you can play anything which was intended for voice 1 on voice 3). 
 +  - Certain OPN2 features (the LFO and the test bits) are global to the chipso VGM files which use these features have to be kept on the same chip or carefully assigned across multiple chips. Moreover, for certain ​of these features (the LFO), other voices which ignore the features can share the chip, but for certain ones (the Ugly bit) the feature affects all voices.
  
-An instrument contains: +The synth engine keeps track of what chip resources each VGM file and program ​use (its "usage"). (Even computing this isn't always trivial, since a VGM file can be streamed from the SD card!) When playing ​note on a programit determines where to assign all of its used voices based on many factors; and of course, when actually playing ​the commands within ​the fileit has to reroute them all as well as modifying their pitch if applicableall at 44.1 kHz!
-  * Information about how many of what kinds of voices the instrument will use, and whether it will set or use chip-global features like the LFO +
-  * A "state" VGM file, which must be of time-length 0, which is played when the instrument is loaded to voice +
-  * A "​sample"​ VGM fileany time-lengthwhich is played ​when the instrument is keyed on +
-  * Information about how the MIDI note played combines with frequency information in the VGM to produce the actual frequency values sent to the voice +
-  * Optional operator gating at fixed delay from MIDI note onor in response ​to other MIDI events +
-  * A set of modulators (software LFOsEGs, velocity, CCs) and their assignments to voice parameters+
  
 ===== Interface Modes ===== ===== Interface Modes =====
Line 99: Line 81:
   * Capture button: create a VGM file which represents the state of the current voice. Display a menu of channels so you can choose where this will be stored. Upon selecting a channel, or pressing the Capture button again which will use the last edited channel, a new program will be set up on this channel with that VGM file as its init and appropriate keyon and keyoff files, so you can play this sound on the keyboard as usual.   * Capture button: create a VGM file which represents the state of the current voice. Display a menu of channels so you can choose where this will be stored. Upon selecting a channel, or pressing the Capture button again which will use the last edited channel, a new program will be set up on this channel with that VGM file as its init and appropriate keyon and keyoff files, so you can play this sound on the keyboard as usual.
 ==== Channel Mode ==== ==== Channel Mode ====
-Press Chan. Use the screen ​to select a MIDI channel. Set whether the channel is assigned to a voice in tracker mode or whether it should play instruments on voices in free mode. If the channel is in free mode, load, save, delete, or create a new program. +Use the PSG Voices and OPN2 buttons ​to select a channel. ​(Please note that the number of channels in the synth are 16 x the number of ports, which is by default 4.) Set whether the channel is assigned to a voice in tracker mode or whether it should play instruments on voices in free mode. If the channel is in free mode, load, save, delete, or create a new program. 
-==== Instrument ​Mode ==== +==== Program ​Mode ==== 
-Press Inst and use the screen to select a loaded instrument, or select the instrument from Channel ​mode. Use the screen to load and unload more instruments,​ choose the instrument'​s state and sample VGM files, set up the MIDI note on frequency/​gate behavior, and edit modulators.+Edits the program selected in Chan mode.
  
-Voices light up corresponding ​to the voices this instrument affects--but not the actual voices it'being played on, rather ​the voices that the VGM files are specifying playback onFor instanceif the state file was extracted from a VGM that happened to be playing the instrument on FM channel 4, channel 4 would be lit up, even if currently ​this voice was playing three polyphonic copies on chip 3 channels 1 and 6 and chip 4 channel 2. +A program consists of 3 VGM files: one to init the voice(s), one played ​at key on, and one played at key off. Program mode allows ​the loading, saving, deleting, or creating new template-based ​files for any of these functionsAdditionally, this screen lets the user select ​the root note of the program, i.e. which keyboard note corresponds to no pitch change from the given VGM files.
- +
-Select a voice and use the voice controls to view and edit the voice'​s state. This is the state of the voice after its state VGM is played but before its sample VGM is playedNo VGM timing controls are available, as all the commands in the state VGM must happen at time zero.+
  
 +Planned features:
 +  * VGM file tempo adjustment, including the option to scale tempo with pitch (like changing analog speed).
 +  * Drum type programs, which instead of having three VGM files, have 16, one for key-on for each of a definable split region. Key off is fixed to just key-off or silence the used voices, and the key-on VGM has to contain any set-up commands.
 ==== VGM Mode ==== ==== VGM Mode ====
-Press VGM and use the screen to select a loaded VGM, or load a new one. Alternately,​ select the VGM from Instrument mode. 
  
-TODO+Full-featured editor for VGM files loaded into RAM, and partial editor for VGM files streamed from the SD card. 
 + 
 +Both modes support real-time preview of the VGM file, muting and soloing voices (applies even to copies playing from key presses, not just the preview copy). 
 + 
 +For VGM files loaded into RAM, supports editing, inserting, and deleting individual VGM commands in Cmds mode. In State mode, shows the current state of the voice on the edit controls, and allows editing of this state directly (by changing the last command before the present which affected that parameter). 
 + 
 +Planned features: 
 +  * For either type of VGM, support defining soft start and end points ("​mark"​) within file. Then, press Crop to make the VGM be only this section, and also only the voices which are soloed or not muted. If the VGM file is a stream and the result of the Crop operation would fit in RAM, load the result into RAM for further editing. 
 +  * For either type of VGM, Capture the current state of a voice as in Voice mode. 
 +  * For RAM only, move, duplicate, or copy-and-paste the individual commands or the marked section to a different position.
midibox_quad_genesis.1486618061.txt.gz · Last modified: 2017/02/09 05:27 by sauraen