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

state of the project #4

Open
andik opened this issue Jan 16, 2015 · 5 comments
Open

state of the project #4

andik opened this issue Jan 16, 2015 · 5 comments

Comments

@andik
Copy link

andik commented Jan 16, 2015

Hey WhiteNoise,
I'm really interested in the state of that project.
Is the main branch working stable as a Library? Is it anywhere used in production?
And how is the Diskstreaming branch going?
Is the compilation straightforward or are some code generators used (i've seen none in the source).

As I think of possibly using this lib, i'd love to estimate the efford to get this going.
thank you.

It would be crazy if we could have some sample library that compiles out of the box and without additional mess. it could be easy implemented in libpd, csound et al., and be cross platform...

@WhiteNoise
Copy link
Owner

Hi Andik,

The main branch works ok, but is by no means complete. I plan on using it
in my iOS music app Genome MIDI sequencer. I'm unaware of anyone else using
it.

The diskstreaming branch is not stable - it breaks SF2 support (sfz only)
and is generally unfinished. My goal with that branch is to make the
library work in environments that are memory constrained (like on iOS),
rather than assuming that all sounds will be loaded into memory and stay
there.

It would be great to have a cross platform sampler library (since none
currently exists). Contributions are welcome ;)

On Fri, Jan 16, 2015 at 9:12 AM, andik [email protected] wrote:

Hey WhiteNoise,
I'm really interested in the state of that project.
Is the main branch working stable as a Library? Is it anywhere used in
production?
And how is the Discstreaming branch going?
Is the compilation straightforward or are some code generators used (i've
seen none in the source).

As I think of possibly using this lib, i'd love to estimate the efford to
get this going.
thank you.

It would be crazy if we could have some sample library that compiles out
of the box and without additional mess. it could be easy implemented in
libpd, csound et al., and be cross platform...


Reply to this email directly or view it on GitHub
#4.

@andik
Copy link
Author

andik commented Jan 20, 2015

Hey WhiteNoise,

finally I got it working. this is my first work with audio stuff (but i’ve some years as professional c++ programmer).

I’m planning to build a StagePiano app, like the nord pianos (which I cannot afford currently, as I’m attending a marriage in the next year). The sample player is crucial to this idea. I could use the AuSampler which apple provides, but currently i’d like to go with openSFZ as I could have it under my control.

Currently I notice two important problems (master branch):

  • there seems to be a problem with using SF2’s. my jrhodes sound font. produces region offsets which are outside of the audio buffer where the samples are stored.
    setting sourceSamplePosition in SFZVoice::startNote to instead of region->offset zero fixes the problem.
    Do you know if SF2 samples are loaded each in a separate buffer?
  • I have a lot of crackling on my play (start and stop), but this may have todo with the first point. On the Diskstreaming branch you built some other interpolator, does this improve the situation?

Some questions remain beside that, which I’d like to ask:

Whats the principle of the the audio buffering ? renderNextBlock works additively on the given buffer. How is it thought to clean that? Without using time on memset etc.?

A thing I’d like to change is how the output is written into the buffer. I’d like to be able to use a custom buffer object on which the synth calls some kind of inline’d setSampleValue(int channel, float value) method instead of writing the output buffer directly. this would make openSFZ easier to adapt to the environment. openFrameworks for example has a complete different sample layout as openSFZ suggests. How do you think about this? One could also make a template function out of renderNextBlock to save us the function call...

Which brings up the questions of which style of programming you prefer? (Naming conventions and such).

My first target would be to write an add-on to openFrameworks. maybe this gathers a little publicity in the open Source world.

greetings,
andi

Am 17.01.2015 um 21:07 schrieb WhiteNoise [email protected]:

Hi Andik,

The main branch works ok, but is by no means complete. I plan on using it
in my iOS music app Genome MIDI sequencer. I'm unaware of anyone else using
it.

The diskstreaming branch is not stable - it breaks SF2 support (sfz only)
and is generally unfinished. My goal with that branch is to make the
library work in environments that are memory constrained (like on iOS),
rather than assuming that all sounds will be loaded into memory and stay
there.

It would be great to have a cross platform sampler library (since none
currently exists). Contributions are welcome ;)

On Fri, Jan 16, 2015 at 9:12 AM, andik [email protected] wrote:

Hey WhiteNoise,
I'm really interested in the state of that project.
Is the main branch working stable as a Library? Is it anywhere used in
production?
And how is the Discstreaming branch going?
Is the compilation straightforward or are some code generators used (i've
seen none in the source).

As I think of possibly using this lib, i'd love to estimate the efford to
get this going.
thank you.

It would be crazy if we could have some sample library that compiles out
of the box and without additional mess. it could be easy implemented in
libpd, csound et al., and be cross platform...


Reply to this email directly or view it on GitHub
#4.


Reply to this email directly or view it on GitHub.

@andik
Copy link
Author

andik commented Jan 21, 2015

yesterday I saw another funnny possiblity:

What do you think about integrating openSFZ into the Tonic framework?
(https://github.com/TonicAudio/Tonic)

This way we could have various goals within little time. which means no
manual buffer handling. buitin fx and filters (which would make it
easier to provide the missing opcodes). and especcially we would have a
group of skilled c++ people which are eager to have a sampler inside of
their project (is on their roadmap). And we don't have a nice project
which no one ever sees.

openSFZ could provide the sample loading logic which I guess they would
be happy about.

the only problem may be the licence because openSFZ is MIT.

@WhiteNoise
Copy link
Owner

I hadn't heard about Tonic - thanks for the tip. That would be nice,
unfortunately I don't have any time to devote to this project at the
moment. Hopefully I'll be able to pick it up again in the near future. If
anyone wants to try to work with it, I'd be happy to contribute any help I
can. The code is pretty straight forward and should be easy to build on.

On Wed, Jan 21, 2015 at 5:16 AM, andik [email protected] wrote:

yesterday I saw another funnny possiblity:

What do you think about integrating openSFZ into the Tonic framework?
(https://github.com/TonicAudio/Tonic)

This way we could have various goals within little time. which means no
manual buffer handling. buitin fx and filters (which would make it
easier to provide the missing opcodes). and especcially we would have a
group of skilled c++ people which are eager to have a sampler inside of
their project (is on their roadmap). And we don't have a nice project
which no one ever sees.

openSFZ could provide the sample loading logic which I guess they would
be happy about.

the only problem may be the licence because openSFZ is MIT.


Reply to this email directly or view it on GitHub
#4 (comment).

@andik
Copy link
Author

andik commented Jan 26, 2015

Well, I'd like to do that. I need a good base for my project. I'll port the non-streaming loading of SFZ and SF2 (at first). I'd like to leave the signal processing out and use tonic therefore. They only need some kind of dynamic routing and I already have some idea about this. I wrote into their user group, but I thought a little more in the meantime. (I did want to rewrite too much). I hope to get something done the next weeks, you'll hear from me. grettings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants