Bring4th Forums
  • Login Register
    Login
    Username:
    Password:
  • Archive Home
  • Members
  • Team
  • Help
  • More
    • About Us
    • Library
    • L/L Research Store
User Links
  • Login Register
    Login
    Username:
    Password:

    Menu Home Today At a Glance Members CSC & Team Help
    Also visit... About Us Library Blog L/L Research Store Adept Biorhythms

    As of Friday, August 5th, 2022, the Bring4th forums on this page have been converted to a permanent read-only archive. If you would like to continue your journey with Bring4th, the new forums are now at https://discourse.bring4th.org.

    You are invited to enjoy many years worth of forum messages brought forth by our community of seekers. The site search feature remains available to discover topics of interest. (July 22, 2022) x

    Bring4th Bring4th Studies Science & Technology My scriptable audio generator

    Thread: My scriptable audio generator


    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #1
    04-04-2020, 05:24 AM
    An old project of mine, resumed in late 2017, is saugns, which parses, plays, and/or writes WAV files for SAU scripts (SAU is the audio script language defined by the program).

    It's a command-line audio program for Linux and *BSD. Apart from timed tone sequences (with various wave types), the program supports amplitude, frequency, and phase modulation. (PM is what is actually at the heart of the 16-bit video game era "FM synth" sound; in the 80's, Yamaha changed FM into PM but called it FM.)

    (For somewhat less technical Linux users, a C compiler, e.g. "gcc", and the "make" program, and the ALSA "libasound2" library, need to already be installed on your system to, well, be able to make the program from the downloaded source by running "make" in the directory. On Ubuntu and similar, "libasound2-dev" is needed, as needed files are split into that package.)

    There's actually two related programs, temporarily. The current main version is saugns v0.3.6e, and what you get when it's downloaded. It has the most features, except being all about wave oscillators and what can be done with them. A partial rewrite, with a white noise generator just added, is based on an older version and still lacks "ramps" (smooth, timed parameter changes). The redesign-in-progress is in the "mgs0.1" git branch; if the program is downloaded with "git clone", then a "git checkout mgs0.1" afterwards in the directory will switch to that version.

    The main version is described on the web page, along with the included documentation and example scripts. The redesign-in-progress version only has its README file for now, along with a smaller set of example scripts.

    I have the vague hope that the new version will lead to a scripting language actually suitable for writing music in, though neither version is there yet. The current versions make for easy experimenting with sounds, but any repetition requires full copy-pasting.

      •
    AnthroHeart (Offline)

    Anthro at Heart
    Posts: 19,119
    Threads: 1,298
    Joined: Jan 2010
    #2
    04-04-2020, 10:31 AM
    You could make a plugin for Audacity. That way you can work with the whole Audacity library.

      •
    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #3
    04-04-2020, 02:14 PM
    I try to minimize dependencies on external libraries, and keep it as minimalistic as possible. Otherwise, had I done it more pragmatically, there would be a variety of libraries to look into.

      •
    AnthroHeart (Offline)

    Anthro at Heart
    Posts: 19,119
    Threads: 1,298
    Joined: Jan 2010
    #4
    04-04-2020, 02:17 PM
    Are you wanting to build a large audience who uses your app?
    Or is it a hobby?

      •
    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #5
    04-04-2020, 03:38 PM
    I think it will remain smaller, though I hope it will find its uses for others as well. Popularity is not a main concern, but I hope some may follow if the basic ideas and design develop into something generally more useful.

    There already exist other "music programming language" programs, e.g. csound and SuperCollider, which are much more feature-packed. Much of the whole point of making your own is to go about the language differently.

    The language I came up with so far is very short and simple for the simplest things, but way more limited. (I have some ideas for making it more expressive, but there's much I'm still undecided about.)

    Ideas or feedback about the language is very welcome, but in part it's the trickiest thing to "invent". Once the ideas are there, the trickiest thing becomes making them work as elegantly as possible, without greatly growing the size of the program. Then comes smaller parts of how the program does this or that, where various options exist (and some stuff will no doubt be done better in this or that program or library).

      •
    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #6
    04-04-2020, 04:09 PM
    For a simpler answer, it's a hobby, though it remains to be seen what may grow out of it.

    Actually, I'm not sure why it matters to me to the extent it has. But while feeling rather down, in part, the last years, I've worked on it in a kind of obsessive-compulsive rut.

    Something has, however, kept me back from working the ideas I already have into it. This seems to gradually give way this year, as I work on the redesigned version.

      •
    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #7
    04-05-2020, 10:27 AM
    (04-04-2020, 10:31 AM)Great Central Sun Wrote: You could make a plugin for Audacity. That way you can work with the whole Audacity library.

    Actually, an input plugin for Audacity is not a bad idea, later on. That would allow loading a script without having to separately turn it into a WAV file first. But I wouldn't like audio generation to depend on Audacity (which may be able to provide a few things in that area).

      •
    AnthroHeart (Offline)

    Anthro at Heart
    Posts: 19,119
    Threads: 1,298
    Joined: Jan 2010
    #8
    04-05-2020, 10:38 AM
    Why is depending on Audacity for audio generation a bad idea? It's a pretty solid and tested product.

      •
    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #9
    04-05-2020, 10:59 AM
    Simply because it's meant to also work by itself, and if turned into a library, it should also be usable in programs which are unrelated to Audacity.

      •
    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #10
    04-05-2020, 11:33 AM
    I have been thinking of splitting most of the program into a library at some point. Input plugins for media players would also be interesting to make then (so scripts can be added to playlists).

    For now, there's just the command-line program, with an interface similar in style to a compiler (which is basically the simplest type). Good for testing, or playing scripts without further interaction. But neither like a media player, nor usable for "live coding" (writing and running things as each line is written). Some people use "live coding" music languages for music performances.


    But first, working on the language. The next thing I plan to add is a way to group things and keep them from "playing" where placed in the script. Then they can be inserted to play later, and this can also be turned into a simple way to repeat sounds.

      •
    Asolsutsesvyl Away

    Sup-end-ous
    Posts: 392
    Threads: 17
    Joined: Apr 2018
    #11
    12-12-2020, 07:07 PM
    Well, I don't know how much interest and discussion there could be regarding the more intricate things on a forum like this, since it's fairly specialized.

    To update a bit, 8 months later: What I planned to do is still in the future, though other aspects of the software design are becoming a bit clearer for me. The website has a new part about the design (in addition to the old about the language and using the program). For the needs of future discussion (wherever it may take place), I'm trying to bridge the gap to more easily understanding the main ideas behind it all, in a short and hopefully clear text, which gradually becomes more technically involved.

      •
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)



    • View a Printable Version
    • Subscribe to this thread

    © Template Design by D&D - Powered by MyBB

    Connect with L/L Research on Social Media

    Linear Mode
    Threaded Mode