This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
midibox_speakjet [2007/01/24 00:46] audiocommander added version info, cleanup |
midibox_speakjet [2016/06/09 01:17] (current) psykhaze [Where to buy ?] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== MIDIBox SpeakJet ====== | ====== MIDIBox SpeakJet ====== | ||
- | ===== What is it? ===== | + | \\ |
[[http://www.ucapps.de/mbhp_iic_speakjet.html|MIDIBox SpeakJet Synthesiser]] is a project that uses the [[http://www.magnevation.com|Magnevation]][[http://www.speakjet.com/|Speakjet]] controlled by midibox as a standalone synthesizer. | [[http://www.ucapps.de/mbhp_iic_speakjet.html|MIDIBox SpeakJet Synthesiser]] is a project that uses the [[http://www.magnevation.com|Magnevation]][[http://www.speakjet.com/|Speakjet]] controlled by midibox as a standalone synthesizer. | ||
The SpeakJet IC was brought to market in February 2004, and is available from a variety of vendors for around $25 USD. | The SpeakJet IC was brought to market in February 2004, and is available from a variety of vendors for around $25 USD. | ||
+ | |||
+ | {{youtube>small:EWSybnx2SOM}} | ||
\\ | \\ | ||
Line 17: | Line 19: | ||
\\ | \\ | ||
- | |||
To build this Midi-playable nifty synthesizer project, you will need: | To build this Midi-playable nifty synthesizer project, you will need: | ||
* 1 MBHP Core Module (PIC18F, host of kII speakJet application -> see below, communicates via IIC with the SJ-IIC-Module) | * 1 MBHP Core Module (PIC18F, host of kII speakJet application -> see below, communicates via IIC with the SJ-IIC-Module) | ||
* 1 MBHP SpeakJet-ICC-Module (PIC16F, receives IIC commands from Core and communicates via Serial Transmission with the Speakjet -> breadboard construction described below) | * 1 MBHP SpeakJet-ICC-Module (PIC16F, receives IIC commands from Core and communicates via Serial Transmission with the Speakjet -> breadboard construction described below) | ||
- | * 1 2x16 LCD, optional (displays last sent commands and various settings) | + | * 1 LCD, optional (2x16 for kII v 0.1.x; 1x8 LCD for kII v 0.2.x) |
+ | ====== Where to buy ? ======= | ||
+ | |||
+ | [[https://www.sparkfun.com/products/9578|Sparkfun]] | ||
+ | |||
+ | [[http://www.speechchips.com/shop/item.aspx?itemid=6|Speechchips]] | ||
+ | |||
+ | [[http://www.lextronic.fr/P3124-circuit-integre-speakjet.html|Lextronic France]] | ||
\\ | \\ | ||
+ | ====== The MBHP SpeakJet IIC Module ======= | ||
- | ===== The MBHP SpeakJet IIC Module ====== | + | \\ |
This project is in progress at the moment. Please visit the [[http://forum.midibox.org/|Forum]] (and especially [[http://www.midibox.org/forum/index.php?topic=2870.0|the first SpeakJet thread]] or see the links below for more info. | This project is in progress at the moment. Please visit the [[http://forum.midibox.org/|Forum]] (and especially [[http://www.midibox.org/forum/index.php?topic=2870.0|the first SpeakJet thread]] or see the links below for more info. | ||
* [[http://www.ucapps.de/mbhp_iic_speakjet.html|IIC SpeakJet Module]] <sup>uCApps</sup> | * [[http://www.ucapps.de/mbhp_iic_speakjet.html|IIC SpeakJet Module]] <sup>uCApps</sup> | ||
- | \\ | + | {{http://www.audiocommander.de/picBrowser/phpThumb.php?src=galleries/070305_kII/IMG_7772.jpg&w=250&h=166&q=95&f=.jpg?250x166}} |
**SpeakJet-IIC-Module Breadboard v1.3** | **SpeakJet-IIC-Module Breadboard v1.3** | ||
* **[[SpeakJet Breadboard Construction]]** – Description and How-To of this breadboard construction: | * **[[SpeakJet Breadboard Construction]]** – Description and How-To of this breadboard construction: | ||
- | * [[http://www.audiocommander.de/downloads/midibox/mbhp_iic_speakjet_13.board.pdf|Preliminary Breadboard with lowPassFilter v1.3]] (PDF, 604 kB) | + | * [[http://www.audiocommander.de/downloads/midibox/mbhp_iic_speakjet_13.board.pdf|Breadboard Design with lowPassFilter v1.3]] (PDF, 604 kB) |
- | * [[http://www.audiocommander.de/downloads/midibox/mbhp_iic_speakjet_13.board.fh11.zip|Preliminary Breadboard with lowPassFilter v1.3]] (FreeHandMX sourcefile with a lot of nice electronical symbols, 264 kB) | + | * [[http://www.audiocommander.de/downloads/midibox/mbhp_iic_speakjet_13.board.fh11.zip|Breadboard Design with lowPassFilter v1.3]] (FreeHandMX sourcefile with a lot of nice electronical symbols, 264 kB) |
+ | * [[http://www.audiocommander.de/picBrowser/picBrowser.php?go=galleries/070305_kII&thumbs=1&q=|Picture Gallery: SpeakJet Breadboard v1.3]] | ||
- | \\ | + | If you need older outdated circuit versions, see [[SpeakJet Dev Archive]] |
- | **SpeakJet-IIC-Module Breadboard v1.0** | + | |
- | * [[http://www.audiocommander.de/downloads/midibox/mbhp_iic_speakjet_10.board.pdf|Preliminary Breadboard with lowPassFilter]] (PDF, 480 kB) | + | |
- | * [[http://www.audiocommander.de/downloads/midibox/mbhp_iic_speakjet_10.board.fh11.zip|Preliminary Breadboard with lowPassFilter]] (FreeHandMX sourcefile with a lot of nice electronical symbols, 292 kB) | + | |
- | * [[http://www.audiocommander.de/picBrowser/picBrowser.php?go=galleries/060600_kII_MIOS&thumbs=0|Picture Gallery: SpeakJet Breadboard]] | + | |
- | + | ||
- | {{http://www.audiocommander.de/picBrowser/phpThumb.php?src=galleries/060600_kII_MIOS/IMG_6776.jpg&w=250&h=166&q=95&f=.jpg?250x166}} | + | |
\\ | \\ | ||
- | ===== The SpeakJet Control Application Software ===== | + | ====== SpeakJet Application Software ====== |
- | The SJ Control Application Software provides full access to all SJ-Functions via MIDI! | + | |
- | + | ||
- | kII is a MIDI control application for the MBHP_SpeakJet Module. | + | |
- | By connecting a Core equipped with this program to the SpeakJet Module via IIC you can control nearly all functions of the SpeakJet Chip by Midi-Messages. | + | |
- | + | ||
- | kII stands for "Kempelen Two", Baron Wolfang von Kempelen has been a hungarian inventor and creator of famous automats. Whereas his most famous creatin has been the "Turkish Chessplayer" (which was a late-revealed fake with a chess-player sitting inside), he also invented one of the first talking machines ever. Baron Kempelen lived from 1734 to 1804. | + | |
- | + | ||
- | If you are improving the application, please send me an email or PM me in the forum, so I can update the project! // --audiocommander// | + | |
\\ | \\ | ||
- | **Features**:\\ | + | This project is in progress at the moment. Please visit the [[http://forum.midibox.org/|Forum]] (and especially [[http://www.midibox.org/forum/index.php?topic=2870.0|the first SpeakJet thread]] or see the links below for more info. |
- | * Full MSA and SCP Control via Midi! | + | |
- | * Trigger Allophones and SoundFX by Notes | + | |
- | * Trigger Allophones only by Notes | + | |
- | * Trigger SoundFX only by Notes | + | |
- | * Jaw/Tongue control: set position of jaw and tongue by CC, play pitched Allophone by Notes | + | |
- | * Different Jaw/Tongue sets available: Vowels/Consonants/Pauses | + | |
- | * Change the pitch of currently played Allophones by Notes 0..59 | + | |
- | * Play the 5 Oscillators by Notes, one OSC per Channel | + | |
- | * Harmonic subtractive syntesis Multi-OSC playmode by Notes(!) | + | |
- | * Control Waveforms (shapes) of harmonic synthesis Multi-OSC mode | + | |
- | * Change Allophone Pitch by using the 14bit PitchBend-Wheel | + | |
- | * Control Bend with CH_AFTERTOUCH | + | |
- | * Control Speed by CC | + | |
- | * Control Master Volume by CC | + | |
- | * Send Pauses by CC | + | |
- | * Send Next Slow/High/Low/Fast by CC | + | |
- | * Control OSC-Frquencies and Levels by CC | + | |
- | * Control ENV-Frequency and Type by CC | + | |
- | * Control Distortion (OSC 4 & 5) by CC | + | |
- | * Fire Phrases by CC | + | |
- | * Supports System Realtime Messages START, STOP, CONTINUE, RESET | + | |
- | * Send PANIC by Foot & AllNotes/SoundsOFF Messages | + | |
- | * Custom assignable controls by editing the definition listing (IIC_SpeakJetMidiDefines.h) | + | |
- | + | ||
- | \\ | + | |
- | **Sometimes it's more important to know what it can't do** (yet?): \\ | + | |
- | * AIN sensors to trigger & control natural speech (allophone) output <sup>**1)**</sup> | + | |
- | * Multiple MBHP-IIC-Speakjet Modules (cascaded SpeakJets!) <sup>**2)**</sup> | + | |
- | * Bankstick support to save patches <sup>**2)**</sup> | + | |
- | * Phrase storage (use the [[http://www.magnevation.com/software.htm|Phrase-A-Lator]] from Magnevation via RS232!) <sup>**3)**</sup> | + | |
- | \\ | + | |
- | <sup>**1)**</sup> will be available with the next version\\ | + | |
- | <sup>**2)**</sup> would be nice, I'm thinking about it...\\ | + | |
- | <sup>**3)**</sup> don't wait for it (or help coding :) \\ | + | |
+ | You need the following Software: | ||
+ | * **Firmware for the SpeakJet-IIC-Module** -> [[http://www.ucapps.de/mbhp_iic_speakjet.html|download from uCApps.de/mbhp_iic_speakjet.html]] (v 1.0) | ||
+ | * **SpeakJet Application Software kII** | ||
+ | * v 0.2 (including updated SJ-IIC-Firmware v 1.2) -> [[SpeakJet Application Software v 0.2]] (recommended) | ||
+ | * v 0.1 -> [[SpeakJet Application Software v 0.1]] | ||
+ | * **Phrase-A-Lator** from Magnevation (together with a serial connection to a PC running Windows) is needed if you want to store phrases on the SJ or debug the hardware -- (optional) -> [[http://www.magnevation.com/software.htm|Phrase-A-Lator Download Page]] | ||
\\ | \\ | ||
- | **Download**:\\ | ||
- | |||
- | * [[http://www.audiocommander.de/downloads/midibox/kII.tgz|SpeakJet Application Software 'kII']] – // v 0.1.5 build 20061210 // (138 kb)\\ | ||
- | * runs on the PIC18F Core to enable the full control of the SpeakJet Module by MIDI-Messages. The package contains the source, an X-Code 2.0 project, ACSim-Classes and precompiled .hex and .syx files. | ||
- | * Note that you will also need the PIC16F Firmware for the SpeakJet IIC Module! | ||
- | * Check out the audio-examples at the bottom of this page! | ||
- | |||
+ | ====== SpeakJet Controller Extensions ====== | ||
\\ | \\ | ||
- | **LCD-Values**:\\ | + | Currently some optional add-ons are being developed that allow various control of the MBHP-SpeakJet Project. You can add just one of them or all ;) |
- | A 16x2 LCD is optional. You see following infos: | + | |
- | {{http://www.audiocommander.de/picBrowser/phpThumb.php?src=galleries/060600_kII_MIOS/IMG_7714.jpg&w=250&h=166&q=95&f=.jpg?250x166}} | + | {{youtube>small:qSiMwpbNNsg}} |
- | * N: (Note) Base Note Listener. '-' => inactive, '*' => next note will get new base | + | There are two controller extensions available for the SpeakJet project: |
- | * H: (Harmony) Current Base Note, eg 'D#' | + | |
- | * V: (Value) Last Value (0..127) | + | |
- | * J: (Jaw) Jaw Position, 0x0 opened, 0xB closed | + | |
- | * T: (Tongue) Tongue Position, 0x0 front, 0x5 back | + | |
- | * O: (OSC) Subtractive Synthesis Waveshape: SAW, TRIANGLE, SQUARE | + | |
- | * E: (ENV) Envelope Waveshape: SINE, SAW, TRIANGLE, SQUARE | + | |
- | * R: (REC) Record Buffer Mode (hidden feature) | + | |
+ | * **[[http://www.youtube.com/watch?v=qSiMwpbNNsg|HandTracker Sensor Matrix]]** -> from audiocommander, part of the v0.2 release! | ||
- | \\ | + | * **[[midibox_speakjet_k64_modul|k64 Keyboard Modul]]** -> from Rio. **Note that an adapted version of the k2 application based on v0.1 is required**. The k64 has some additional synth functions, the original k2 app does not provide atm. Future k2-updates may or may not be compatible with this mod. |
- | **MIDI-Implementation-Chart**:\\ | + | |
- | + | ||
- | ^ Function ^ #define ^ default assingment ^ Channel Mode ^ Description ^ | + | |
- | ^ == NOTES == ^ ^ ^ ^ ^ ^ | + | |
- | ^ Voice ^ ^ ^ ^ ^ ^ | + | |
- | | Soundcodes | SJCH_SOUNDCODES | CH 1 | Omni | Play all available Sounds | | + | |
- | | Allophones | SJCH_ALLOPHONES | CH 2 | Omni | Play all available Vocal Allophones | | + | |
- | | Sound-FX | SJCH_FX | CH 3 | Omni | Play all available Sound-FX | | + | |
- | | Pitch | SJCH_PITCH | CH 4 | Omni | Change the pitch of current Sounds; if nothing is triggered, you can't hear anything! | | + | |
- | | Vowels | SJCH_VOWELS | CH 5 | Omni | Trigger Pitched Allophone; Jaw- and Tongue-Controls are needed to change the vowel | | + | |
- | | Consonants | SJCH_CONSONANTS | CH 6 | Omni | Trigger Pitched Consonants; Jaw- and Tongue-Controls are needed to change the consonant | | + | |
- | | Vowels/Cons | SJCH_VOWELS_CONSONANTS | CH 7 | Omni | Trigger Pitched Allophones; Jaw- and Tongue-Controls are needed to change the consonant | | + | |
- | | Vowels w. Pauses | SJCH_VOWL_PAUS | CH 8 | Omni | Trigger Pitched Vowels with Pauses; Jaw- and Tongue-Controls are needed to change the consonant | | + | |
- | | Vowels/Cons w. Pauses | SJCH_VOWL_CONS_PAUS | CH 9 | Omni | Trigger Pitched Vowels & Consonants with Pauses; Jaw- and Tongue-Controls are needed to change the consonant | | + | |
- | | Vocal Percussion | SJCH_PERCUSSIVE | CH 10 | Omni | Trigger percussive sounds only | | + | |
- | ^ Synth ^ ^ ^ ^ ^ ^ | + | |
- | | OSC1 | SJCH_OSC1 | CH 11 | Poly | Play OSC 1 | | + | |
- | | OSC2 | SJCH_OSC2 | CH 12 | Poly | Play OSC 2 | | + | |
- | | OSC3 | SJCH_OSC3 | CH 13 | Poly | Play OSC 3 | | + | |
- | | OSC4 | SJCH_OSC4 | CH 14 | Poly | Play OSC 4 | | + | |
- | | OSC5 | SJCH_OSC5 | CH 15 | Poly | Play OSC 5 | | + | |
- | | Synth | SJCH_OSC_Omni | CH 16 | Omni | Subtractive Soundsynthesis with all 5 OSCs (Single Voice only). Apply different waveforms for both synth & envelope and add distortion for soundmodelling! | | + | |
- | ^ == CONTROL CHANGE (Sliders) == ^ ^ ^ ^ ^ ^ | + | |
- | ^ Voice ^ ^ ^ ^ ^ ^ | + | |
- | | Phrases | SJCC_PHRASE | CC 9 | Omni | Fire SpeakJet Phrase | | + | |
- | | Jaw Open | SJCC_MOUTH_JAW | CC 40 | Omni | Open Jaw, eg: closed 'u', opened 'a' | | + | |
- | | Tongue Position | SJCC_MOUTH_TONGUE | CC 41 | Omni | Position Tongue, eg: front 'th', back 'err' | | + | |
- | | Stress | SJCC_MOUTH_STRESS | CC 43 | Omni | Bend Voice from high env to low env (pitch independent) | | + | |
- | | Speed | SJCC_MOUTH_SPEED | CC 44 | Omni | Speed up or slow down allophone lengths | | + | |
- | | Pauses | SJCC_MOUTH_PAUSES | CC 45 | Omni | Inserts Pauses from 0 to 640 ms (0..127) | | + | |
- | | Volume | SJCC_MASTER_VOL | CC 108 | Omni | Set Main Volume | | + | |
- | ^ Synth ^ ^ ^ ^ ^ ^ | + | |
- | | OSCx Level | SJCC_OSCx_LVL | CC 101..105 | Poly | Set Volume of OSC 1 to 5 | | + | |
- | | OSCx Freqency | SJCC_OSCx_FREQ | CC 111..115 | Poly | Set Frequency of OSC 1 to 5 | | + | |
- | | Envelope Frequency | SJCC_ENV_FREQ | CC 106 | Omni | Set Envelope's frequency | | + | |
- | | Envelopy Waveform | SJCC_ENV_TYPE | CC 116 | Omni | Set Waveshape of ENV: Saw, Sine, Triangle, Square | | + | |
- | | Distortion | SJCC_DISTORTION | CC 118 | Omni | Set Distortion Amount (0..127) | | + | |
- | ^ Harmonizer ^ ^ ^ ^ ^ ^ | + | |
- | | Base Note | SJCC_HARMONY_BASE | CC 39 | Omni | Set base note (0..127) | | + | |
- | ^ == CONTROL CHANGE (Buttons) == ^ ^ ^ ^ ^ ^ | + | |
- | ^ Voice ^ ^ ^ ^ ^ ^ | + | |
- | | Phrases 0..3 | SJCC_PHRASEx | CC 29..32 | Omni | Fire SpeakJet Phrases 0 to 3 | | + | |
- | | Pauses 0..6 | SJCC_PAUSEx | CC 21..24 | Omni | Fire Pauses; currently implemented: 1,2,3,5 | | + | |
- | | Slower | SJCC_NEXT_SLOW | CC 25 | Omni | Play next Allophone slower | | + | |
- | | Lower | SJCC_NEXT_LOW | CC 26 | Omni | Play next Allophone lower | | + | |
- | | Higher | SJCC_NEXT_HIGH | CC 27 | Omni | Play next Allophone higher | | + | |
- | | Faster | SJCC_NEXT_FAST | CC 28 | Omni | Play next Allophone faster | | + | |
- | ^ Synth ^ ^ ^ ^ ^ ^ | + | |
- | | Synth Waveshape | SJCC_OSC_WAVESHAPE | CC 50 | Omni | Toggle Synth Waveshape: Saw, Triangle, Square | | + | |
- | | Envelope Waveshape | SJCC_ENV_WAVESHAPE | CC 51 | Omni | Toggle Env Waveshape: Saw, Triangle, Square, Sine | | + | |
- | ^ Harmonizer ^ ^ ^ ^ ^ ^ | + | |
- | | Base Note | SJCC_HARMONY_LISTEN | CC 37 | Omni | Toggle on to set new base note by next incoming note | | + | |
- | | Scale | SJCC_HARMONY_SCALE | CC 38 | Omni | Next Scale; 0=none, 1=major, 2=minor | | + | |
- | ^ == PITCH WHEEL == ^ ^ ^ ^ ^ ^ | + | |
- | ^ Voice ^ ^ ^ ^ ^ ^ | + | |
- | | Pitch | SJCC_PITCH | - | Omni | Changes the Pitch of Soundcodes | | + | |
- | ^ == POLY AFTERTOUCH == ^ ^ ^ ^ ^ ^ | + | |
- | ^ Voice ^ ^ ^ ^ ^ ^ | + | |
- | | Bend | MIDI_POLY_AFTER | - | Omni | Changes the Bending of Soundcodes | | + | |
- | | Bend | MIDI_CH_AFTER | - | Omni | Changes the Bending of Soundcodes | | + | |
- | ^ == SYSTEM REALTIME MESSAGES == ^ ^ ^ ^ ^ ^ | + | |
- | | START, CONTINUE | MIDI_START, MIDI_CONTINUE | - | - | Start Enunciating | | + | |
- | | STOP | MIDI_STOP | - | - | Pause Enunciating | | + | |
- | | RESET | MIDI_RESET | - | - | Hardware-Reset (similar to switching power off/on) | | + | |
\\ | \\ | ||
- | **Tools & Helpers**:\\ | + | ====== Further Information... ====== |
- | If you're a developer and are working on your own implementations, you will find these sources useful: | + | |
- | * [[SpeakJet Control Overview]] (SCP and MSA Control Overview) | + | |
- | * [[SpeakJet Definition List]] (SCP and MSA Command #defines) | + | |
- | * [[acmididefines|Midi Definition List]] incl. Note2Frequency definitions (see [[MIDI Specification]]) | + | |
- | + | ||
- | + | ||
- | \\ | + | |
- | + | ||
- | ===== For Further Information... ===== | + | |
* [[http://www.midibox.org/forum/index.php?topic=2870.0|Midibox.org SpeakJet thread]] | * [[http://www.midibox.org/forum/index.php?topic=2870.0|Midibox.org SpeakJet thread]] |