View Issue Details

IDCategoryLast Update
0000971features2007-02-15 01:41
Reportermatalos2Assigned To 
Reproducibilityalways 
Status acknowledgedResolutionopen 
Product Version 
Fixed in Version 
Summary0000971: Audition soundfiles with the proper speed in the Soundfile Library
DescriptionIf jack is running with a samplerate of 44.1 khz and,
before inserting a soundfile of 48khz, you wish to audition it,
the sndfile will be played at 44.1/48 of the real speed (slower).
In the oposite case the result is the soundfile being played faster.
The 44.1 and 48 Samplerate values are only examples.
There's a program called RESAMPLE, not libsamplerate (SRC).
This program can resample soundfiles or the output of a pipe
in realtime.
Resample can also be used as a library, libresample I think.
Link for resample:
http://ccrma.stanford.edu/~jos/resample
Resample is also included in PLANET CCRMA

I suggest incorporating support for the resample library to do resampling
in realtime (playing soundfiles with different samplerates than that
jack is running with). NO harm done should be done to libsamplerate(SRC).
TagsNo tags attached.

Relationships

related to 0001483 closedtimbyr Tim's Tracking bug for proposed updates for 2.1 

Activities

timbyr

2007-02-12 07:30

developer   ~0003218

I think this is really two separate but related feature requests.

The first being to resample the file to match the session frame rate when auditioning and the second is supporting different resampling libraries.

I would like to see both of those features implemented in ardour but in my opinion the first should have a higher priority.

It is a little hard to tell the relationship between the resample utility and libresample. I get the impression that the resample utility is does not link to libresample unlike libsamplerate and sndfile-resample(I may be wrong about that) but either case it may make little difference.

Supporting different resampling libraries could be implemented in several ways.

I believe a typical way to do this using C++ is to define an interface(abstract base class) and then write implementations of that interface for the different libraries. A factory function could then be used to create an instance of one of the implementations. It should also be possible to compile the implementations as dll's so that there is no compile time dependence on any particular resampling library(good for testing too) and if the interface was licensed appropriately to create plugins for proprietary resampling libraries if that was desired.

taybin

2007-02-15 00:49

administrator   ~0003288

I agree that a class factory is the right way to implement support for different resampling libraries. What libraries are there besides libsamplerate?

timbyr

2007-02-15 01:41

developer   ~0003289

The only other open source library that I'm aware of is libresample that is mentioned in the bug report.

There are a number of commercial and freeware ones available on other platforms though, for example:

http://www.voxengo.com/product/r8brain/
http://www.izotope.com/tech/src/

Issue History

Date Modified Username Field Change
2005-04-25 17:49 matalos2 New Issue
2005-05-12 01:09 taybin Project @2@ => ardour
2005-05-12 01:10 taybin Status new => acknowledged
2007-02-12 07:30 timbyr Note Added: 0003218
2007-02-12 07:31 timbyr Relationship added related to 0001483
2007-02-15 00:49 taybin Note Added: 0003288
2007-02-15 01:41 timbyr Note Added: 0003289