Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fully dynamic digital organ #6

Closed
x42 opened this issue Jul 13, 2012 · 5 comments
Closed

fully dynamic digital organ #6

x42 opened this issue Jul 13, 2012 · 5 comments

Comments

@x42
Copy link
Collaborator

x42 commented Jul 13, 2012

One knob to dial the age of the organ (crackle, x-talk, bleeding,,..)

tonegen.c: implement either of the two variants:

  1. shadow-copy oscillators[] and list-elements (lep); allow to re-compile terminalMix and playMatrix and swap on the fly.
  2. re-init the synth engine - short silence.

Abstraction of parameters , look-up-table age -> osc.* parameters or .cfg file?

@pantherb
Copy link
Owner

Robin,
We shouldn't add this until the first docs are out supporting the
basic use of the organ, at least. We can't call it aging, because you
could buy a brand new B in '71 with fairly extreme bleeding, and a the
key click thing was a feature of every B that they stopped trying to get
rid of after it became sought after, so it's likely that many early '50s
organs had less key click than late '60s built.
The docs will say, here are a few characteristics that can be
adjusted to get a particular feel/tone. The Beatrix code is perfect for
this because he's got the bleeding from so many different areas summed
from the physical pathway(from the distortion of the wire to taper etc).
The same docs will show someone using this for digital orchestrations
how they can tweek the sound to get a very non-traditional sound for
their needs.

The popularity of Julios and souch of this is largely based on the
rattle it creates now that you can't get by just piping most digital
organs into overdrive etc. That's where the action is.

Will

On Fri, 13 Jul 2012 06:32:32 -0700, robin wrote:

One knob to dial the age of the organ (crackle, x-talk,
bleeding,,..)

tonegen.c: implement either of the two variants:

  1. shadow-copy oscillators[] and list-elements (lep); allow to
    re-compile terminalMix and playMatrix and swap on the fly.
  2. re-init the synth engine - short silence.

Abstraction of parameters , look-up-table age -> osc.* parameters
or .cfg file?


Reply to this email directly or view it on GitHub:
#6

@x42
Copy link
Collaborator Author

x42 commented Jul 13, 2012

good call. `aging' is indeed the wrong label for this feature.

It's not high priority. It's an enhancement to be added sometime after the 0.6 milestone has been taken and will require quite a bit of discussion and research..

@pantherb
Copy link
Owner

Robin,

Check your email from my other email address as that's where I've sent
you Fred's response; he's happy,

Will

On Fri, 13 Jul 2012 11:26:37 -0700, robin wrote:

good call. `aging' is indeed the wrong label for this feature.

It's not high priority. It's an enhancement to be added sometime
after the [0.6

milestone](https://github.com/pantherb/setBfree/issues?milestone=1&state=open)
has been taken and will require quite a bit of discussion and
research..


Reply to this email directly or view it on GitHub:
#6 (comment)

@x42
Copy link
Collaborator Author

x42 commented Jul 25, 2012

Regardless of the use-case #8 (session management) and #16 (multiple LV2 instances) depend on the infrastructure of this: we need to be able to re-load .cfg on the fly.

@x42
Copy link
Collaborator Author

x42 commented Apr 8, 2013

All global parameters have been removed and a running config interface has been added.
As of version 0.6.2 the engine can be re-initialized on the fly with new config. The complete state can be saved and restored.

The LV2 pluging implements a front-end to this functionality.

@x42 x42 closed this as completed Apr 8, 2013
x42 added a commit that referenced this issue Nov 2, 2019
This fixes an issue on some systems where the DSP can emit more
messages than the UI can consume in a given time.

Also modern forge.h (1.16.0) does not correctly protect against overflow.
----
#0  0x00005555555838f2 in lv2_atom_forge_raw (forge=0x555555b72a10, data=0x7fffe415a9c0, size=8) at /usr/lib/lv2/atom.lv2/forge.h:292
#1  0x000055555558399f in lv2_atom_forge_write (forge=0x555555b72a10, data=0x7fffe415a9c0, size=8) at /usr/lib/lv2/atom.lv2/forge.h:310
#2  0x0000555555583d65 in lv2_atom_forge_property_head (forge=0x555555b72a10, key=16, context=0) at /usr/lib/lv2/atom.lv2/forge.h:636
#3  0x000055555558434a in forge_kvcontrolmessage (forge=0x555555b72a10, uris=0x555555b72ad0, key=0x5555555a8964 "vibrato.lower", value=0) at ../b_synth/uris.h:169
#4  0x0000555555584c23 in mctl_cb (fnid=34, fn=0x5555555a8964 "vibrato.lower", val=0 '\000', mm=0x0, arg=0x555555b72a10) at ../b_synth/lv2.c:304
#5  0x0000555555562b49 in controlFunctionHook (mcfg=0x555555b7b710, ctrlF=0x555555b7ef00, val=0 '\000') at ../src/midi.c:504
#6  0x0000555555562cda in notifyControlChangeById (mcfg=0x555555b7b710, id=34, val=0 '\000') at ../src/midi.c:542
..
---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants