USB powerbanks. This, combined with its small size, makes it ideal for portable sound and music creation. XFM2 is light, small, compact, fast, inexpensive, simple to build and use. It has no latency and boots instantaneously. It responds expressively to most common performance gestures and MIDI messages, such as note velocity, pitch bend, aftertouch, modulation wheel, breath control, foot controller, volume, pan, sustain switch and chorus and reverb levels.
The advantage starts materializing when you design a perfect digital component for each block in your device. So, in XFM2, a few hundreds of design blocks have been crafted and optimized down to a gate level. There are single-core, and hundred-and-twenty-eight-core components running in parallel, depending on the particular needs of the block.
Also, XFM2 features a stereo voice mixing bus. In addition to its carrier/modulator role in the modulation chain, any operator can be routed to the output, in any defined position in the stereo field, by setting the individual level...
Page 8
Communicating with XFM2 As in any synthesizer, the sound creation in XFM2 is regulated by a set of parameters, which are used to specify the intended sound characteristics, nuances, responses, and expressive behavior. There are more than 400 parameters in XFM2 to define any sound, including both the parameters for the synthesizer engine and the complete effect processors chain.
Selects the frequency ratio between Oscillators 1 and 2. Oscillator Waveforms Each oscillator in any of the six operators in XFM2 can use any of the eight factory waveforms, indicated in the graphic below. All waveforms have been carefully hand-picked with a suitable harmonic content for FM synthesis.
Sets the operator self-feedback level. Oscillators synchronization Oscillators in XFM2 can have free-running phase (meaning that their phase isn’t affected by the notes played in any way) or be synchronized (they reset their phase with every note-on event, to a specified value).
Operator level Each operator in XFM2 has an output level adjustment, and individual output levels for the left and right stereo channels. This allows to place each operator in any position in the stereo field. Sets the operator output level.
When the XFM2 module is maxed in polyphony, there are 64 voices running 7 envelope generators each (one amplitude EG for each operator, plus one voice pitch EG), for a total of 448 simultaneous samplerate-grade envelope generators, each one with 14 user-adjustable parameters (!).
Voice structure and parameters Voice basics Besides the set of parameters that can be adjusted individually for any of the six operators, each voice in XFM2 have a set of voice parameters, that apply to all operators equally. Pitch Envelope Generator The Pitch EG is used to adjust the pitch of all operators in each voice simultaneously as a function of the time.
It can be applied to any operator pitch (see PMS), amplitude (see AMS), either directly or using the MIDI controllers for Wheel, Aftertouch, Breath or Foot controllers as performance gestures. LFOs in XFM2 are polyphonic, so each voice has its own (this means that when maxed in polyphony, there are 64 LFOs running simultaneously).
Program settings The Program settings are parameters that affect all voices simultaneously. XFM2 allows for individual adjustments of the Pitch Bend MIDI control, for up and down. BEND UP Sets the pitch range to use when upward MIDI Pitch Bend messages are received.
Modulations Section Pitch The modulation Pitch parameters adjust how MIDI controls modify the pitch of each note. AFTER Sets how the pitch changes with MIDI Aftertouch messages. BREATH Sets how the pitch changes with MIDI Breath Controller messages (CC 02). FOOT Sets how the pitch changes with MIDI Foot Controller messages (CC 04).
The zip file with XFM2 binaries includes the utility to convert Scala files into the XFM2 binary format, and instructions on how to create a different factory tuning definition file and uploading those into XFM2.
Effects Processors Each unit in XFM2 includes a powerful seven-stage effects processor, featuring lo-fi effects (bitcrusher, decimator), low-pass and high-pass filters, modulation effects (chorus/flanger, phaser, amplitude modulation) and delay. All seven effects in both units (14 in total) can be running simultaneously. Additionally, there are two choices for inter-effects routing, which allow different effect chain combinations.
Chorus/Flanger The stereo Chorus/Flanger effect in XFM2 is capable of a broad variety of modulation effects, from very subtle to dramatic. Adjusts the level of the dry signal (no effect). Adjust the level of the wet signal (full effect). Adjusts the effect mode, as follows:...
Amplitude Modulation The Amplitude Modulation effect modulates the input signal in amplitude with an internally generated sine, to create different effects ranging from tremolo, to auto-panning, to high-frequency amplitude modulation. DEPTH Sets the modulation depth. SPEED Sets the modulation speed. RANGE This parameter adjusts the speed range.
Global Reverb Both synthesizer-effect units feed a common global reverb. Each unit can contribute to the dry and wet reverb mixes individually. Adjusts the level of the dry signal (no effect). NOTE: per-unit parameter. Adjust the level of the wet signal (full effect). NOTE: per-unit parameter.
Performance Controls Each program in XFM2 can hold up to four Performance Controls. Each Performance Control can be mapped to any program parameter, for real-time control. This means, for instance, that Program 1 could have LFO Speed, OP1 Ratio, OP3 Level and OP4 Attack Time assigned to react to the Performance Control MIDI messages (CC 70 to CC 73), while Program 2 could have a completely different set of parameters mapped.
XFM2, resulting in two identical sounds being played. To avoid this, there’s a global setting to turn XFM2 into “Layer Mode”. In this mode, both units will play together, reacting to any MIDI note in any channel. However, each unit will only react to parameter and program changes in its selected MIDI channel.
The default communication port is COM7, but it can be changed to be any port from your operating system. The virtual port in XFM2 is very fast, and can be open as 500,000 bps, 8-bits, 1-stop bit, no parity. You can use any software terminal program to send and receive serial commands to XFM2. The following table describe the supported commands.
Appendices Factory tunings XFM2 can use up to 256 different tuning structures, or scales. Additionally, tuning banks can be uploaded into the unit by using the XLoad utility (Windows). Scales are not limited to 12-tones per octave; any MIDI note can be tuned to any desired pitch.
Page 26
11-37.scl Jake Freivald, 11 out of 37-tET, g=11/8, TL 22-08-2012 11-limit-only.scl 11-limit-only 12-17.scl 12 out of 17-tET, chain of fifths 12-22.scl 12 out of 22-tET, chain of fifths 12-22h.scl Hexachordal 12-tone scale in 22-tET 12-27.scl 12 out of 27, Herman Miller's Galticeran scale 12-31.scl 12 out of 31-tET, meantone Eb-G# 12-31_11.scl...
Page 27
20-55.scl 20 out of 55-tET, J. Chesnut: Mozart's teaching of intonation, JAMS 30/2 (1977) 21-any.scl 2)7 1.3.5.7.9.11.13 21-any, 1.3 tonic 22-100.scl MODMOS with 10 and 12-note chains of fifths by Gene Ward Smith, similar to Pajara 22-100a.scl Alternative version with 600 cents period 22-41.scl 22 out of 41 by Stephen Soderberg, TL 17-11-98 22-46.scl...
Page 28
abell7.scl Ross Abell's French Baroque Meantone 7, a'=520 Hz abell8.scl Ross Abell's French Baroque Meantone 8, a'=520 Hz abell9.scl Ross Abell's French Baroque Meantone 9, a'=520 Hz ad-dik.scl Amin Ad-Dik, 24-tone Egyptian tuning, d'Erlanger vol.5, p. 42 aeolic.scl Ancient Greek Aeolic, also tritriadic scale of the 54:64:81 triad aeu-41 ratios.scl AEU extended to quasi-cyclic 41-tones in simple ratios aeu-41.scl...
Page 29
bohlen-p_et.scl 13-tone equal division of 3/1. Bohlen-Pierce equal approximation bohlen-p_ring.scl Todd Harrop, symmetrical ring of Bohlen-Pierce enharmonics using 4 major and 8 minor dieses (2012) bohlen-p_sup.scl Superparticular Bohlen-Pierce scale bohlen47.scl Heinz Bohlen, mode of 4\47 (1998), www.huygens- fokker.org/bpsite/pythagorean.html bohlen47r.scl Rational version, with alt.9 64/49 and alt.38 40/13 bohlen5.scl 5-limit version of Bohlen-Pierce bohlen_11.scl...
Page 30
coherent49.scl Generator is the positive root of x^4 - x^2 - 1, Raph, Meta-Sidi, 72&121 temperament sqrtphi <30 35 38 39 coleman10.scl Coleman 10 (2001) coleman11.scl Jim Coleman's XI piano temperament. TL 16 Mar 1999 coleman16.scl Balanced 16 from Jim Coleman Sr. (2001) coleman4.scl Coleman IV from Jim Coleman Sr.
Page 31
coul_13.scl Symmetrical 13-tone 5-limit JI scale coul_17sup.scl Superparticular approximation to Pythagorean 17-tone scale. Op de Coul, 2003 coul_20.scl Tuning for a 3-row symmetrical keyboard, Op de Coul (1989) coul_27.scl Symmetrical 27-tone 5-limit just system, 67108864/66430125 and 25/24 counterschismic.scl Counterschismic temperament, g=498.082318, 5-limit couperin.scl Couperin modified meantone couperin_org.scl...
Uploading and downloading programs and banks XFM2 distribution includes XLoad, a command-line utility (Windows) which allows to read and write program and bank files into from the device. A bank is composed of the 128 programs in the EEPROM memory.
MIDI implementation chart XFM2 can receive and process the following MIDI messages: Parameter Range NOTE-ON, NOTE-OFF NUMBERS 0-127 NOTE-ON VELOCITY 0-127 PROGRAM CHANGE 0-127 PITCH BEND 0-16383 CHANNEL AFTERTOUCH 0-127 ACTIVE SENSING Active Used to set Arpeggiator tempo, if internal MIDI CLOCK tempo setting is 0.
UU P1 P2 V1 V2 Where: UU = Unit number (#0 or #1 for each XFM2 unit, or #7F for “all units”). P1 P2 = Parameter number, 0~511 in two hexadecimal 7-bit values (see Calculating 7-bit values). V1 V2 = Value, 0~255 in two hexadecimal 7-bit values (see Calculating 7-bit values).
XFM2 is the second generation of XFM. It expands XFM in every section, to the maximum area that fitted in the available silicon. Dozens of features had to be left behind in order to squeeze the design into the A7.
Need help?
Do you have a question about the XFM2 and is the answer not in the manual?
Questions and answers