Hi there,
so you are asking how to implement the core algo, which is a tapped
delayline. In FAUST you would do that by chaining prebuilt fdelay blocks
(with modulated dl times). For 23 tabs there is a recursive solution. The
time input need to be "wires" as the dl times are all modulated here. It
is very different from C++ and tricky to do. Modulation is key BTW to
achieve the original sound. Have you reverse engeeniered the random number
generator?
Pseudo-FAUST-code:
Time1,Signal : fdelay <: bus(2) : _, Tap1 : etc.
for feedback you will use a ~ operator for all 23 tabs and cancel out the
8 main outs by using a '!' operator. Its ugly, basically, but possible.
-Urban
On Tue, 22 Jun 2021 12:29:28 +0200, Robert-André Vettel
<ra.vet...@live.de> wrote:
Hey again,
I've fixed an issue in my main.c and simulation data. The Stargate
circuit design has >many quirks and I just recently found out that the
write address gets inverted >somewhere down the line. So instead of
filling the DRAM from 0 - 16383 it starts at >16383 and counts down from
there. (Sidenote: I might at some point start a small video >series
where I'm just rambling about all the interesting things I've
discovered). So once >again, it should now be bit-perfect, as far as my
current understanding of the circuit >goes.
To finally test my own research, I have started working on a Reaktor
ensemble, which >you can find here:
https://www.native-instruments.com/de/reaktor-community/reaktor->user-library/entry/show/14155/
The feedback path still needs some tweaking and I'm having some issues
with comb->filtering, but the sound characteristics already show many
similarities to my own >hardware unit.
Now about porting things to faust: I'm afraid my previous question about
arrays/tables/>lists might have sounded like I'm unwilling to rtfm. But
the manual is actually the reason >why I'm confused. The first thing
that pops up about lists is "Strictly speaking, there are >no lists in
Faust." and the entry for rdtables talks exclusively about calculating
lookup->tables for oscillators: "[...] The table can either be
implemented by using the waveform >primitive [...] or using a function
controlled by a timer (such as ba.time) [...]".
Best,
Robert
Von: Robert-André Vettel <ra.vet...@live.de>
Gesendet: Freitag, 11. Juni 2021 12:26
An: Robert-André Vettel <ra.vet...@live.de>; Gary Hall
<garyhall...@gmail.com>; Yann >Orlarey <orla...@grame.fr>
Cc: faudiostream-users users <faudiostream-users@lists.sourceforge.net>;
Laurent Pottier ><laurent.pott...@univ-st-etienne.fr>
Betreff: AW: [Faudiostream-users] [Preservation] Porting a digital
reverb circuit to faust >(Ursa Major Stargate 323)Hey everyone,
I've finally hit a milestone. The /code/main.c file on my GitHub is a
working proof of >concept of the internal hardware logic
(https://github.com/ravettel/>UrsaMajorStargate323).
It will just generate a data stream of all the delay & gain values for
now, but as far as I >can tell it should be bit perfect.
Unfortunately the code is very dependent on several large arrays (up to
2^13 bit wide) >and I could not find much information about working with
large arrays/lists/tables in the >FAUST docs.
Did I miss something? And if not, how could I approach this challenge?
Thanks & best regards,
Robert
Von: Robert-André Vettel <ra.vet...@live.de>
Gesendet: Montag, 26. April 2021 19:51
An: Gary Hall <garyhall...@gmail.com>; Yann Orlarey <orla...@grame.fr>
Cc: faudiostream-users users <faudiostream-users@lists.sourceforge.net>;
Laurent Pottier ><laurent.pott...@univ-st-etienne.fr>
Betreff: Re: [Faudiostream-users] [Preservation] Porting a digital
reverb circuit to faust >(Ursa Major Stargate 323)Thank you all very
much. I'm really glad about all the positive responses :)
I've uploaded the Service Manual, the raw eeprom dumps as well as some
other >resources, on my GitHub
https://github.com/ravettel/UrsaMajorStargate323
(I had to previously remove all links, because my initial email was
flagged as spam).
You can also find PDFs of Christopher Moore's patents for the SST and
Stargate >algorithms on google patents (US4303991A & US4268717A).The
service manual is quite long, but most of the circuit is explained in
detail from >pages 8 to 16 and the schematics start at page 73. I've
also uploaded an OCR version. It >should make reading/searching a bit
easier, but I haven't yet checked it for any OCR >errors.
Anyway, here's a (sort of) quick overview of how this reverb works and
where I'm at:
The Stargate 323 is basically a mono-to-stereo multitap delay. Most of
the algorithm is >stored across several different eproms, which
determine the read/write delays of each >reverb tap as well as the
corresponding gain for the DA conversion. The address bits for >most
eproms are set by the front panel switches for Program/PreDelay/Decay as
well as >by several timing signals. The front panel switches are 4-bit
gray-code rotary switches >(s. page 73/74). There are 16 settings for
predelay, but only 8 settings for Program & >Decay, which is why there's
some circuit trickery involved to get a revolving 3-bit output >from
those switches. Many eproms also contain duplicate data, to compensate
for the >redundant MSB of the Program/Decay switches. [Note: The
gray-code switches were >probably used in the original SST-282 Delay, so
I assume it was cheaper to design with >their already available stock,
instead of sourcing new switches. Also, instead of just >pulling the
redundant MSBs of some switches to ground, they most likely left them in
>place for future revisions. As a matter of fact, the Stargate 323 was
followed by the >Stargate 626, which had exactly the same design but
featured additional decay times >and a larger memory array.]
The timing signals start out simple, with an 8MHz clock and an 8bit
counter. So each >machine frame consists of 256 bit times. The basic
timing circuit is located on >Schematic 5 (p.77).
Here's where things get overwhelming for me very quickly. TC1 gets
inverted and the >combined 8bit counter addresses two proms, generating
15 additional timing signals. All >those signals pass through two 374
latches, TCB1 gets inverted twice and clocks the two >additional "DAC
slot address counters" and by the end of the sheet I can't even tell how
>TCB2 relates to the original non-inverted TC1 anymore. I can get a
basic idea of access >times, rising edges, falling edges, latches,
flipflops, delays etc. through datasheets and >youtube videos, but I
don't feel like I'll be able to confidently understand it all on my >own.
So right now it's mostly about understanding the timing signals and
counters, so that I >can answer questions like "What is the output of
the delay eprom at bit time 163".
Best,
Robert
Von: Gary Hall <garyhall...@gmail.com>
Gesendet: Montag, 26. April 2021 17:41
An: Yann Orlarey <orla...@grame.fr>
Cc: faudiostream-users users <faudiostream-users@lists.sourceforge.net>;
Laurent Pottier ><laurent.pott...@univ-st-etienne.fr>
Betreff: Re: [Faudiostream-users] [Preservation] Porting a digital
reverb circuit to faust >(Ursa Major Stargate 323)My first time to post.
I'm not skilled with Faust, but I had a long history with hardware
digital >reverby and fx. I cut my teeth at Lexicon, let 1977 up through
1988, shortly after Chris Moore had >left, and just before David
Griesinger showed up at the door with his prototype digital reverb. I've
>remained involved with hardware digital fx more then 40 year now. Still
have a finger in
Emulating the Ursa Major 323 should not be a problem. I haven't seen the
schematics (I'd be happy to >look at them and comment where I can), but
I'm confident that it's similar to Lexicon/Alesis/Eventide >and so on.
The Spin FV-1 ichip is a very accessible example, and a great platform.
For that matter, the FV-1 itself is not exactly an end-of-life part. But
it is in an evolutionary >dead end. Keith Barr was an exceptional
engineer, across the board. But he's been dead now almost 11 >years. Hi
final achievement has been stuck in time since then. If Barr had lived,
we'd be on multiple >generations beyond the FV-1.
And yet the part is in manufacture still, and applied in any number of
highly viable products. This >device needs to be ported and extended in
compilable form for implementation across a range of >platforms.
So yeah, save the Ursa Major. But don't forget to rescue the FV-1 and
the classic architecture of >hardware reverb and multi-fx.
GaryInThailand
On Mon, Apr 26, 2021 at 9:48 PM Yann Orlarey <orla...@grame.fr> wrote:
Hi,
The issue of preserving musical works and equipment is indeed very
important and is a challenge for >>Faust.
In 2008-2010 we incorporated in the compiler the possibility to
automatically generate the >>mathematical description of the
computations performed by a Faust program (faust2mathdoc) see
>>https://hal.archives-ouvertes.fr/hal-02158742/file/astree-icmc2010.pdf.
At the Linux Audio Conference 2010, Sampo Savolainen presented a very
nice emulation of the Yamaha >>YC 20 written in Faust
(http://lac.linuxaudio.org/2010/recordings/>>day1_1215_Emulating_a_Combo_Organ.ogv)
In France, Alain Bonardi and Laurent Pottier have worked a lot on these
issues and recreated a >>number of historical pieces in Faust.
Recently João Svidzinski and Vincent Tiffon have published an analysis
of "Songes" by Jean-Claude >>Risset with codes in Faust:
(we) are very happy to announce the publication of the analysis of
Jean-Claude Risset's Songes >>>(1979) in the IRCAM Analyzes portal
(unfortunately only available in French at the moment) . This >>>is a
long piece of work initially started with the participation of the
composer himself before >>>his death in 2016. This analysis allows the
reader to get inside the code itself and discover >>>Risset's world.
This is a real immersion in computer music of the 1970s.
https://brahms.ircam.fr/analyses/Songes/
So yes, this question is very important and I think it could be one of
the themes of IFC 2022!
Yann
Le lun. 26 avr. 2021 à 15:26, Giuseppe Silvi via Faudiostream-users
<faudiostream->>us...@lists.sourceforge.net> a écrit :
Dear Robert,
I don't know the logic schematics you are speaking about, so I can't
define my experience >>>coherent as you require. But you have used
some terms care to me: "open source" and "history >>>alive". So I
think it could be an exciting project to be shared with a community,
merging >>>experiences. Here you can find the SEAM project I founded:
https://github.com/s-e-a-m
http://seam-world.slack.com/
SEAM is a small community, and (thanks to the Faust qualities) there
are some history pieces >>>alive. (Reverbs are pieces of interest,
like an entire musical composition, like many other >>>things):
If You have the pleasure to share something with us, maybe we can
discuss the experience we have >>>to help you. Nevertheless, even if
you create your repository with some materials, I will look >>>inside
it and consider how I can help.
I think it is a fascinating matter.
PS. the shortest answer to both your questions is yes.
Kind Regards
Giuseppe Silvi
On 24 Apr 2021, at 16:08, Robert-André Vettel <ra.vet...@live.de>
wrote:
Dear all,
since I'm going to get into quite a bit of detail, I'll start with
the tl;dr first :D
• has anyone experience with electronic logic circuits and
might help me to analyse and >>>understand some schematics?
• is it possible to port an existing digital circuit
(consisting of a clock, timing >>>signals, counters, latches and
memory read/writes) into Faust?
Now for the long version:
In 2019 I was fortunate enough to acquire an old Ursa Major Stargate
323 hardware reverb from >>>the institute of musicology at the JGU
Mainz (thanks Albert!). Ursa Major was founded by >>>Christopher
Moore and is mostly know for the Space Station Delay, which some
industry >>>professionals still swear by. The Stargate 323 Reverb is
an evolution of the Space Station delay >>>algorithms. Since those
reverbs are very rare and no official digital emulations exist, I
want to >>>try and help keeping this piece of reverb history alive .
To be clear: I'm talking about straight up reverse-engineering here.
If the moderators think >>>this is something that shouldn't be
discussed publicly on this list, please let me know. The Ursa
>>>Major brand was sold to AKG in 1986 and no products have been
released under this brand since >>>then. As far as I know all related
patents have expired. Christopher Moore previously continued
>>>working under the brand name Seven Woods Audio, but the website is
not available anymore and the >>>domain name is now for sale. I also
want to make this project completely open source and do not >>>have
any commercial intentions.
While the reverb algorithms are proprietary, the digital circuit
design is fairly simple by >>>today's standards. Ursa Major was a
small company and inside is just a lot of 8bit EPROMS, >>>Latches,
Counters etc. all clocked by an 8Mhz ceramic oscillator. No CPU or
proprietary silicon >>>whatsoever. Because the entire circuit
structure is completely humanly readable, my idea is to >>>just
"port" the digital circuit into modern software instead of trying to
approximate the >>>algorithms. So far I have made quite some progress
in understanding and analysing the digital >>>circuit components. The
official service manual is incredibly detailed and I have also dumped
the >>>contents of all eeproms. But I'm just a hobbyist and if I want
this project to succeed, I'm going >>>to need help. Which brings me
back to my initial questions and this mailing list :)
I'm happy to hear any questions/ideas/etc.!
Best,
Robert
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users
--Gary Hall
โสตะ-สติ: Mindfulness with Sound
http://soundcloud.com/hua-hin-sound-cloud
ph. (0) 89 181 6328
--
--
Urban Schlemmer
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users