[erlang-questions] Generating sine waves and/or audio stream output

Ivan Uemlianin <>
Thu Mar 25 09:51:15 CET 2010


Dear Willem

Thanks very much for you email and your code.  This looks good.

The functions generate binaries.  Do you stream the binaries to audio or 
do you write them to a file?

Do you have a function that writes wav files?  If not I shall write one 
(unless a function to stream to audio will be easier but I don't think 
it will be).

Thanks and best wishes

Ivan

Willem de Jong wrote:
> Hello Ivan,
>
> I have an erlang module that generates sounds. It can generate 
> different wave forms (right now all I need is a saw-like shape and a 
> sinus shape). I am attaching it. It is a bit messy, perhaps, but it 
> should give you an impression of how it can be done.
>
> The synthesize() function uses the sinus() function to create a number 
> of complete waves, and then pastes  these together repeatedly (I 
> assumed that would be more efficient that calculating the sinus() 
> function for each sample).
>
> The syntesize() function returns a couple of sound fragments: an 
> "attaque" bit that starts with an amplitude of zero, a fade-out bit 
> where the volume decreases back to 0, and a long and a short bit of 
> sound with a stable volume. Another module creates a complete 
> sound-fragment of the desired duration by pasting together the 
> attaque, a number of long fragments and short fragments in such a way 
> that it matches the duration (as precisely as possible), and a fade 
> out bit.
>
> As you can see this creates sounds with a fixed pitch and volume 
> (within one sound, that is). Also note that both the length and the 
> pitch of the sound will be approximations.
>
> I created this to generate music for my web-site: http://coria.nl. 
>  You can try the result there, if you want. It is a site that enables 
> me and the other members of my choir (and anyone else who is 
> interested) to practise our music. 
>
> Any comments or suggestions will be quite welcome, 
> Good luck,
> Willem 
>
>
>
>
>
> On Wed, Mar 24, 2010 at 11:28 AM, Ivan Uemlianin < 
> <mailto:>> wrote:
>
>     Dear All
>
>     I am learning Erlang and one of the things I'm interested in is
>     generating sine waves, merging them and streaming them to audio
>     output.
>
>     I can kind of imagine how generating and merging would work, with
>     a sine
>     wave represented as a list of numbers.  Is there an Erlang library or
>     project working with sine waves?
>
>     I can't imagine how to stream a list of numbers to audio output.  Can
>     anyone point me to projects/libraries/ideas for that one?  Writing the
>     data to a file would be OK for now, but "live" sound would be much
>     nicer.
>
>     With thanks and best wishes
>
>     Ivan
>
>     -- 
>     ============================================================
>     Ivan A. Uemlianin
>     Speech Technology Research and Development
>
>                        <mailto:>
>                        www.llaisdy.com <http://www.llaisdy.com>
>                            llaisdy.wordpress.com
>     <http://llaisdy.wordpress.com>
>                        www.linkedin.com/in/ivanuemlianin
>     <http://www.linkedin.com/in/ivanuemlianin>
>
>       "Froh, froh! Wie seine Sonnen, seine Sonnen fliegen"
>                        (Schiller, Beethoven)
>     ============================================================
>
>
>
>     ________________________________________________________________
>     erlang-questions (at) erlang.org <http://erlang.org> mailing list.
>     See http://www.erlang.org/faq.html
>     To unsubscribe; mailto:
>     <mailto:>
>
>


-- 
============================================================
Ivan A. Uemlianin
Speech Technology Research and Development

                    
                     www.llaisdy.com
                         llaisdy.wordpress.com
                     www.linkedin.com/in/ivanuemlianin

    "Froh, froh! Wie seine Sonnen, seine Sonnen fliegen"
                     (Schiller, Beethoven)
============================================================



More information about the erlang-questions mailing list