helpThe OpenVortex Project - Support: sr #102975, Wavetable Synthesizer

 
 

sr #102975: Wavetable Synthesizer

Submitted by:  None
Submitted on:  Sun 04 Apr 2004 12:47:37 PM UTC  
 
Category: NonePriority: 5 - Normal
Severity: 1 - WishStatus: None
Privacy: PublicAssigned to: None
Originator Email: -unavailable-Open/Closed: Open
Operating System: None

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Mon 15 Nov 2004 12:03:49 PM UTC, comment #16:

http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=1&f=G&l=50&s1=6,167,465.WKU.&OS=PN/6,167,465&RS=PN/6,167,465

Wavetables, such as wavetable 342, are commonly used in audio processing. Thus, in the exemplary embodiment, a number of DMA channels are dedicated to wavetable operations. Queue list 401 may be dedicated to conventional DMA channels while queue list 402 may be dedicated to wavetable DMA channels. Correspondingly, a number of sub-buffer tables 380, previously discussed, may be dedicated to wavetable DMA channels without significant alteration from the sub-buffer tables disclosed. Further, some of FIFOs 306 may be dedicated to wavetable DMA channels.

http://lists.gnu.org/archive/html/openvortex-dev/2004-09/msg00001.html

Anonymous
Wed 07 Jul 2004 05:55:06 PM UTC, comment #15:

I have put the ARL, DLS and MIDI parsers in Vortex Control Panel 0.0.6 , this may help the developer who want to implement driver for the hardware wavetable synthesiser

support #103017

Anonymous
Sat 19 Jun 2004 03:34:27 AM UTC, comment #14:

How to pass the properties of sample in sound bank and the properties of midi to the registers of au88x0 wavetable ?

Sample rate : samples not same rate.
Bits per sample : 16

Velocity: volume
Sample Looping : timer

Pitch : Varing pitch to produce different notes of an instrument

Lowpass Filter
Low Frequency Oscillators

Envelope Generators (delay, hold ,attack, sustain, decay, release)
Effect (Chrous, Reverb, Panning)

Remark : There are some unknown generators in the sound bank.

#define WT_BAR(x) (((x)&0xffe0)<<0x8)
#define WT_BANK(x) (x>>5)
/* WT Bank registers */
#define WT_CTRL(bank) (((((bank)&1)<<0xd) + 0x00)<<2) /* 0x0000 */
#define WT_SRAMP(bank) (((((bank)&1)<<0xd) + 0x01)<<2) /* 0x0004 */
#define WT_DSREG(bank) (((((bank)&1)<<0xd) + 0x02)<<2) /* 0x0008 */
#define WT_MRAMP(bank) (((((bank)&1)<<0xd) + 0x03)<<2) /* 0x000c */
#define WT_GMODE(bank) (((((bank)&1)<<0xd) + 0x04)<<2) /* 0x0010 */
#define WT_ARAMP(bank) (((((bank)&1)<<0xd) + 0x05)<<2) /* 0x0014 */
/* WT Voice registers */
#define WT_STEREO(voice) ((WT_BAR(voice)+ 0x20 +(((voice)&0x1f)>>1))<<2) /* 0x0080 */
#define WT_MUTE(voice) ((WT_BAR(voice)+ 0x40 +((voice)&0x1f))<<2) /* 0x0100 */
#define WT_RUN(voice) ((WT_BAR(voice)+ 0x60 +((voice)&0x1f))<<2) /* 0x0180 */
/* Some kind of parameters. */
/* PARM0, PARM1 : Filter (0xFF000000), SampleRate (0x0000FFFF) */
/* PARM2, PARM3 : Still unknown */
#define WT_PARM(x,y) (((WT_BAR(x))+ 0x80 +(((x)&0x1f)<<2)+(y))<<2) /* 0x0200 */
#define WT_DELAY(x,y) (((WT_BAR(x))+ 0x100 +(((x)&0x1f)<<2)+(y))<<2) /* 0x0400 */

Anonymous
Tue 15 Jun 2004 12:44:57 PM UTC, comment #13:

There is a midi parser in

alsa-utils/seq/aplaymidi/aplaymidi.c

It seem that if we use au88x0 as synthesizer, we will need to implement functions

typedef struct snd_seq_midi_op {
void (note_on)(void private_data, int note, int vel, snd_midi_channel_t *chan);
void (note_off)(void private_data,int note, int vel, snd_midi_channel_t chan); / release note */
void (key_press)(void private_data, int note, int vel, snd_midi_channel_t *chan);
void (note_terminate)(void private_data, int note, snd_midi_channel_t chan); / terminate note immediately */
void (control)(void private_data, int type, snd_midi_channel_t *chan);
void (nrpn)(void private_data, snd_midi_channel_t chan, snd_midi_channel_set_t chset);
void (sysex)(void private_data, unsigned char buf, int len, int parsed, snd_midi_channel_set_t chset);

} snd_midi_op_t;

alsa-kernel/include/seq_midi_emul.h

Not sure those midi reverb and chrous

SNDRV_MIDI_SYSEX_GS_CHORUS_MODE,
SNDRV_MIDI_SYSEX_GS_REVERB_MODE,

are suitable for 3D sound

Anonymous
Sun 13 Jun 2004 01:23:25 AM UTC, comment #12:

The wavetable daughter board is a completely separate Synthesizer which takes MIDI IN/OUT from the external MIDI port and puts out audio to the video input of the AC97 CODEC. The only control our drivers have over it is volume

http://3dsoundsurge.com/faq/4.29.html

Anonymous
Wed 09 Jun 2004 03:22:06 PM UTC, comment #11:

W2K driver write special routes (the upper 16 bits is non zero) in the routes table when playing midi limiting number of voices to 64.

Wl:0xf710a080,0xffff 28080
Wl:0xf710a000,0xf7183a20 28000
Wl:0xf710a198,0xeb843b00 28198
.
.
.
Wl:0xf710a188,0xffff 28188

Wl:0xf710a184,0x81cb0162 28184
Wl:0xf710a080,0x161 28080
.
.
.
Wl:0xf710a104,0xffff 28104

Wl:0xf710a100,0xf5490041 28100

Wl:0xf710a2b8,0x40 282b8
.
.
.
Wl:0xf710a19c,0xffff 2819c

Wl:0xf710a198,0xf5492167 28198
Wl:0xf710a24c,0x2066 2824c

Anonymous
Sun 06 Jun 2004 12:04:52 PM UTC, comment #10:

64-voice hardware Wavetable synthesizer, with 8 real-time effects (any 2 can be assigned at one time) including Delay, Room/Chamber/Hall Reverb, Cabinet (Organ Tremolo), Flange, Chorus, Distortion and Wah-Wah. Supports multi-layered sound banks for better realism (try out the Electric Pianos at low and high velocities). Default sound bank is almost 5MB and is multi-layered. Wavetable engine uses fourth-order interpolation, 4-pole resonance filtering, five-stage envelope generation and support for up to 16-bit 48KHz PCM samples. 512 software synthesizer voices using same Wavetable samples as the hardware synth.

http://myweb.tiscali.co.uk/chris.day/faq/vortex08.htm

Anonymous
Sun 06 Jun 2004 12:49:25 AM UTC, comment #9:

Not all of the samples in sound bank file are 16 bits, some of them are 8 bits.

sample rate of some samples are > 48000 , this may be a bug of sound bank file.

static snd_pcm_hardware_t snd_vortex_playback_hw_wt = {
.info = (SNDRV_PCM_INFO_MMAP |
SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID),
.formats = SNDRV_PCM_FMTBIT_S16_LE,
.rates = SNDRV_PCM_RATE_8000_48000 | SNDRV_PCM_RATE_CONTINUOUS, // SNDRV_PCM_RATE_48000,
.rate_min = 8000,
.rate_max = 48000,

Anonymous
Sat 05 Jun 2004 03:22:16 PM UTC, comment #8:

static snd_pcm_hardware_t snd_vortex_playback_hw_wt = {
.info = (SNDRV_PCM_INFO_MMAP |
SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID),

http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg06655.html

http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg06672.html

Anonymous
Fri 04 Jun 2004 12:19:51 PM UTC, comment #7:

If the number of samples between startloop and endloop of a sound bank is an odd number, do it mean that we are forced to use period size = 1 ?

Anonymous
Fri 16 Apr 2004 02:38:42 PM UTC, comment #6:

sb << ((0xf - (wtdma & 0xf)) * 2) ????????????

sb << ((0xf - (adbdma & 0xf)) * 2)

static void vortex_adbdma_setstartbuffer(vortex_t * vortex, int adbdma, int sb)
{
stream_t *dma = &vortex->dma_adb[adbdma];
//hwwrite(vortex->mmio, VORTEX_ADBDMA_START + (adbdma << 2), sb << (((NR_ADB-1)-((adbdma&0xf)*2))));
hwwrite(vortex->mmio, VORTEX_ADBDMA_START + (adbdma << 2),
sb << ((0xf - (adbdma & 0xf)) * 2));
dma->period_real = dma->period_virt = sb;
}

static void vortex_wtdma_setstartbuffer(vortex_t * vortex, int wtdma, int sb)
{
stream_t *dma = &vortex->dma_wt[wtdma];
//hwwrite(vortex->mmio, VORTEX_WTDMA_START + (wtdma << 2), sb << ((0x1f-(wtdma&0xf)*2)));
hwwrite(vortex->mmio, VORTEX_WTDMA_START + (wtdma << 2),
sb << ((0xf - (wtdma & 0xf)) * 2));
dma->period_real = dma->period_virt = sb;
}

Anonymous
Thu 15 Apr 2004 08:47:02 AM UTC, comment #5:

There are 8 drum kits and 128 instruments in aureal sound bank.

A riff parser will be need to upload the sound font into system memory.

Anonymous
Wed 14 Apr 2004 12:15:40 PM UTC, comment #4:

It sound at a higher pitch ( seem src not set properly )

> aplay -v -D hw:0,3 /root/music/a3d/bee.wav

Playing WAVE '/root/music/a3d/bee.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
Hardware PCM card 0 'au8830' device 3 subdevice 0

Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 1
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 22528
period_size : 2048
period_time : 46439
tick_time : 10000
tstamp_mode : NONE
period_step : 1
sleep_min : 0
avail_min : 2048
xfer_align : 2048
start_threshold : 22528
stop_threshold : 22528
silence_threshold: 0
silence_size : 0
boundary : 1476395008
aplay: pcm_write:1088: write error: Input/output error

Anonymous
Wed 14 Apr 2004 12:08:34 PM UTC, comment #3:

After removinng some wt routes and changing the order of wt routes at vortex_wt_connect()

28140 : 00007151 CODECIN1->MIXIN1
28144 : 00006052 WTMIX(0,0)->MIXIN2
28148 : 0000a053 WTMIX(1,0)->MIXIN3
2814c : 00006154 WTMIX(0,1)->MIXIN4
28150 : 0000a155 WTMIX(1,1)->MIXIN5
28154 : 0000a696 A3DOUT0->XTALKIN0
28158 : 00006757 XTALKOUT1->MIXIN7
28220 : 00007f89 EQOUT1 ->CODECOUT1
28224 : 0000328c MIXOUT2 ->CODECOUT4
28230 : 0000338d MIXOUT3 ->CODECOUT5
28234 : 00007050 CODECIN0->MIXIN0
28248 : 00003593 MIXOUT5 ->SPDIFOUT1
28258 : 0000a79b A3DOUT1->XTALKIN5
2825c : 0000a99c A3DOUT3->XTALKIN6
28260 : 0000ab9d A3DOUT5->XTALKIN7
28264 : 0000ad9e A3DOUT7->XTALKIN8
2826c : 0000a897 A3DOUT2->XTALKIN1
28270 : 0000aa98 A3DOUT4->XTALKIN2
28274 : 0000ac99 A3DOUT6->XTALKIN3
28278 : 00006656 XTALKOUT0->MIXIN6
28280 : 000031a1 MIXOUT1 ->EQIN1
28284 : 00007e88 EQOUT0 ->CODECOUT0
282f8 : 000030a0 MIXOUT0 ->EQIN0
28304 : 00003492 MIXOUT4 ->SPDIFOUT0

> aplay -D hw:0,3 /root/music/a3d/bee.wav


It sound at a higher pitch (non-stop) and and need to abort by control break.

Anonymous
Wed 14 Apr 2004 09:48:13 AM UTC, comment #2:

I think Soundfont need SRC in WT to increase/decrease pitch.

sf2 contain 128 instruments but only 64 wavetable in WT.

Anonymous
Thu 08 Apr 2004 08:49:05 AM UTC, comment #1:

It seem that we have to fix out the bugs for addroutes()/delroutes(), rearrange default mixer in/out assignment in order to have any progress with wt and a3d.

Anonymous
Sun 04 Apr 2004 12:47:37 PM UTC, original submission:

How do I upload soundfont DLS or ARL to aureal sound card ?

Do I need specific program to play MIDI using wavetable synthesizer ?

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

No Changes Have Been Made to This Item

Back to the top


Powered by Savane 3.1-cleanup