The Unofficial Access Virus & Virus TI Forum - since 2002

The Unofficial Access Virus & Virus TI Forum - since 2002 (http://www.infekted.org/virus/forum.php)
-   General discussion about Access Virus (http://www.infekted.org/virus/forumdisplay.php?f=105)
-   -   Who designed the Access Virus?? (http://www.infekted.org/virus/showthread.php?t=24118)

DIGITAL SCREAMS 07.01.2004 08:28 AM

Who designed the Access Virus??
 
Im interested to know who designed the Virus!

Ive read alot of stuff about Dave Smith (Sequential Prophet 5, Pro1 etc) and Tom Oberheim (OBXA, OB8 etc)...those guys are kinda reveered nowadays.....

Oh god im such a geek....im even considering opening up my Virus so that I can take photos of its insides...... lol :oops:

Are any of u interested to know whats inside your Virus?

DS

Juho L 07.01.2004 09:12 AM

I'm sure the lead designer is mentioned on the introduction chapter in the manual (at the end with signature). I just can't recall the name.

Well, not much to see in side the Virus. It's like watching your computer motherboard. Few bigger chips here and there and then just lots and lots of tiny SMD resistors, caps, transistors, FET's, etc.

ben crosland 07.01.2004 10:43 AM

Christoph Kemper is the father of the Virus. He is responsible for coding the synth engine. Guido Kirsch helped design the original interface AFAIK.

Hollowcell 08.01.2004 12:41 AM

Re: Who designed the Access Virus??
 
Quote:

Originally Posted by DIGITAL SCREAMS
Oh god im such a geek....im even considering opening up my Virus so that I can take photos of its insides...... lol :oops:

Are any of u interested to know whats inside your Virus?

DS

im not that interested in whats inside my VC, im more interested in what sounds i can get to come out of my VC. :D

and by the way, yes u r a geek! hehe jk.

Per Kristian 14.01.2004 08:29 PM

I have seen whats inside my Virus! I have even done some soldering in it, that was scary!!! :?

DIGITAL SCREAMS 14.01.2004 09:02 PM

how did u open up your KB? Cos i need to look inside mine and sort a key constact out + tighten up a side panel.

DS

Panopticon 01.02.2004 04:15 AM

Quote:

Originally Posted by DIGITAL SCREAMS
how did u open up your KB? Cos i need to look inside mine and sort a key constact out + tighten up a side panel.

DS

Well, I just bought a KB a couple days ago, and it had 2 loose screws rolling around inside (other than that, excellent condition). I was able to take it apart and put them back in their positions, here is what to do:

Remove all of the little tiny metal screws from around the perimeter of the unit's base. They're really short, maybe 1/4" or 3/8" long.

Then, there are four longer machine screws (1/2" long), two on each side of the machine, right next to the endcaps. Remove these.

Now, there are 2 of those same little tiny metal screws in the middle of the base of the machine. I removed those, but I don't think it's necessary: they just secure a structural brace; I had to put the brace back on before I put the keyboard back together. So I would try to do it without removing those: I'm all but certain they don't have to be removed.

Now you're ready to take the bottom off, I had to have my wife help me with this. The left side of the keyboard (side with modwheels) will come up gently. The right side, however, hangs up on the endcap. So I had my wife hold the left side up slightly, while I very gently pulled out on the endcap so it would clear. Doesn't have to come out much, and it didn't make any funny noises or do anything scary. Once it's free, the whole keybed will come up, and you can pull it out from under the tab on the rear of the machine. Now, there is a bunch of cabling that connect the keybed to the motherboard and so forth. I was able to set the keybed on the ground immediately behind the machine without disconnecting any of these.

Finally, three notes:

1. All of the larger head screws on the base of the unit stay IN. These simply fasten the keybed to the base.

2. I used a couple layers of some large bubble wrap on the ground to support the unit, so as not to damage any knobs, keys, etc. It worked well, and I would definitley recommend it as insurance.

3. I am NOT a technician of any kind. Taking the board apart was fairly basic, but I would recommend doing it only if you judge your electrical/equipment knowledge to be sufficient (I really had no problems, and you shouldn't if you're careful and conscientious).

Good luck, hope it helps-

DIGITAL SCREAMS 16.06.2004 10:53 AM

Thx man

I like looking inside synths. Ive looked inside the Jupiter 8, Pro-One, Prophet 5.....I like to see how its all laid out. In later life I'd love to design a synth. Do you guys reckon its easier to design a synth in software or analog?

The code they use for softsynths (Or virus)....how do I get access to this software and learn how to use it?

DS

ben crosland 16.06.2004 12:35 PM

There are a few programs in which you can design your own synths:

Reaktor is probably the most popular, but Tassman is also worth a look.

There is also something called Synthedit, which allows you to export your instruments as VSTi's. Google it.

As for getting hold of the code or development tools for the Virus - I think you're being a little optimistic there :wink:

DIGITAL SCREAMS 16.06.2004 12:39 PM

Thx Ben

BTW, does anyone know of any industrial spies?

DS :oops:

anykeystudio 17.06.2004 01:34 PM

Well if you don?t got the basic in DSP programming start here.

http://www.amazon.com/exec/obidos/tg...glance&s=books

I think I have the same book in my bookshelf somewhere ? But I haven?t read it yet, but some day I will.
I think it?s cooler and harder to make a real physical synth. The difficulty in making an analog synth would be the design. When you do an DSP synt you can do what you whan, just make some new algorithms(sort of :wink: ).
But with a analog you have to make it discreet so it sound faaaat like the mini. Every component you add has to be powered or else all other components will perform less well.

If I live when I get retired I will make one.

Tomer=Trance 17.06.2004 06:42 PM

you also got to know about alot in electronic enginiering and even pysics.
"today's headline: a man in his mid 30s was fried today after trying to build his own true analog home made synthisizer"
that can be funny :lol:

dries 18.06.2004 07:04 AM

programming a dsp is about the most difficult of progamming anyway - that's not just writing a bit of c++. what they did at access was emulating original hardware sturkture by software modules. tough work in the beginning, but it helps later on creating a kind of sound and new features and functions. you have to know a lot of electronics and dsp and must be a absolut programming genious to create the corresponding lines of asm for the dsp. this kind of stuff: exerpt from:

Digital Plate-Class Reverberation Audio Effect - Griesinger's Model *
* Described by Jon Dattorro in "Effect Design Part 1: Reverberator and *
* Other Filters, " Journal of the Audio Engineering Society," Vol. 45, *
* No. 9, pp. 660-684


change_reverb_settings:
bit set mode1 SRRFH; /* enable background register file */
NOP; /* 1 CYCLE LATENCY FOR WRITING TO MODE1 REGISER!! */

/* if flag2_in jump change_parameter; */

r13 = 6; /* number of presets */
r15 = DM(IRQ1_counter); /* get preset count */
r15 = r15 + 1; /* increment preset */
comp (r15, r13);
if ge r15 = r15 - r15; /* reset to zero */
DM(IRQ1_counter) = r15; /* save preset count */

r10 = pass r15; /* get preset mode */
if eq jump reverb_settings_2; /* check for count == 0 */
r10 = r10 - 1;
if eq jump reverb_settings_3; /* check for count == 1 */
r10 = r10 - 1;
if eq jump reverb_settings_4; /* check for count == 3 */
r10 = r10 - 1;
if eq jump reverb_settings_5; /* check for count == 4 */
r10 = r10 - 1;
if eq jump reverb_settings_6; /* check for count == 5 */

reverb_settings_1: /* count therefore, is == 6 if you are here */
r14 = 0x40000000; DM(decay) = r14;
r14 = 0x7f5c28f6; DM(bandwidth) = r14;
r14 = 0x0010624d; DM(damping) = r14;
r14 = 0x5999999a; DM(decay_diffusion_1) = r14; /* = 0.50, Decorrelates tank signals */
r14 = 0x40000000; DM(decay_diffusion_2) = r14; /* decay diffusion 2 = decay +0.15, floor = 0.25, ceiling - 0.50 */
r14 = 0x60000000; DM(input_diffusion_1) = r14; /* = 0.75, Decorrelates incoming signal */
r14 = 0x50000000; DM(input_diffusion_2) = r14; /* = 0.625, Decorrelates incoming signal */
bit set ustat1 0x3E; /* turn on Flag4 LED */
bit clr ustat1 0x01;
dm(IOSTAT)=ustat1;
jump done;

reverb_settings_2:
r14 = 0x007fffff; DM(decay) = r14;
r14 = 0x60124321; DM(bandwidth) = r14;
r14 = 0x000007ff; DM(damping) = r14;
r14 = 0x00100000; DM(decay_diffusion_1) = r14;
r14 = 0x00100000; DM(decay_diffusion_2) = r14;
r14 = 0x50000000; DM(input_diffusion_1) = r14;
r14 = 0x60000000; DM(input_diffusion_2) = r14;
bit set ustat1 0x3D; /* turn on Flag5 LED */
bit clr ustat1 0x02;
dm(IOSTAT)=ustat1;
jump done;

reverb_settings_3:
r14 = 0x10000000; DM(decay) = r14;
r14 = 0x6f5c28f6; DM(bandwidth) = r14;
r14 = 0x000fffff; DM(damping) = r14;
r14 = 0x01000000; DM(decay_diffusion_1) = r14;
r14 = 0x02000000; DM(decay_diffusion_2) = r14;
r14 = 0x60000000; DM(input_diffusion_1) = r14;
r14 = 0x50000000; DM(input_diffusion_2) = r14;
bit set ustat1 0x3B; /* turn on Flag6 LED */
bit clr ustat1 0x04;
dm(IOSTAT)=ustat1;
jump done;

reverb_settings_4:
r14 = 0x40000000; DM(decay) = r14;
r14 = 0x7f5c28f6; DM(bandwidth) = r14;
r14 = 0x0050624d; DM(damping) = r14;
r14 = 0x70000000; DM(decay_diffusion_1) = r14;
r14 = 0x40000000; DM(decay_diffusion_2) = r14;
r14 = 0x60000000; DM(input_diffusion_1) = r14;
r14 = 0x50000000; DM(input_diffusion_2) = r14;
bit set ustat1 0x37; /* turn on Flag7 LED */
bit clr ustat1 0x08;
dm(IOSTAT)=ustat1;
jump done;

reverb_settings_5:
r14 = 0x57000000; DM(decay) = r14;
r14 = 0x3f5c28f6; DM(bandwidth) = r14;
r14 = 0x0001004d; DM(damping) = r14;
r14 = 0x72222222; DM(decay_diffusion_1) = r14;
r14 = 0x60000000; DM(decay_diffusion_2) = r14;
r14 = 0x60000000; DM(input_diffusion_1) = r14;
r14 = 0x50000000; DM(input_diffusion_2) = r14;
bit set ustat1 0x2F; /* turn on Flag8 LED */
bit clr ustat1 0x10;
dm(IOSTAT)=ustat1;
jump done;

reverb_settings_6:
r14 = 0x50000000; DM(decay) = r14;
r14 = 0x5f5c28f6; DM(bandwidth) = r14;
r14 = 0x0000004d; DM(damping) = r14;
r14 = 0x72222222; DM(decay_diffusion_1) = r14;
r14 = 0x60000000; DM(decay_diffusion_2) = r14;
r14 = 0x60000000; DM(input_diffusion_1) = r14;
r14 = 0x50000000; DM(input_diffusion_2) = r14;
bit set ustat1 0x1F; /* turn on Flag9 LED */
bit clr ustat1 0x20;
dm(IOSTAT)=ustat1;

done:
rti(db);
bit clr mode1 SRRFH; /* switch back to primary register set */
nop; /* 1 cycle latency for switching to occur */


/* ------------------------------------------------------------------------------------ */
/* */
/* IRQ2 Pushbutton Interrupt Service Routine */
/* */
/* This routine allows the user to modify reverb presets on-the-fly to allow for */
/* control of the predelay and left right panning of the reverb response */
/* */
/* Also note, early reflections and later reverberations are panned differently */
/* between left and right channels for all reverb presets. For example, early */
/* reflections may come from the left speaker, while the later reverberations */
/* come from the right speaker. */
/* */
/* yL(n)=0.33*(Gain)*x(n) +0.33*(Gain)*x(rev_result) + 0.33*(Gain)*x(predelay) */
/* yR(n)=0.33*(Gain)*x(n) +0.33*(Gain)*x(rev_result) + 0.33*(Gain)*x(predelay) */
/* ------------------------------------------------------------------------------------ */

modify_reverb_mix:
bit set mode1 SRRFH; /* enable background register file */
NOP; /* 1 CYCLE LATENCY FOR WRITING TO MODE1 REGISER!! */

r13 = 6; /* number of presets */
r15 = DM(IRQ2_counter); /* get preset count */
r15 = r15 + 1; /* increment preset */
comp (r15, r13);
if ge r15 = r15 - r15; /* reset to zero */
DM(IRQ2_counter) = r15; /* save preset count */

r10 = pass r15; /* get preset mode */
if eq jump reverb_mix_2; /* check for count == 0 */
r10 = r10 - 1;
if eq jump reverb_mix_3; /* check for count == 1 */
r10 = r10 - 1;
if eq jump reverb_mix_4; /* check for count == 3 */
r10 = r10 - 1;
if eq jump reverb_mix_5; /* check for count == 4 */
r10 = r10 - 1;
if eq jump reverb_mix_6; /* check for count == 5 */

reverb_mix_1: /* count therefore, is == 6 if you are here */
r14 = 0x7FFFFFFF; DM(DRY_GAIN_LEFT) = r14;
r14 = 0x1FFFFFFF; DM(DRY_GAIN_RIGHT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_LEFT) = r14;
r14 = 0x0FFFFFFF; DM(PREDEL_GAIN_RIGHT) = r14;
r14 = 0x57FFFFFF; DM(WET_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_RIGHT) = r14;
r14 = 200; DM(predelay_time) = r14;
bit clr ustat1 0x3E; /* turn on Flag4 LED */
bit set ustat1 0x01;
dm(IOSTAT)=ustat1;
jump exit;

reverb_mix_2:
r14 = 0x00000000; DM(DRY_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(DRY_GAIN_RIGHT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_LEFT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_RIGHT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_LEFT) = r14;
r14 = 0x00000000; DM(WET_GAIN_RIGHT) = r14;
r14 = 1000; DM(predelay_time) = r14;
bit clr ustat1 0x3D; /* turn on Flag5 LED */
bit set ustat1 0x02;
dm(IOSTAT)=ustat1;
jump exit;

reverb_mix_3:
r14 = 0x00000000; DM(DRY_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(DRY_GAIN_RIGHT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_LEFT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_RIGHT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_LEFT) = r14;
r14 = 0x2FFFFFFF; DM(WET_GAIN_RIGHT) = r14;
r14 = 2500; DM(predelay_time) = r14;
bit clr ustat1 0x3B; /* turn on Flag6 LED */
bit set ustat1 0x04;
dm(IOSTAT)=ustat1;
jump exit;

reverb_mix_4:
r14 = 0x7FFFFFFF; DM(DRY_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(DRY_GAIN_RIGHT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(PREDEL_GAIN_RIGHT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_LEFT) = r14;
r14 = 0x00000000; DM(WET_GAIN_RIGHT) = r14;
r14 = 4000; DM(predelay_time) = r14;
bit clr ustat1 0x37; /* turn on Flag7 LED */
bit set ustat1 0x08;
dm(IOSTAT)=ustat1;
jump exit;

reverb_mix_5:
r14 = 0x00000000; DM(DRY_GAIN_LEFT) = r14;
r14 = 0x00000000; DM(DRY_GAIN_RIGHT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_LEFT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_RIGHT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_RIGHT) = r14;
r14 = 1200; DM(predelay_time) = r14;
bit clr ustat1 0x2F; /* turn on Flag8 LED */
bit set ustat1 0x10;
dm(IOSTAT)=ustat1;
jump exit;

reverb_mix_6:
r14 = 0x7FFFFFFF; DM(DRY_GAIN_LEFT) = r14;
r14 = 0x3FFFFFFF; DM(DRY_GAIN_RIGHT) = r14;
r14 = 0x00000000; DM(PREDEL_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(PREDEL_GAIN_RIGHT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_LEFT) = r14;
r14 = 0x7FFFFFFF; DM(WET_GAIN_RIGHT) = r14;
r14 = 1200; DM(predelay_time) = r14;
bit clr ustat1 0x1F; /* turn on Flag9 LED */
bit set ustat1 0x20;
dm(IOSTAT)=ustat1;

exit:
rti(db);
bit clr mode1 SRRFH; /* switch back to primary register set */
nop; /* 1 cycle latency for switching to occur */

still want to program a dsp?

good luck.

Juho L 18.06.2004 07:28 AM

Quote:

programming a dsp is about the most difficult of progamming anyway
You probably mean ASM? Well, ASM is quite cryptic if you're used to programming languages. ASM is not harder, it's just more time consuming way of programming (and debugging is insane in big projects). The good thing in ASM is that the machine does exactly what you want it to do.

saba 18.06.2004 08:14 AM

NOP.
________
Lovely Wendie

dries 18.06.2004 08:36 AM

Quote:

Originally Posted by Juho L
Quote:

programming a dsp is about the most difficult of progamming anyway
You probably mean ASM? Well, ASM is quite cryptic if you're used to programming languages. ASM is not harder, it's just more time consuming way of programming (and debugging is insane in big projects). The good thing in ASM is that the machine does exactly what you want it to do.

wow, thanks a lot for the info, you realy cleared me up here.

*gg*

;-)


All times are GMT. The time now is 09:22 AM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2002-2022, Infekted.org