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 revision Previous revision
Next revision
Previous revision
speakjet_definition_list [2006/06/09 12:07]
audiocommander
speakjet_definition_list [2006/12/05 14:28] (current)
audiocommander updated to latest version and removed dev-nfo
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)