====== The SpeakJet Control Application Software v.0.1 ====== You should have come here from the [[Midibox SpeakJet]] Project. On this page you'll find descriptions of the Application Software kII for the Core Module, that controls the MBHP-IIC-SpeakJet-Module. 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 ====== * 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 **1)** * Multiple MBHP-IIC-Speakjet Modules (cascaded SpeakJets!) **2)** * Bankstick support to save patches **2)** * Phrase storage (use the [[http://www.magnevation.com/software.htm|Phrase-A-Lator]] from Magnevation via RS232!) **3)** \\ **1)** will be available with the next version\\ **2)** would be nice, I'm thinking about it...\\ **3)** don't wait for it (or help coding :) \\ \\ \\ ===== Download ===== * [[http://www.audiocommander.de/downloads/midibox/kII_015.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 the [[Midibox SpeakJet]] page! \\ \\ ===== LCD-Values ===== 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}} * N: (Note) Base Note Listener. '-' => inactive, '*' => next note will get new base * 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) \\ \\ ===== 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 Freqency | SJCC_OSCx_FREQ | CC 101..105 | Poly | Set Frequency of OSC 1 to 5 | | OSCx Level | SJCC_OSCx_LVL | CC 111..115 | Poly | Set Volume 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 ===== 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]]) \\