unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
To: Guile User <guile-user@gnu.org>
Subject: I've made a sound/audio thing
Date: Sun,  4 Sep 2022 12:16:16 +0000	[thread overview]
Message-ID: <017e97d7-bccd-e6a7-5ef2-55e302e8459e@posteo.de> (raw)

Hello Guile users!

Recently I've looked at "how to write a wav file?" and wrote some code to output 
in RIFF-WAVE fie format: 
https://notabug.org/ZelphirKaltstahl/guile-examples/src/master/sound/riff-wave. 
It only writes a file currently, and does not read in any files yet. Hopefully I 
will work on it more soon.

My idea is, that Guile should be kind of perfect for making functions, which 
output sample values. Just combining functions. I want to make more effects like 
fade-in and fade out, amplify, change of sample rate or whatever else is simple 
to do. Already implemented things like a function to make another function 
"stepped" (is what I call it), so that one only gives an integer and it will 
give the sample of the index that is that integer, considering a previously 
given step size.

I imagine, that it should be possible, to build good abstractions over sample 
values and then give helper functions allowing anyone to make their own effects 
and so on. When reading in files is implemented, one could easily write a little 
Guile code and apply effects to any wav file.

I know libsndfile exists and perhaps I should be using FFI to interface with it, 
but I still have not gotten around to learning more about how to use FFI and 
also I made the mistake of looking at the implementation of wav file format in 
the libsndfile library … biiig mistake :D Well, I also would probably not have 
learned as much about wav files and some bytevector and vector stuff, if I had 
used libsndfile. Though more about FFI …

Will see how far I take it : )

Best regards,
Zelphir

-- 
repositories: https://notabug.org/ZelphirKaltstahl




             reply	other threads:[~2022-09-04 12:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-04 12:16 Zelphir Kaltstahl [this message]
2022-09-04 14:06 ` I've made a sound/audio thing blake

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=017e97d7-bccd-e6a7-5ef2-55e302e8459e@posteo.de \
    --to=zelphirkaltstahl@posteo.de \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).