My problem with most music programming environments (in my humble, but very informed opinion) is that . . . they don't sound very good. That is, the oscillators, filters, envelopes, etc. don't sound anywhere near as good as what you can buy from UAD, SoftTube, PSP, U-he, etc.
The OP may be a DSP genius for all I know, and maybe it sounds incredible. I haven't tried it yet.
But it seems (just glancing over it) that there's an emphasis on manipulating existing audio files. This is actually huge. It's true that you can do that things like ChuCK and csound and whatever, but they never felt focused on that to me. The biggest player in this "let's mess with audio files" space was the Composer's Desktop Project. That thing was amazing, but it seems slightly moribund, and I haven't been able to get it to compile for years.
Is the problem of the oscillators not sounding very good a fundamental problem of these programming environments?
I'm mostly ignorant of their specifics, but my assumption is that someone who understands the fundamentals of synth programming could patch oscs and filters into combinations that do sound nice just as well as they could in commercial synth software.
Is there something preventing that from being the case? Or are you just referring to available presets?
Thanks for checking it out! Trevor Wishart & CDP have been inspirations, I've incorporated some of his ideas surrounding waveset synthesis & transformations into pippi.
Primarily, pippi is the environment I use to compose my own music, and its features and approaches are driven mostly by my own compositional needs & wants. I work often from a "microsound" approach so pippi does have more of a focus on manipulating concrete sound than maybe other systems do.
Do the oscs sound good? I think they sound fine, but I haven't worked with any of the products you mentioned. Commercial synths & DSP I think tends to be focused on providing instruments via opinionated complexes of osc, filters, presets etc as you mentioned. General purpose systems like ChucK etc tend more toward facilitating the user in building their own opinionated instruments, so the path from oscs, filters to a sound you like might take more doing, and some more background in synthesis to arrive at.
That's not to say some opinionated complexes haven't made their way into pippi... but my goal is to allow myself to build instruments in a flexible way just as much as being able to have an expressive way to orchestrate their movements. I sometimes keep a small personal library of instruments I return to with pippi, but it never tends to last very long. I have a hard time fully disentangling the instrument building side of things from the compositional side of things in my own work.
That said, I want pippi to be fun, and useful for others, so including some more preset-like instruments along with the lower level building blocks is definitely in scope for the project!
Edit: FWIW the osc I use personally most often is `Pulsar2d` which is an opinionated implementation of Curtis Roads' pulsar synthesis, where both the wavetable and window stacks can be morphed over time. I often feed this with a stack derived via `wavesets.Waveset()` -- which will split a sound at zero crossings into wavesets, optionally at some interval, offset or some limit, so you can for example tap single cycles of some transforming sound over time, and reconstruct the movement of the spectrum of it in some way by morphing the stack as you like with the `Pulsar2d`...
The next set of tutorials is overdue and will cover synthesis (microsound and otherwise) in more detail!
Thanks! I’ve been performing with what I like to call a “just-in-real-time” approach with pippi now called Astrid, which allows for live coding (instrument modules reload when the file is saved) MIDI input, etc. It is in a works-for-me state though, and probably won’t be documented and packaged for others until after pippi itself is out of beta... if you are curious though it is here: https://github.com/luvsound/astrid
Edit: but to clarify yes pippi is meant primarily to facilitate writing generative musical scores in python. (Scores which produce sounds, not notation.) I have used it to perform from early on in its development, and IMHO it works fine for this, but the main use case is to render offline audio.
I haven't found a library for Python that does real time sounds in the way that old home computers (BBC micro etc) used to do. I got loads of pleasure when I was a teenager making sounds on my computer and hearing them back in real time, and I'd like to get that immediacy back (I have a theory that fewer kids are interested in programming than might otherwise be as it's much less immediate and accessible than it used to be).
If anyone knows of one, I'd love to know about it.
If you're interested in this, I highly encourage checking out Sonic Pi [0]. It's an open source music programming language. Also works very well as a tool to teach coding.
Are you interested in music identification, especially musical instrument identification? If so, You might be interested in looking at a need gap - 'Display musical instruments used in a song'[1] which was recently posted on my problem validation platform.
This is really excellent! I've played around with Sonic Pi but always wished for something with more Python. I will definitely be playing with this.
I'm curious if anyone can point to a free library of samples or synths that would be good to pair with this? I can do without Sonic Pi's GUI but the included sample/synth library is a great jumping off point.
I’ve been really interested in dsp for music and computer music for a while now but am kind of at a loss as to where to learn more after having gone through Xavier Serra’s excellent Coursers class. Can anyone recommend further resources for learning about the subject?
For nitty-gritty DSP I would sit down and read a book like Proakis. It's quite dry but ultimately if you are able to handle the math it's worth it (for me at least, learning mathematical topics through the medium of python or similar is a distraction)
These are meant to build toward a final example mixing aspects of all the tutorials into a more realistic project.
Having used pippi for my own music for about 9 years now I try to only move structures and patterns into pippi itself when I find myself writing the same things over and over in scores. In general each score tends to be structured very differently, depending on what it does. Hopefully I can communicate that in the tutorials by showing a variety of approaches, but it’s a work in progress!
[+] [-] sramsay|5 years ago|reply
My problem with most music programming environments (in my humble, but very informed opinion) is that . . . they don't sound very good. That is, the oscillators, filters, envelopes, etc. don't sound anywhere near as good as what you can buy from UAD, SoftTube, PSP, U-he, etc.
The OP may be a DSP genius for all I know, and maybe it sounds incredible. I haven't tried it yet.
But it seems (just glancing over it) that there's an emphasis on manipulating existing audio files. This is actually huge. It's true that you can do that things like ChuCK and csound and whatever, but they never felt focused on that to me. The biggest player in this "let's mess with audio files" space was the Composer's Desktop Project. That thing was amazing, but it seems slightly moribund, and I haven't been able to get it to compile for years.
Anyway: I can't wait to dig in!
[+] [-] indigochill|5 years ago|reply
I'm mostly ignorant of their specifics, but my assumption is that someone who understands the fundamentals of synth programming could patch oscs and filters into combinations that do sound nice just as well as they could in commercial synth software.
Is there something preventing that from being the case? Or are you just referring to available presets?
[+] [-] erikschoster|5 years ago|reply
Primarily, pippi is the environment I use to compose my own music, and its features and approaches are driven mostly by my own compositional needs & wants. I work often from a "microsound" approach so pippi does have more of a focus on manipulating concrete sound than maybe other systems do.
Do the oscs sound good? I think they sound fine, but I haven't worked with any of the products you mentioned. Commercial synths & DSP I think tends to be focused on providing instruments via opinionated complexes of osc, filters, presets etc as you mentioned. General purpose systems like ChucK etc tend more toward facilitating the user in building their own opinionated instruments, so the path from oscs, filters to a sound you like might take more doing, and some more background in synthesis to arrive at.
That's not to say some opinionated complexes haven't made their way into pippi... but my goal is to allow myself to build instruments in a flexible way just as much as being able to have an expressive way to orchestrate their movements. I sometimes keep a small personal library of instruments I return to with pippi, but it never tends to last very long. I have a hard time fully disentangling the instrument building side of things from the compositional side of things in my own work.
That said, I want pippi to be fun, and useful for others, so including some more preset-like instruments along with the lower level building blocks is definitely in scope for the project!
Edit: FWIW the osc I use personally most often is `Pulsar2d` which is an opinionated implementation of Curtis Roads' pulsar synthesis, where both the wavetable and window stacks can be morphed over time. I often feed this with a stack derived via `wavesets.Waveset()` -- which will split a sound at zero crossings into wavesets, optionally at some interval, offset or some limit, so you can for example tap single cycles of some transforming sound over time, and reconstruct the movement of the spectrum of it in some way by morphing the stack as you like with the `Pulsar2d`...
The next set of tutorials is overdue and will cover synthesis (microsound and otherwise) in more detail!
[+] [-] karlp|5 years ago|reply
I would change the name though, with pypy, pypi and pip it seems it will lead to confusion.
[+] [-] erikschoster|5 years ago|reply
Edit: but to clarify yes pippi is meant primarily to facilitate writing generative musical scores in python. (Scores which produce sounds, not notation.) I have used it to perform from early on in its development, and IMHO it works fine for this, but the main use case is to render offline audio.
[+] [-] djaychela|5 years ago|reply
If anyone knows of one, I'd love to know about it.
[+] [-] grecht|5 years ago|reply
[+] [-] whatch|5 years ago|reply
[0]: https://news.ycombinator.com/item?id=24006618
[+] [-] erikschoster|5 years ago|reply
(It is named after Pippi Longstocking FWIW.)
[+] [-] photon-torpedo|5 years ago|reply
[+] [-] jwandborg|5 years ago|reply
[+] [-] mhugo|5 years ago|reply
[+] [-] puranjay|5 years ago|reply
[0]: https://sonic-pi.net/
[+] [-] Abishek_Muthian|5 years ago|reply
Tangentially,
Are you interested in music identification, especially musical instrument identification? If so, You might be interested in looking at a need gap - 'Display musical instruments used in a song'[1] which was recently posted on my problem validation platform.
[1]https://needgap.com/problems/151-display-musical-instruments...
[+] [-] intrepidhero|5 years ago|reply
I'm curious if anyone can point to a free library of samples or synths that would be good to pair with this? I can do without Sonic Pi's GUI but the included sample/synth library is a great jumping off point.
[+] [-] sleazy_b|5 years ago|reply
[+] [-] mhh__|5 years ago|reply
[+] [-] aldanor|5 years ago|reply
Wonder if there's any complex end-to-end examples or videos?
[+] [-] erikschoster|5 years ago|reply
These are meant to build toward a final example mixing aspects of all the tutorials into a more realistic project.
Having used pippi for my own music for about 9 years now I try to only move structures and patterns into pippi itself when I find myself writing the same things over and over in scores. In general each score tends to be structured very differently, depending on what it does. Hopefully I can communicate that in the tutorials by showing a variety of approaches, but it’s a work in progress!
[+] [-] person_of_color|5 years ago|reply