That's not true.
It's improved a lot over the years, but it's not iOS level yet.
The good news is that Google seems to be working on a lot of audio-related improvements for Android recently (Patchfield etc), which may have low latency in mind.
Graphical programming languages can be okay if you have very small programs. PureData is probably a reasonable example of one that's successful within its field; for audio processing, it seems like a reasonable way to go. I've never been overwhelmed with them, though; they just don't provide huge benefits over a textual programming language.
The floss manual is pretty horribly outdated and written with Pd-extended in mind, which has the Pd core objects and a bunch of libraries/add-ons included. Nowadays, you can use Pd vanilla (aka Pd) which just has the core objects but comes with a handy library downloader to get the rest of the stuff included with Pd-ext, or Purr Data which is basically the new Pd-extended. If you choose to go the Pd vanilla route (which it sounds like is already on your machine), I wrote something awhile ago about using libraries with Pd (basically, look up hid in "Find Externals..." in Pd), otherwise just use Purr Data.
Granular synthesis, spectral editing, Max/PD for custom DSP... that's where the cool stuff is at.
Check out Synthedit, Reaktor, Max for live....
Or go free and check out Pure Data.
You know what sounds perfect for this is a (free and open source) program called PureData. It's an all-encompassing audio processing environment that is set up as a modular programming language. You can place "objects" all over your workspace that you connect together to make and interact with sounds. For example, try this:
This will take you all of about 5 minutes to do and will yield a simple oscillating tone generator whose frequency is 440Hz. If you left-click on the "osc~" object, you can open a help file that will show you many ways to improve what I just gave you. When you find something in that file you don't understand, Pd has a phenomenal series of tutorials under the help file that show you everything you need to know (hint: go under the help menu and choose "browser" and then "PureData\" and you'll find step-by-step tutorials for a variety of things). For instance, you'll be able to find out how to accept input from a MIDI keyboard, plug in a few more oscillators to create a more complex sound, use sawtooth waves, add filters, etc. It's quite possibly one of the most versatile ways to learn how to make a synth, and it's completely modular.
I know of Juce (http://www.juce.com/features), it's C++ though so you would have to write your own bindings. The nice thing is that it supports low level audio, I was considering it for my own audio/video project, but had some issues getting it to work.
You can also try PureData (http://puredata.info/) or Processing (https://www.processing.org/).
With Reactor / Max / SynthMaster/ PD ... you can create any sound, no exception added. Thunder, rain, fire, wood block hitting a metal pipe, 'human vocal' synthezing, analogue synth modeling ... It "only" takes time, knowledge, experience and perseverance.
The best place to start your sonic adventures in these modular workspaces is a book by Andy Farnell. This book is written for PureData but it can be applied to any workspace that uses a 'visual' style of arranging dps modules.
You could probably do it with pure data. Or MaxMsp/Jitter. Exactly how to write a patch to do it, that's another story all together. I am a very inexperienced user. But there are tons of tutorials and a large userbase.
If the idea is just to mess around with music, and not really implementing it - Max MSP and the like are awesome programs for creating prototypes and concepts. I've had the most fun programming in those, as it's visual programming.
A free alternative is Pure Data (http://puredata.info/)
This might be a case for PureData. IIRC, it is already being used for monitoring and can be very helpful to abstract monitoring complex systems. There might already be patches that provide the basics that you're looking for.
To say that the company that wrote the software you use is not providing a service to you is ridiculous. If you want to play around with synths, create a sequencer, wrap it in a user interface and make it useable, go grab a copy of pure data and give it a shot. It's free, and you can make pretty much anything you want out of it. The company that makes the software you use is made up of some really smart folks who did all of that for you so you don't have to. That's the service they are providing. All of the tools and the precursors for the software you use are freely available. Try making what you see on your own. Then tell me it's worthless.
The book Designing Sound is good overview/tutorial of sound synthesis techniques. It uses Pure Data for its examples. Pure Data is easy to learn so it might be a good option to get started with sound synthesis. Later on you might want to experiment with more powerful tools such as Csound.
my understanding is PD is a piece of free software attempting to improve upon/replicate much of core ideas in max/msp and it is written by the same developer. max/msp being a popular paid utility has quite a bit more $$ behind it, and as such offers a much more polished user experience. In terms of technical differences - I am sure google will help you here and I believe they do exist. I assume there were technical nitpicks that the developer was able to incorporate into his own project that learned from/didnt get incorporated into max.
PD is here: http://puredata.info/
and max/msp is here: http://cycling74.com/
I have spent my share of hours with both programs and think its all a bunch of excellent software. I dont regret at all shelling out for max/msp.
There is also jitter to go along with max/msp, which allows for a matrix data type to be added to the dataflow graphs. Jitter is great for real time (or not) video processing. Ive used it to make a reverse music video (procedurally generated music from video) - which was super fun, if a little crappy ;)
The best points you raise are about workflow and environment. While a surprising number of conventional tools are useful for manipulating the files that a VPL will save (diff for instance), I can't argue with the environment; its apples and oranges. The workflow however... the way you describe scratch seems sad. I've not used it, but it doesn't seem representative of the languages I know.
I have to drag a new node from the palette and rebuild it to be similar to the original node, then I need to get it into the correct place in the tree, then I delete the old node.
This isn't a problem in anything I've ever seen, and assume its because scratch is aimed at teaching children how to code.
I think that most of those workflow problems have been solved, at least in most of the commercial languages. In pd the patch chord problem is an exercise in the discipline of abstraction and code reuse, but in Max-msp people can get really carried away, as the patch chords neatly arrange themselves.
Sadly, the open-source community of languages doesn't have the best editors for their languages. My favorites are very extensible.
You can use an accelerometer, or a move sensor instead of the phone :)
Pd droid party is a library to be able to port pd patches to Android. You can't build apps with PD :)
You can make everything in vanilla, just learn to turn the extended objects you use in vanilla abstractions.
4: You can plug the output of delread into the input of Delwrite, and it will create feedback. WARNING: You absolutely HAVE to put a [* 0.5] object between them, or this will crash your patch and hurt your hears.
5: At first it seemed quite ok the way it was.
And if I may add, you should stop using Extended. It's no longer up to date -for a long time now. If you don't want to use Vanilla and want some extra libraries, I really recommand you use Purr data, which has loads of libraries and an ultra slick and cool feel and look :)
Good luck ! Sorry you don't have loads of answers, this sub's clinically dead.
You could try lowering the block size. I just tried it and couldn't get it to select anything below 64 (the default), but it might be a problem with windows.
From the PD manual (http://puredata.info/docs/manuals/pd/x2.htm) > 2.4.4. switching and blocking You can use the switch~ or block~ objects to turn portions of your audio computation on and off and to control the block size of computation. There may be only one switch~ or block~ object in any window; it acts on the entire window and all of its subwindows, which may still have their own nested switch~/block~ objects. Switch~ and block~ take a block size and an overlap factor as arguments; so for instance, "block~ 1024 4" specifies 1024 sample blocks, overlapped by a factor of 4 relative to the parent window. Switch~ carries a small computational overhead in addition to whatever overhead is associated with changing the block size.
> Larger block sizes than 64 should result in small increases in run-time efficiency. Also, the fft~ and related objects operate on blocks so that setting the block size also sets the number of FFT channels. You may wish to use block sizes smaller than 64 to gain finer resolutions of message/audio interaction, or to reduce "block delay" in feedback algorithms. At the (untested) extreme, setting the block size to one allows you to write your own recursive filters.
Here's the patch that I made. It just uses the [block~] object to specify block size, then uses [bang~] to get bangs after each dsp block. I was testing it by writing to an array.
I tried [switch~] and [block~] but it seems to clamp block size to 64 if you give it a smaller value.
The part about PD handling MIDI / VSTi would be awesome.
Is there a way to run VSTi plugins without using a third party software?
I found [http://puredata.info/community/pdwiki/Vst/](Vst~), but it looks a bit compliated to install
I'll admit that I have no idea about what you are doing, but I did manage to dig up some solutions that pertain to Linux, and more importantly Raspberry Pi.
http://kokkinizita.linuxaudio.org/linuxaudio/
All three of those specifically mention Binaural, and Raspberry Pi compatibility.
I am very curious about your project, and would love a follow-up if/when you complete it.
Graphs/graph-on-parent subpatches^* don't just hide cords, they facilitate modularization, which is probably even more useful, so that's probably the best answer. When you make your patch as a subpatch graph, it only shows the cords when you're looking at the subpatch window, not when you're looking at the subpatch graph in the main patch. With them you can use inlets, outlets and connections instead of send/receive variables for better use of resources.
If you don't want to modularize, but just want the cords hidden, there is also a GUI plugin to only show cords in edit mode. https://svn.code.sf.net/p/pure-data/svn/trunk/scripts/guiplugins/simple_examples/hide_cords_in_editmode-plugin.tcl (It hides cords in run mode, not edit mode. The filename must be a mistake.) Download and put that file in one of your externals directories.
I just looked at your link a little more and understand better what you mean. When you said "Visual" I was thinking more like "Visual Basic" and less like Scratch.
Another kinda neat visual programming system is Max (or the similar open source PD ) although the learning curve is probably a bit more steep. It might map more easily to KSP though....
What you want is a live coding environment, I think. You can look into Pure Data. It's free (as in free speech) and open-source. Here you have a video of showing what you want: https://www.youtube.com/watch?v=FkmMzqohsDo. Alternatively you can use Max, which is proprietary software.
the examples from andy farnell's book are also available for the <em>supercollider</em> language, which is text based instead of <em>puredata</em>'s graphical interface:
http://en.wikibooks.org/wiki/Designing_Sound_in_SuperCollider
SO cool!!!! to work with something digital and sorta similar on a... lets just say "lower" (read "no") budget check dis https://www.youtube.com/watch?v=YK4dsjbxas8 http://puredata.info/dev/summer-of-code/ArtificialNeuralNetworksLibrary (and PD can always be configured to send MIDI data so you could make this analogue as you wanna be)
Just set up 3 DirectX render windows in vvvv and make a small patch (program) for stretching the pixels.. Should be very simple.
You should be able to do the exact same thing in MAX/MSP/Jitter http://cycling74.com or PureData for that sake http://puredata.info.
You can get a LOT of sound out of a volca keys / bass machine. They're $150 shrink-wrapped - there's a bass on CL in brooklyn for $80.
If you have a laptop, and want to get started for free, check out http://puredata.info/
are you familiar with puredata? it's a open source visual programming environment for audio and multimedia. it's great for this type of situations where you need a customised solution to a problem, and there is no third-party program to use.
i made a small patch (the programs you create in pd are called "patches") that solves you problem. it takes your midi input, takes any velocity that is greater than 1, and turns it into 127. it also doesn't affect your messages when velocity=0, that way you note off will keep working as it should. you can download it here: http://goo.gl/358DOh
for this to work you need to: first, download pure data (so you're able to run the patch). it's free, runs on any OS, and you can find it here: http://puredata.info/downloads/pd-extended. second, use some form of virtual midi port, and set it up so that pd will receive the midi data from you keyboard, and your daw you receive midi data NOT from your keyboard, but from pd. your midi path should be something like this:
keyboard
|
pd (midi in: you keyboard. midi out: virtual port)
|
daw (midi in: virtual port)
i don't know what OS you're running, but all of them have solutions for this. on mac os you can do that natively. on windows you can use a software called midi yoke. on linux i believe jack can also handle midi. with this setup, every software that you set you virtual port as midi in, should receive the notes from your keyboard, with velocity always as 127.
There's http://puredata.info/ which is a node based graphical language.
http://supercollider.sourceforge.net/ is more of a standard programming language for synthesis and audio
http://www.csounds.com/ another language
Also, a lot of audio programming can be done (and usually is) in straight up C++
To me it sounds like Puredata is a lot closer to what you want. GnuRadio's very much specialised for radio, where PD's "livecoding" mission is much wider and folks have done stuff with neural networks already. It's generally used for music/art/performance but there's a pretty active community doing interesting stuff with it.
the example links are just early search results to give you a taste, not projects I endorse
Contrary to popular belief here, Ableton is not a requirement for playing electronic music live. In fact, in most cases it will be very limiting compared to what you can do with realtime audio synthesis programming languages like SuperCollider and Pure Data (and Max/MSP, but that's only quasi-realtime).
Ableton can work for live electronic music performances, but even with controllers and other expensive doodads, it often overcomplicates the process and often results in much less creative performances, with very limited possibilities.
If you want to open your options up and truly exploit the power to be found in live software-based music performance, you'll have to step up your game and enter the world of programming. I anticipate downvotes for suggesting this, but as somebody who has been in the live electronics game for a long time, I will defend to the end the fact that not utilizing these technologies will severely limit your musical and output potential in a live setting.
Logical flowcharting? Ha ha ha!
These comments are not even wrong. There is an easy to read the wikipedia entry that discusses in detail visual programming languages and I assure you that Max is definitely in there!
There is a highly regarded Journal of Visual Languages in the academic community and tons of papers published in ACM and IEEE over the years on this topic, a very significant number of which use and/or reference Max).
Max has been around for at least 20 years. It's got a very significant community including many top level universities where it is taught (e.g, Stanford, Berkley, UCSD and many international schools).
You may have no interest in it and I respect completely that you're just looking for information. Nevertheless for the domain of real time control of MIDI, digital signal processing and video imaging, it is absolutely a fully fledged programming language and it is a disservice to others who read this forum to claim otherwise.
By the way, there is also an open-source version of Max, called PureData which was developed by the original creator of Max. It is also very popular with a very significant community.
Pure data Extended is your ticket. "Pd was created to explore ideas of how to further refine the Max paradigm with the core ideas of allowing data to be treated in a more open-ended way and opening it up to applications outside of audio and MIDI, such as graphics and video."
You should check out Pure Data (http://puredata.info/), a modular based programming language, designed by Miller Puckette. Puredata is kinda like the open source version of max/msp. this is Puckette's book that explains a lot of classic synthesis techniques through experiments/examples conducted in Pure Data http://www.crca.ucsd.edu/~msp/techniques.htm
Have you tried downloading the free Max MSP runtime? It's always been my understanding that you can download select Ableton addons, and run them in demo mode - which basically in this case means you can't edit or save new Max patches. The runtime should be able to interpret the Live objects. It may be worth a shot.
Sorry, I can't test this for you as I'm a M4L user.
Also, PD has a strong userbase, and it's free. You might find something in their community site. http://puredata.info/
All of those suggestions are very good and standard. I recommend you also get something playful on the side such as http://www.audiomulch.com/ and something challenging and brainy like http://puredata.info/ and something very traditional like a studio quality multi-track styled interface such as http://reaper.fm/
Pd-extended is way out of date. You should switch to the current version of Pd-vanilla, and use the 'Find externals' item on the 'Help' menu to load whatever extra libraries you might need.
Foarte interesant, am invatat ceva nou, nu stiam ca exista design parametric. Din ce inteleg eu e o disciplina care te ajuta sa creezi modele in mod automatic iar asta ar face prototipizarea mult mai usoara deoarece este foarte usor sa schimbi valorile care caracterizeaza modelul. Mi-a adus aminte de http://puredata.info/ care e folosit pentru a crea sintetizatoare (asta pentru pasionatii de muzica :D).
um, yeah i think this is the external you are talking about? http://puredata.info/Members/chr15m/software/v0-0extended/purepd/
it's listed as `purepd-v0.0.extended--externals`, deken's search isn't great, if you just click the 'show all' button you should be able to find this in the list (at least that's what i did).
I am intrigued by this. I still play with an OEM CGB, which I would always continue to use for the most nostalgic/authentic experience. But as an alternative, this offers a lot of perks missing from the original hardware:
-backlit screen. I sometimes think about getting a modded CGB for this, but never know whether to go frontlit or backlit and if backlit which. And if I'm going to dish out the extra cash for such a mod (which already makes the item less of an "actual Gameboy"), why not dish out a bit more for the extra features that the Analogue Pocket offers?
-Ability to play GBA and other consoles' titles while still having the DMG/CGB screen ratio as the default. The DMG/CGB library is my primary interest, and I don't like having black empty screen on sides or having the cartridges stick out akwardly.
-As someone who uses Pure Data, I wonder if Nanoloop can do anything more abstract than the dance track in the demo video. At worst it could be a fun little toy.
-Not super interested in playing on a TV (since that's not really part of the Game Boy's charm) but it could be nice if the option is there and simple to implement.
​
$200 is a lot though, so or now I'll wait til it comes out and hear people's reaction to the button layout and overall value.
Can you access the audio input from your USB audio interface in Processing? Yes.
Is Processing a language that's useful for manipulating the sound? It's not ideal, no. You might be more interested in Max or the freeware equivalent, Pure Data. Also, SuperCollider.
Sorry for the late response, but compiling was surprisingly easy. For anyone wanting to know, I downloaded the tarball from http://puredata.info/downloads, and followed the instructions in the INSTALL.txt. It built perfectly first run. After installing it, I had to install the tk
package that provided the wish
command. I did not have to install additional build dependencies, as I already have a C++ build environment. If you don't, there is a wiki page on it. Note: don't follow the wiki page on building, its instructions differ from the included instructions and do not work.
learnxinyminutes.com has a tcl section.
I use tcl all the time, making gui plugins for pure data
http://chuck.cs.princeton.edu/
These are both tools that, very broadly, implement programming languages/paradigms for audio synthesis. Since you want something customizable, this is basically what you want.
I've been trying really, really hard to stay positive but things are slipping out of my control in that regard so I feel for you. I know this might sound kinda backwards, but I've been using programming and math to create music and distract me from my awful health so maybe this can help. With PureData, Max/msp, openframeworks, etc.. there is a way to apply learning math to something that can actually be fun and help other people. It looks more complicated than it really is.
http://puredata.info/downloads simple example: https://www.youtube.com/watch?v=dmG8IUPCpik This is great for videos but is confusing as hell. Its free though as well. http://www.vsxu.com/
Yep! I watched Casey implement that and it pushed me over the edge to finally get it going for Haskell. My first language was Pure Data which has no compilation at all (you're always working with a live system) and I've never felt as productive as when I was using it — so I've always been a bit baffled that every language doesn't work this way!
Implementing the "live looped" part should be no problem at all; I'll see if I can find some time to extend the demo to show that off.
Would love to hear what you figure out about FRP's state issue!
sweet! its free too :D
http://puredata.info/downloads/pd-extended
It was a JVC GR-SX22E SVHS camcorder. I've just 'upgraded' to a panasonic AG DP200 (SVHS) and NV-M50 (VHS) (I love ebay) for another music video my friend is directing for me with some actors and a story line he's written. I'm still a film noob so it should be an interesting project (ill be posting it up here too)
Cool, there's some neat languages out there focused on audio. Check out:
http://puredata.info which is a really cool, graphical based audio language. It's a little on the weird side, but is a neat option.
Another one is SuperCollider: http://supercollider.sourceforge.net
In addition to that, there's the actual music soft are out there. I'd recommend Ableton Live since it requires less actual music hardware and is cheaper than other options. It's not a programming language or programming in general, but its a viable pathway to getting more comfortable with technical environments in general and would allow her to do really fun recording stuff.
Best wishes.
> If software is easier to modify, you'll reap the benefits of more functional, bug-free software indirectly.
Having used both The GIMP and Photoshop, that can absolutely be true. Photoshop is a bug-fest while The GIMP is as solid as a rock (not a real alternative, IMHO, but very capable nonetheless).
But there are other situations, like Pure Data. It's proprietary alternative, Max, is overwhelmingly superior, much more stable and powerful.
If you want to do it for free, PD (http://puredata.info/) is a free visual programming environment designed specifically for music/sound. There's a vst host module available for it (http://puredata.info/community/pdwiki/Vst/)
It's probably only a few minutes' work to get the basics set up. depending on how much preset storage/routing sophistication you want to build, you could probably both learn PD and build your Midi environment in less than a weekend.
if you are interested in programming and music you should check out PureData (if you havent already). I 'waste' so much time with it trying different projects from learning how synths work/programming my own to trying to reprogram my launchpad to be more tailored to my needs. its addicting as hell! oh and its free and open source and has a ton of online resources.
From the website and brochure, I get that it has a DAW interface with profiler, mixer and stuff.
But how do you create sounds? Do you drop samples then apply effects? Was I wrong to think this was kind of like puredata with better UI?
true, there are some counterexamples. PD for instance. VHDL might be considered a programming language, if you consider an ASIC to be a program. Maybe that's stretching it a bit. There used to be tools that would try to build code out of UML specifications, but they are pretty awful IMO.
Don't rule out the freeware you can find online. I recently took a class called Jammin' with Laptops at my university and we used only freeware to put together mixes and essentially DJ (I'm in the same boat as you). Virtual DJ is one the free applications you can use to get started, along with Audacity to sample songs and sounds. This isn't a replacement and it's definitely better to save up for a real deck, but at least it's a start. Pure Data is an audio graphical programming application to help make your own beats and it also works well with video too, though there is a decent learning curve, if you're into programming. Those should be a good start at least.
No problem. If you're into this stuff and you like using computers, download Pure Data, it's a program for synthesising/processing audio and video with, it can do some really complicated stuff, but on a basic level you can recreate different parts of a synthesiser and see how they interact. You could do this with any music program, sure, but if you're building stuff in Pd you'll REALLY know how it works. It's a lot of fun too :)
It's the precursor to Max/MSP, the program Jonny uses for the drums on 15 Step, the guitar solo on Go To Sleep, and the processing of the other members in live versions of The Gloaming ;)
Why Alexis_ says this: realtime is not your friend. If you're playing music, the next note needs to go out within a few milliseconds of the exact right time or it will sound bad.
So you're almost certainly going to want to go multi-threaded, with one thread computing the next note and another high-priority one scheduling it at just the right time. This is hard programming and it doesn't make any noise, so the right thing is to just avoid it. For free options, I agree with Pd; Pd is a graphical programming language, and is different enough that you may find it hard to get into. ChucK is another neat alternative, and more like a traditional programming language, sorta Java-like.
With these guys, most of the "is this note scheduled on time" problem becomes Not Your Problem, and you can focus on the fun part: making the keyboard play notes when you wanted it to.
Something like this would be easy to create in Pure Data, which is free software. It might take a little bit of effort to learn how to patch together objects initially, but it's definitely doable. There's a community support site at puredata.info.
EDIT: look at the help file for tabplay~ -- it's a simple example of playing back a sound file. You would just need one array and one tabplay~ for each sound that you want to play back.
Actually it is very very resource friendly! Pure data is wonderfully quick and light. I would give it a try! Visit http://puredata.info/ or check out the puredata subreddit.
Trust me, the more you learn the more you win.
Pure Data That is where I started, and my current job title is basically "electronics / audio-whatever / computer engineering"
that and Arduino, of course. Also, if you can get a copy of Forrest Mimms' "Getting Started in Electronics", you'll be a lot less frustrated with that bit. I also reccomend Processing, in order to learn the conventions of programming, while playing with cool stuff.