Re: [LAD] piano sound fonts

2010-06-18 Thread Jeremy Jongepier
On 06/17/2010 04:41 PM, Simon Burton wrote:
 
 Hi all,
 
 So I'm banging around some piano samples:
 
 http://pythonicle.net/sounds/output-7.ogg
 http://pythonicle.net/sounds/output-7.mp3
 
 using phasing (a la Steve Reich) and some piano samples I found here:
 
 http://www.pianosounds.com/freesoundfont.htm
 
 Does anyone have a recommendation for a more comprehensive (non-free even)
 piano sound palette ?
 
 I use python code* and was very happy to be able to import soundfont files.
 
 I see also these gigasampler files, maybe i can use libgig to access those (?)
 
 *Here are all my secrets: http://pythonicle.net/svn/projects/dsptools
 Take a look if you are curious. There is python wrappers for using numpy
 with ladspa and portaudio. And i forget what else. One of these days
 I might get around to cleaning all this up, but right now I need to 
 make sounds just to bring some sanity into my world.
 
 bye for now,
 
 Simon.

Hello Simon,

In GIGA format there are two quite good piano packs:
http://download.linuxsampler.org/instruments/pianos/maestro_concert_grand_v2.rar
http://sonart.cc/media/free/Sonart_YC7_free.rar

Best,

Jeremy


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] piano sound fonts

2010-06-17 Thread Simon Burton

Hi all,

So I'm banging around some piano samples:

http://pythonicle.net/sounds/output-7.ogg
http://pythonicle.net/sounds/output-7.mp3

using phasing (a la Steve Reich) and some piano samples I found here:

http://www.pianosounds.com/freesoundfont.htm

Does anyone have a recommendation for a more comprehensive (non-free even)
piano sound palette ?

I use python code* and was very happy to be able to import soundfont files.

I see also these gigasampler files, maybe i can use libgig to access those (?)

*Here are all my secrets: http://pythonicle.net/svn/projects/dsptools
Take a look if you are curious. There is python wrappers for using numpy
with ladspa and portaudio. And i forget what else. One of these days
I might get around to cleaning all this up, but right now I need to 
make sounds just to bring some sanity into my world.

bye for now,

Simon.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] piano sound fonts

2010-06-17 Thread Jörn Nettingsmeier

On 06/17/2010 04:41 PM, Simon Burton wrote:

Does anyone have a recommendation for a more comprehensive (non-free even)
piano sound palette ?


pianoteq comes to mind. haven't used it myself, but many people whose 
ears i trust have been quite enthusiastic about it. it's closed and 
pricey, but comes with a native linux version.


don't know how well that ties into your python-based approach, though. 
easiest way might be to generate midi data.


best,

jörn

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] piano sound fonts

2010-06-17 Thread Robin Gareus
On 06/17/2010 04:41 PM, Simon Burton wrote:
 
 Hi all,
 
 So I'm banging around some piano samples:
 
 http://pythonicle.net/sounds/output-7.ogg
 http://pythonicle.net/sounds/output-7.mp3
 
 using phasing (a la Steve Reich) and some piano samples I found here:
 
 http://www.pianosounds.com/freesoundfont.htm
 
 Does anyone have a recommendation for a more comprehensive (non-free even)
 piano sound palette ?

maybe the Salamander?! It announced on LAU a few weeks back:
http://linuxaudio.org/mailarchive/lau/2010/5/17/168952

http://download.linuxaudio.org/torrents/SalamanderGrandPiano.tar.bz2.torrent
  or direct:
http://download.linuxaudio.org/lau/SalamanderGrandPiano.tar.bz2


 I use python code* and was very happy to be able to import soundfont files.
 
 I see also these gigasampler files, maybe i can use libgig to access those (?)
 
 *Here are all my secrets: http://pythonicle.net/svn/projects/dsptools
 Take a look if you are curious. There is python wrappers for using numpy
 with ladspa and portaudio. And i forget what else. One of these days
 I might get around to cleaning all this up, but right now I need to 
 make sounds just to bring some sanity into my world.
 
 bye for now,
 
 Simon.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] piano sound fonts

2010-06-17 Thread Philipp Überbacher
Excerpts from Simon Burton's message of 2010-06-17 16:41:58 +0200:
 
 Hi all,
 
 So I'm banging around some piano samples:
 
 http://pythonicle.net/sounds/output-7.ogg
 http://pythonicle.net/sounds/output-7.mp3
 
 using phasing (a la Steve Reich) and some piano samples I found here:
 
 http://www.pianosounds.com/freesoundfont.htm
 
 Does anyone have a recommendation for a more comprehensive (non-free even)
 piano sound palette ?
 
 I use python code* and was very happy to be able to import soundfont files.
 
 I see also these gigasampler files, maybe i can use libgig to access those (?)
 
 *Here are all my secrets: http://pythonicle.net/svn/projects/dsptools
 Take a look if you are curious. There is python wrappers for using numpy
 with ladspa and portaudio. And i forget what else. One of these days
 I might get around to cleaning all this up, but right now I need to 
 make sounds just to bring some sanity into my world.
 
 bye for now,
 
 Simon.

On the linuxsampler page is another one and some links:
http://www.linuxsampler.org/instruments.html
-- 
Regards,
Philipp

--
Wir stehen selbst enttäuscht und sehn betroffen / Den Vorhang zu und alle 
Fragen offen. Bertolt Brecht, Der gute Mensch von Sezuan

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] piano sound fonts

2010-06-17 Thread Simon Burton
On Thu, 17 Jun 2010 23:44:28 +0400
Louigi Verona louigi.ver...@gmail.com wrote:

 Hello Simon!
 I am interested - how do you achieve phasing on Linux? Using what tools?
 
 --
 Louigi Verona
 http://www.louigiverona.ru
 

Check this out.. you will need python and numpy.

Simon.
#!/usr/bin/env python

import sys
from math import sqrt

import wave
import numpy

scalar = numpy.float32

SAMPLERATE = 44100

def read_wave(filename):

w = wave.open(filename)

chunks = []
count = 0
while 1:
chunk = w.readframes(4096)
if not chunk:
break
count += len(chunk)
chunks.append(chunk)

a = numpy.empty(count, numpy.float32)
i = 0
for chunk in chunks:

b = numpy.fromstring(chunk, numpy.int16)
n = len(b)
a[i:i+n] = b
i += n

assert i == count/2

x0, x1 = a.min(), a.max()
assert x0x1
a = a / (x1-x0)

return a



def normalize(a, volume=1.):
print peak-to-peak: %.2f % (a.max()-a.min())
assert 0. = volume = 1.
if a.max() - a.min()  1e-8:
#centre = (a.max() + a.min()) / 2
#a -= centre
a *= float(volume) * 32767 / (a.max() - a.min()) 
else:
print  *** quiet array
return a.astype(numpy.int16)



def write_wave(filename, a, samplerate=SAMPLERATE):

assert len(a.shape)==1 or a.shape[1] in (1, 2), odd shape = %r%(a.shape,)
channels = 1 if len(a.shape)==1 else a.shape[1]
print write_wave, filename, 'channels=', channels

a = normalize(a)

f = wave.open(filename, 'w')
f.setnchannels(channels)
f.setsampwidth(2)
f.setframerate(samplerate)
f.writeframesraw(a.tostring())
f.close()


_window_cache = {}
def window(a, d_idx=None, attack=100, decay=100):
#print window, len(a), d_idx, attack, decay
if d_idx is None:
d_idx = len(a)
key = (d_idx, attack, decay)
w = _window_cache.get(key)
if w is None:
w = numpy.empty(d_idx, dtype=scalar)
w[:] = 1.
for idx in range(attack):
w[int(idx)] = 1.*idx/float(attack)
for idx in range(decay):
w[int(d_idx - idx-1)] = 1.*idx/float(decay) # ramp up
_window_cache[key] = w

a = a[0 : d_idx]
a = a*w
return a



def paint(a, b, idx0, idx1=None):

if idx1 is None:
idx1 = len(b)

idx0 = int(idx0)
idx1 = int(idx1)
adx0, adx1 = idx0, idx0+idx1
bdx0, bdx1 = 0, idx1
try:
a[adx0 : adx1] += b[bdx0 : bdx1]
except ValueError:
print paint: ValueError
pass





def main(source, target, stacks=10, dt=0.1, cycles=30):

a = read_wave(source)

N = len(a) * cycles
A = numpy.zeros((N,), scalar) # use (N, 2) for stereo output
dn = dt * SAMPLERATE
bs = [a[:len(a) - dn*i] for i in range(stacks)]
for b in bs:
idx = 0
while idx + len(b)  len(A):
b = window(b)
paint(A[:], b, idx)
idx += len(b)

#a = A[len(a):] # skip the first cycle...
A[:len(a)] /= sqrt(cycles) # attenuate the first cycle...

write_wave(target, A)





if __name__ == __main__:

if not sys.argv[1:]:
print USAGE:\n\tphaser.py source.wav target.wav\n
else:

source = sys.argv[1]
target = sys.argv[2]

main(source, target)




___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev