sfnt_info.h
001: #ifndef __SOUND_SFNT_INFO_H
002: #define __SOUND_SFNT_INFO_H
003: 
004: 
005: 
006: 
007: 
008: 
009: 
010: 
011: 
012: 
013: 
014: 
015: 
016: 
017: 
018: 
019: 
020: 
021: 
022: 
023: 
024: 
025: #include <sound/asound.h>
026: 
027: 
028: 
029: 
030: 
031: #ifdef SNDRV_BIG_ENDIAN
032: #define SNDRV_OSS_PATCHKEY(id) (0xfd00|id)
033: #else
034: #define SNDRV_OSS_PATCHKEY(id) ((id<<8)|0xfd)
035: #endif
036: 
037: 
038: struct soundfont_patch_info {
039:         unsigned short key;             
040: #define SNDRV_OSS_SOUNDFONT_PATCH               SNDRV_OSS_PATCHKEY(0x07)
041: 
042:         short device_no;                
043:         unsigned short sf_id;           
044:         short optarg;                   
045:         int len;                        
046: 
047:         short type;                     
048: #define SNDRV_SFNT_LOAD_INFO            0       
049: #define SNDRV_SFNT_LOAD_DATA            1       
050: #define SNDRV_SFNT_OPEN_PATCH   2       
051: #define SNDRV_SFNT_CLOSE_PATCH  3       
052:         
053: #define SNDRV_SFNT_REPLACE_DATA 5       
054: #define SNDRV_SFNT_MAP_PRESET   6       
055:         
056: #define SNDRV_SFNT_PROBE_DATA           8       
057: #define SNDRV_SFNT_REMOVE_INFO          9       
058: 
059:         short reserved;                 
060: 
061:         
062: };
063: 
064: 
065: 
066: 
067: 
068: 
069: #define SNDRV_SFNT_PATCH_NAME_LEN       32
070: 
071: struct soundfont_open_parm {
072:         unsigned short type;            
073: #define SNDRV_SFNT_PAT_TYPE_MISC        0
074: #define SNDRV_SFNT_PAT_TYPE_GUS 6
075: #define SNDRV_SFNT_PAT_TYPE_MAP 7
076: #define SNDRV_SFNT_PAT_LOCKED   0x100   
077: #define SNDRV_SFNT_PAT_SHARED   0x200   
078: 
079:         short reserved;
080:         char name[SNDRV_SFNT_PATCH_NAME_LEN];
081: };
082: 
083: 
084: 
085: 
086: 
087: 
088: 
089: struct soundfont_voice_parm {
090:         unsigned short moddelay;        
091:         unsigned short modatkhld;       
092:         unsigned short moddcysus;       
093:         unsigned short modrelease;      
094:         short modkeyhold, modkeydecay;  
095:         unsigned short voldelay;        
096:         unsigned short volatkhld;       
097:         unsigned short voldcysus;       
098:         unsigned short volrelease;      
099:         short volkeyhold, volkeydecay;  
100:         unsigned short lfo1delay;       
101:         unsigned short lfo2delay;       
102:         unsigned short pefe;            
103:         unsigned short fmmod;           
104:         unsigned short tremfrq;         
105:         unsigned short fm2frq2;         
106:         unsigned char cutoff;           
107:         unsigned char filterQ;          
108:         unsigned char chorus;           
109:         unsigned char reverb;           
110:         unsigned short reserved[4];     
111: };
112: 
113: 
114: 
115: struct soundfont_voice_info {
116:         unsigned short sf_id;           
117:         unsigned short sample;          
118:         int start, end;                 
119:         int loopstart, loopend;         
120:         short rate_offset;              
121:         unsigned short mode;            
122: #define SNDRV_SFNT_MODE_ROMSOUND                0x8000
123: #define SNDRV_SFNT_MODE_STEREO          1
124: #define SNDRV_SFNT_MODE_LOOPING         2
125: #define SNDRV_SFNT_MODE_NORELEASE               4       
126: #define SNDRV_SFNT_MODE_INIT_PARM               8
127: 
128:         short root;                     
129:         short tune;                     
130:         unsigned char low, high;        
131:         unsigned char vellow, velhigh;  
132:         signed char fixkey, fixvel;     
133:         signed char pan, fixpan;        
134:         short exclusiveClass;           
135:         unsigned char amplitude;        
136:         unsigned char attenuation;      
137:         short scaleTuning;              
138:         struct soundfont_voice_parm parm;       
139:         unsigned short sample_mode;     
140: };
141: 
142: 
143: 
144: struct soundfont_voice_rec_hdr {
145:         unsigned char bank;             
146:         unsigned char instr;            
147:         char nvoices;                   
148:         char write_mode;                
149: #define SNDRV_SFNT_WR_APPEND            0       
150: #define SNDRV_SFNT_WR_EXCLUSIVE         1       
151: #define SNDRV_SFNT_WR_REPLACE           2       
152: };
153: 
154: 
155: 
156: 
157: 
158: 
159: 
160: struct soundfont_sample_info {
161:         unsigned short sf_id;           
162:         unsigned short sample;          
163:         int start, end;                 
164:         int loopstart, loopend;         
165:         int size;                       
166:         short dummy;                    
167:         unsigned short mode_flags;      
168: #define SNDRV_SFNT_SAMPLE_8BITS         1       
169: #define SNDRV_SFNT_SAMPLE_UNSIGNED      2       
170: #define SNDRV_SFNT_SAMPLE_NO_BLANK      4       
171: #define SNDRV_SFNT_SAMPLE_SINGLESHOT    8       
172: #define SNDRV_SFNT_SAMPLE_BIDIR_LOOP    16      
173: #define SNDRV_SFNT_SAMPLE_STEREO_LEFT   32      
174: #define SNDRV_SFNT_SAMPLE_STEREO_RIGHT  64      
175: #define SNDRV_SFNT_SAMPLE_REVERSE_LOOP  128     
176:         unsigned int truesize;          
177: };
178: 
179: 
180: 
181: 
182: 
183: 
184: struct soundfont_voice_map {
185:         int map_bank, map_instr, map_key;       
186:         int src_bank, src_instr, src_key;
187: };
188: 
189: 
190: 
191: 
192: 
193: 
194: #define SNDRV_EMUX_HWDEP_NAME   "Emux WaveTable"
195: 
196: #define SNDRV_EMUX_VERSION      ((1 << 16) | (0 << 8) | 0)      
197: 
198: struct snd_emux_misc_mode {
199:         int port;       
200:         int mode;
201:         int value;
202:         int value2;     
203: };
204: 
205: #define SNDRV_EMUX_IOCTL_VERSION        _IOR('H', 0x80, unsigned int)
206: #define SNDRV_EMUX_IOCTL_LOAD_PATCH     _IOWR('H', 0x81, struct soundfont_patch_info)
207: #define SNDRV_EMUX_IOCTL_RESET_SAMPLES  _IO('H', 0x82)
208: #define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83)
209: #define SNDRV_EMUX_IOCTL_MEM_AVAIL      _IOW('H', 0x84, int)
210: #define SNDRV_EMUX_IOCTL_MISC_MODE      _IOWR('H', 0x84, struct snd_emux_misc_mode)
211: 
212: #endif 
213: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved