User Tools

Site Tools


speakjet_definition_list

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
speakjet_definition_list [2006/06/09 12:07] audiocommanderspeakjet_definition_list [2006/12/05 14:28] (current) – updated to latest version and removed dev-nfo audiocommander
Line 1: Line 1:
 ====== SCP and MSA #defines for the SpeakJet ====== ====== SCP and MSA #defines for the SpeakJet ======
  
-**ImportantNote:\\ +\\
-This file is currently under development and can change radically!\\ +
-Maybe you want to wait some days until this note disappears to add your SJ-Definitions** +
- +
-It can be used for your C-based MBHP_IIC_SpeakJet Project: +
- +
-Feel free to edit and add defines! +
- +
 <code c> <code c>
- 
 /* /*
   IIC_SpeakJetDefines.h   IIC_SpeakJetDefines.h
Line 20: Line 11:
    and ASM-Version of Doug Elliott, VA3DAE    and ASM-Version of Doug Elliott, VA3DAE
  *  *
- *  Released under CreativeCommons 2.5 by-nc-sa + *  Copyright 2006 Michael Markert, http://www.audiocommander.de
- *  http://creativecommons.org/licenses/by-nc-sa/2.5/+
  *  *
 + */
 +
 +/*
 + * Released under GNU General Public License
 + * http://www.gnu.org/licenses/gpl.html
 + 
 + * This program is free software; you can redistribute it and/or modify it under the terms
 + * of the GNU General Public License as published by the Free Software Foundation
 + *
 + * YOU ARE ALLOWED TO COPY AND CHANGE 
 + * BUT YOU MUST RELEASE THE SOURCE TOO (UNDER GNU GPL) IF YOU RELEASE YOUR PRODUCT 
 + * YOU ARE NOT ALLOWED NOT USE IT WITHIN PROPRIETARY CLOSED-SOURCE PROJECTS
  */  */
  
Line 30: Line 32:
  
  
-// ********* SPEAKJET SCP REGISTERS **** // + 
-// SCP Registers & MAX Values+// ********* SPEAKJET SCP ************* // 
 +// Serial Control Protocol
 #ifdef _DEBUG_C #ifdef _DEBUG_C
  #pragma mark -  #pragma mark -
- #pragma mark SCP REGISTERS & MAX VALUES+ #pragma mark SCP
 #endif #endif
  
-// Envelope +// escape character ('\\') 0x5C to enter SCP Mode 
-#define SCP_ENV_FREQ +#define SCP_ESCAPE '\\' 
-#define SCP_ENV_CTRL 8 +#define SCP_SEL0 '0' 
-// ENVType (send ENVType + ENVState!) +#define SCP_SEL1 '1' 
-#define SCP_ENV_SAW 0x0 +#define SCP_SEL2 '2' 
-#define SCP_ENV_SINE 0x1 +#define SCP_SEL3 '3' 
-#define SCP_ENV_TRIANGLE 0x2 +#define SCP_SEL4 '4' 
-#define SCP_ENV_SQUARE 0x3 +#define SCP_SEL5 '5' 
-// ENVState (send ENVType + ENVState!) +#define SCP_SEL6 '6' 
-#define SCP_ENV_OSC123 0x40 +#define SCP_SEL7 '7' 
-#define SCP_ENV_OSC45 0x80+#define SCP_EXIT 'X'
  
-// Oscillators +#define SCP_READY 'V' 
-#define SCP_OSC1_FREQ 1 +#define SCP_CLEAR_BUFFER 'R' 
-#define SCP_OSC2_FREQ 2 +#define SCP_START 'T' 
-#define SCP_OSC3_FREQ 3 +#define SCP_STOP 'S'
-#define SCP_OSC4_FREQ 4 +
-#define SCP_OSC5_FREQ 5 +
-#define SCP_FREQ_MAX 3999+
  
-#define SCP_OSC1_LEVEL 11 +#define SCP_MEMTYPE 'H' 
-#define SCP_OSC2_LEVEL 12 +#define SCP_MEMADDR 'J' 
-#define SCP_OSC3_LEVEL 13 +#define SCP_MEMWRT 'N'
-#define SCP_OSC4_LEVEL 14 +
-#define SCP_OSC5_LEVEL 15 +
-#define SCP_LEVEL_MAX 31 // 63 MAX for Mixer 1+
  
-// Distortion +#define SCP_RESET 'W'
-#define SCP_DISTORTION 6 +
-#define SCP_DISTORTION_MAX 255+
  
-// Master 
-#define SCP_MASTER_VOLUME 7 
-#define SCP_MASTER_VOLUME_MAX 255 
  
 +// ********* SPEAKJET SCP REGISTERS **** //
 +// SCP Registers & MAX Values
 +#ifdef _DEBUG_C
 + #pragma mark -
 + #pragma mark SCP REGISTERS & MAX VALUES
 +#endif
  
 +// == SCP_MEMTYPE (H) ==
 +#define SCP_MEMTYPE_REGISTER '0'
 +#define SCP_MEMTYPE_EEPROM_H '3'
 +#define SCP_MEMTYPE_EEPROM_L '2'
  
 +// == SCP_MEMADDR (J) ==
 +// Envelope
 +#define SCP_ENV_FREQ '0'
 +#define SCP_ENV_CTRL '8'
 +// Oscillator Frequency Register (not used, calculated)
 +#define SCP_OSC1_FREQ '1'
 +#define SCP_OSC2_FREQ '2'
 +#define SCP_OSC3_FREQ '3'
 +#define SCP_OSC4_FREQ '4'
 +#define SCP_OSC5_FREQ '5'
 +// Oscillator Level Register (not used, calculated)
 +#define SCP_OSC1_LEVEL 11
 +#define SCP_OSC2_LEVEL 12
 +#define SCP_OSC3_LEVEL 13
 +#define SCP_OSC4_LEVEL 14
 +#define SCP_OSC5_LEVEL 15
 +// Distortion
 +#define SCP_DISTORTION '6'
 +// Master
 +#define SCP_MASTER_VOLUME '7'
  
 +// == SCP_MEMWRT (N) ==
 +// ENVType (send ENVType + ENVState!)
 +#define SCP_ENV_SAW '2'
 +#define SCP_ENV_SINE '3'
 +#define SCP_ENV_TRIANGLE '4'
 +#define SCP_ENV_SQUARE '5'
 +// ENVState (send ENVType + ENVState!)
 +#define SCP_ENV_OSC123 0x40
 +#define SCP_ENV_OSC45 0x80
 +//  Default values
 +#define SCP_FREQ_DEFAULT 440
 +#define SCP_LEVEL_DEFAULT 20 // 63 MAX for Mixer 1: OSC 1, 2 & 3
 +//  Maximum accepted values
 +#define SCP_FREQ_MAX 3999
 +#define SCP_LEVEL_MAX 31
 +#define SCP_DISTORTION_MAX 255
 +#define SCP_MASTER_VOLUME_MAX 255
  
  
-// ********* SPEAKJET SCP ************* // 
-// Serial Control Protocol 
-#ifdef _DEBUG_C 
- #pragma mark - 
- #pragma mark SCP 
-#endif 
- 
-// escape character ('\\') 0x5C to enter SCP Mode 
-#define SCP_ESCAPE 0x5C 
-#define SCP_SEL0 0 
-#define SCP_SEL1 1 
-#define SCP_SEL2 2 
-#define SCP_SEL3 3 
-#define SCP_SEL4 4 
-#define SCP_SEL5 5 
-#define SCP_SEL6 6 
-#define SCP_SEL7 7 
-#define SCP_EXIT X 
  
-#define SCP_READY V 
-#define SCP_CLEAR_BUFFER R 
-#define SCP_START T 
-#define SCP_STOP S 
  
-#define SCP_MEMTYPE H 
-#define SCP_MEMADDR J 
-#define SCP_MEMWRT N 
  
-#define SCP_RESET W 
  
  
Line 119: Line 132:
  
 // 0 - 31 CONTROL CODES // 0 - 31 CONTROL CODES
-#define MSA_PAUSE0 0 +#define MSA_PAUSE0 0 // 0ms 
-#define MSA_PAUSE1 1 +#define MSA_PAUSE1 1 // 100ms 
-#define MSA_PAUSE2 2 +#define MSA_PAUSE2 2 // 200ms 
-#define MSA_PAUSE3 3 +#define MSA_PAUSE3 3 // 700ms 
-#define MSA_PAUSE4 4 +#define MSA_PAUSE4 4 // 30ms 
-#define MSA_PAUSE5 5 +#define MSA_PAUSE5 5 // 60ms 
-#define MSA_PAUSE6 6+#define MSA_PAUSE6 6 // 90ms
  
 #define MSA_NEXTFAST 7 #define MSA_NEXTFAST 7
Line 306: Line 319:
 #endif #endif
  
-#define MSA_EOP 255+#define MSA_EOP 255 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +// <<--- Application related defines --->> 
 + 
 +// SCP ControlTypes 
 +// realtime announces single SCP messages like "Clear Buffer" 
 +// register is used for 3-part-msgs: select register, select memtype and write value 
 +#define SCP_CTRLTYPE_REALTIME 0x0 
 +#define SCP_CTRLTYPE_REGISTER 0x1 
 + 
 +// Articulation ControlTypes 
 +#define ARTICULATION_JAW 0x1 
 +#define ARTICULATION_TONGUE 0x2 
 +#define ARTICULATION_GLOTTIS 0x3 
 + 
 +// OSC Harmonic Waveshapes 
 +#define OSCSYNTH_WAVE_TRIANGLE 0 
 +#define OSCSYNTH_WAVE_SQUARE 1 
 +#define OSCSYNTH_WAVE_SAW 2 
  
  
speakjet_definition_list.1149854829.txt.gz · Last modified: 2006/10/15 09:35 (external edit)