Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I am intrested in learning about Music Visualization.
(eg: http://en.wikipedia.org/wiki/Music_visualization )
Does anyone have any books to recommend on the subject?
(I know its not a technical question, but it seems like a good place to ask)
Many thanks
You're in luck--it's a great time to get involved in the medium. Lots of new open source multimedia platforms are available now, with great communities forming around them--making it much easy to get something up and running.
I'm not aware of any books specifically on audio visualisation, but I think you'd be well served by reading more general material on:
computer graphics in general
graphic design (color, form, etc)
data visualisation
any of the great new open source multimedia platforms
If you're writing a visualization plugin for a media player, the problem can usually be treated as mapping FFT data and time to pixel space. You get the time and FFT data nearly for free, so the remainder of the problem is graphics programming, visual design, musical sensitivity and imagination. The way you combine these will ideally be your own.
You can expect to find lots of great information, tools, examples and communities surrounding any of the modern open source multimedia platforms:
processing.org -- a Java based platform which makes it really easy to get your works (called "sketches") up and running, with plenty of examples. You could plug in a library like minim to get the audio FFT parts for free
openFrameworks and libcinder -- C++ based platforms. If you want to write plugins for a media player like iTunes, you may need to use a language like C++. If you already know (or want to learn) C++, both are good choices.
I'd recommend jumping straight in with a platform like processing.org, together with a library like minim, play with the bundled examples, and build your knowledge from there.
There are quite a few books on processing if that suits your learning style.
If you want to stay current, blogs like createdigitalmotion are a great resource.
Also check out artists like flight4040 and Memo Akten who are using these frameworks.
Hope that helps.
Check this fantastic blog post:
http://www.ethanhein.com/wp/2011/visualizing-music/
There is also some great material on this book:
http://www.amazon.com/gp/aw/d/0060926716/ref=aw_d_detail?pd=1
The author also has a website with some examples.
http://www.constructingtheuniverse.com/Amen%20Break%20and%20GR.html
Happy visualizing
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm in the need for some competent suggestions about where to start with audio tool development. I've been in graphics programming for several years now and thought it would be a refreshing experience to expand my knowledge in a completely other direction.
Where do you see a good starting point for a newbie like me? For the beginning, some lines of code producing cacophonous sounds would make me happy already. What audio API would you recommend when aiming for cross platform support? What do I've to consider generally?
I most likely missed to give you important information to make my intentions clear, so just ask!
Thanks in advance! :)
You don't mention any specific languages, but in any case I'd suggest trying out some higher level exploratory tools for analysis/synthesis first. If you want to explore synthesis, oscillators, filters etc then you could try something like SynthMaker. If you want to experiment with audio analysis then try a tool such as Marsyas. If you want to deal with streaming audio and playlists then take a look at the Echo Nest API. Once you've explored these higher level tools then it'll give you a starting point to dive into algorithms. Given that you have a background in graphics then much of the signal processing and filtering aspects should be familiar to you.
Graphics requires you know a lot about geometric projection, rendering, textures, etc.
Audio requires you know a lot about signal generators, filters, etc. [I'm clearly not an expert]. But like the graphics stuff, reading a good book the basics of signal processing would probably help you a lot. Also, like graphics, getting somebody else's tool is pretty good and playing with to understand what they think the problem is and what kinds of things they can do makes sense.
Then, and only then, would I attempt to code something.
A good place do discuss audio processing and programming is the dsp and plugin development forum at the KVR audio website. Virtual instruments and plugins are a great way to experiment with audio programming, because the audio i/o is generally handled by host software. This would let you get making noise quickly. The skills learnt making plugins transfer to other audio applications well.
Assuming you're very comfortable with c I think the best place to start would be C Sounds http://www.csounds.com/ It's a cross platform audio processing environment suitable for any number of audio tasks including algorithmic composition.
Making Audio Plugins gives a very gentle start without too much DSP math.
The tutorials start from the very beginning and show how to create a synthesizer. The framework used is cross-platform (Win/Mac) and compiles to a standalone application as well as all major plugin formats.
In case someone new stumbles upon this question and likes to use Python, try using Nsound:
$ pip install nsound
An intro video here.
You don't mention a language. I have been doing audio development in Java, making use of core language functions and javax.sound.sampled library. For "real world" tools, probably C is a bit better. But there are uses in Java, e.g., gaming. If you'd like to see what a bit of what I've done, there are two links to check out:
home site web apps
demos for audio library work-in-progress
This is mostly if you want to roll your own. There is a LOT you can do without getting into heavy duty DSP like filters. You can still play with effects like echo, chorus, flanging, FM synthesis, wave-table synthesis, all sorts of mixing.
If you want to use libraries, I think good ones to try are Processing, PD, CSound, a couple more I'm having trouble remembering.
Also, maybe check out Praxis-live for live-coding audio.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I'm looking for a diagramming program that can help in designing software, right from the high-level requirements down to the low-level classes and functions.
I've seen a lot of UML programs, but they don't let you design at multiple levels of detail in the same map, like if you could "zoom in" and design the details of a part.
Do programs exist that help in such designing? Programs that let you design at the high-level and low-level on the same map?
Most of the UML products from large vendors will let you do what you want. "Rational Rose" and "Enterprise Architect" are just two examples that I have used. They both let you mix component, package and class level information in the same view. Both of them provide a way to specify requirements as part of the meta-data to a class and I believe, functions too.
Edit 8/23/09
I just found Topcased. It's free and does many of the same things as Rose & EA. I'm not sure about mixing different diagram types in one view, but you might want to give it a shot. I'm definitely going to investigate using it for my personal projects.
I recommend BOUML. It's a free UML modelling application, which:
has a great SVG export support, which is important, because viewing large graphs in vector format, which scales fast in e.g. Firefox, is very convenient (you can quickly switch between "birds eye" view and class detail view),
this can work as the "zoom" feature you're asking (I use such SVG exports my self, to be able to quickly overview relation of group of classes, and then zoom in into details of selected one),
is extremely fast (fastest UML tool ever created, check out benchmarks),
has rock solid C++, Java, PHP and others import support,
is multiplatform (Linux, Windows, other OSes),
is full featured, impressively intensively developed (look at development history, it's hard to believe that such fast progress is possible).
supports plugins, has modular architecture (this allows user contributions, looks like BOUML community is forming up)
The "zoom" feature you're asking can be obtained through SVG export. I use such exports my self in the way you're asking.
I've used Rational Rose and looks like it fits your needs.
You could try BOUML which, although it doesn't allow you to "zoom in", does cover all the aspects of UML, and allows you to view different parts of the design at once (in multiple windows). It is also free, which may or may not make it more desirable for you, and is quite cross platform.
First of all there are different diagrams for different things you want to express. During software design you dont only use UML, but also HTML sketches and things like that. So choose the right tool for the right task is my advice. Create a folder structure depending on your granularity, one for Frontend sketches (you can place it hiracially), one for class diagrams and so on. So try to establish a process that fullfils all your needs. Often the holy grail programm doenst exist or is not good, just because of the fact that it tries to satisfy to many customers.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I'm currently looking for diagramming software that allows me to quickly map stuff and jot down concepts such as a filesystem directories represented by nested boxes containing icons (representing files.)
Off course the simplest solution of all would be to just use paper and pencil, but unfortunately i have such poor motor skills that after minutes i cannot even distinguish the shapes I've drawn myself, never mind have these notes be of any use to someone else in order to have him/her work with them.
So far I've tried a ton of software packages but none of it seem to be simple/flexible/powerful enough to help fulfill the modeling /sketching tasks I'm trying to achieve
Visio,
smartdraw
Edraw
conceptdraw
Vue
yEd
Dia
Kivio
paint.net
photoshop
Illustrator
GIMP
in addition I've played around with modeling tools including staruml,argouml and Visual Paradigm as well as Eclipse modeling, but most of them were too complicated, too constricting and in some ways completely alien. On a side note, I absolutely HATE eclipse, I'm used to writing shellscripts with nano on a shell, The sheer amount of features (That i will never ever have any use for) make it hard for me to find that which I'm really looking for. YAGNI GDDMM*T!
Allthough UML modeling is at times important, such models are more for the next follow up phase and would be overkill (as well as a creativity killing burden) when I'm trying to come up with something from scratch.
Right now I'm looking for something new, I would be more than happy if someone could perhaps suggest something,
Most importantly i would like to find a program where the software allows me to do add new shapes and with the parent shape automatically growing so that that added shapes all fit inside of it rather than that i have to manually resize the parent shape
Your problem is a common one, and in recent years the big UML tool vendors have started adding functionality for sketching, as opposed to traditional modelling. My favourite, Enterprise Architect from Sparx Systems, has got "whiteboard" sketching and is also able to import from Visio.
It boils down to whether you know you'll just want to sketch, in which case you should get a tool which does that really really well (that last feature you mentioned is something I haven't seen in any UML tool). If on the other hand you know that you'll eventually want to turn the sketches into UML models, you need to consider whether you'll want to start over (which might be the easiest option, honestly) or have some sort of in-tool support to do that.
For "UML as a Sketch" I use the Hruby UML Stencil for Visio. These do not enforce eny semantics, so you can be as sketchy as you need to quickly record ideas and communicate.
See http://www.softwarestencils.com/uml/index.html
I use Dia. It is cross platform. Very simple tool.
However, My favorite has always been to sketch it on paper and scan (fotopragh it on my mobile) and keep it for records. Nothing beats pen and paper yet !
I tried yEd recently, because I happened to see it mentioned in another thread here. I'm quite impressed with it. Its pretty easy to use. I think the feature I liked the most is that I can draw my diagram regardless of the spacing and orientation. Then 1 button and poof, the whole things rearranges into the ordering I want.
As a linux diagramming tool, im pretty impressed with it.
this one is good for remote team members.
Nothing to install
http://www.dabbleboard.com/
I've used Visio for so long IMHO nothing beats it.
That said, I rarely use Visio in meetings to take initial notes. We'll diagram on whiteboards (get someone else to do the diagramming while you "facilitate") and then I take pictures of the result. Transcribing the photos to a Visio diagram helps me think it through.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I'm new to it and currently using the visual flow-chart like language that the Lego Mindstorms IDE uses. I'm impressed with how readable the diagramming language is but missing the flexiblity of actual code. I'm imagining complicated projects I want to try out and don't really want to implement them as a gigantic flow chart! lol :)
I know there are other languages/IDEs you can use but not really sure what they are or which to use. What IDE/language do you recommend for programming Lego Mindstorms projects?
I'd prefer an IDE that still allows me to hit Run and send the program down to the NXT brick via bluetooth and run it immediately.
UPDATE:
I ended up choosing lejos. Mainly because I've just started learning Java at work which is very similar to C# which I'm already familiar with. I would recommend Lejos since Java is a great high level, feature-rich language and there are nice IDE's for it. Eclipse is a great IDE which lejos has a plugin for and ant build scripts make building your project, loading it to the NXT brick and running it on the device a one step process. Lejos does require special firmware on your NXT brick but that went fine and you can always put your old Mindstorms firmware back on later if you want.
If you want to check out other language and IDE options I'd highly recommend this chart I stumbled across: http://www.teamhassenplug.org/NXT/NXTSoftware.html
FYI, I came across this extremely helpful feature comparison chart of different languages which you can program the NXT in:
http://www.teamhassenplug.org/NXT/NXTSoftware.html
Another option is Microsoft Robotics Studio.
I think this is a good book about programming your Mindstorm NXT with the NXC (Not eXactly C) language.
"LEGO Mindstorms NXT Power Programming: Robotics in C" by John C. Hansen
With a small amount of tinkering you can probably get NXC working with whatever your favourite IDE already is.
We used NQC for programming Lego Mindstorms. We was to build a four-wheel robot to gather artificial rubbish(pieces of bead and paper) in a competition. After testing different programming and IDEs I concluded NQC was right to me.(because I knew C and NQC had many good tutorial materials).
And the point is that you can modify your code easily with NQC. For example, at the competition, we should change our code in oder to cope with new challenges in our robot's environmetn( they changed MDF with carpet!)
by the way, We obtained a good result (third place) :)
MATLAB actually has a LEGO MINDSTORMS NXT Toolkit, if you're interested at all in using MATLAB. You can send commands via Bluetooth connection or create embedded controls that are downloaded to the robot. I've seen it discussed on some of the MathWorks blogs, and there are some demos posted on the MathWorks File Exchange (here's one).
You can use nxtOSEK as operating system on the NXT. Then you can use plain C to write your code.
Back in the day, NQC was the way to go; A good intro to C style programming, with fewer pitfalls.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I would like to write an interactive song. It would contain state and logic. A listener/user should be able to modify some state vars using a GUI or a MIDI interface. Listener accessible vars don't have to directly represent tempo, pitch or any other music property. They would rather represent values that logic would process in order to make changes to the song.
Do I have to write such platform myself or something fitting my imagination already exists?
Look at cSounds and PureData.
If you are happy to use Java, check out JFugue.
I have tried PureData, CSound and SuperCollider.
CSound is very cumbersome to program in, and has had severe stability issues for my requirements (24bit/96kHz realtime low latency linux) in version 4.
PureData is graphical, which makes it even harder to keep code neat and tidy then with text files. Composing is a pain because you have to build your own composition GUI, which can be powerful, but as long as I'm my only user I find it's just faster to use text.
The winner hands down is SuperCollider, because it is a smalltalk inspired object oriented language which is quite pleasant to work with. It is split into an OSC controlled sound server, and the client language. I can recommend the sound synthesis server and using the language to create instruments without reservation for its excellent stability, great flexibility and incredible power. I've used it live on stage and the performance is incredibly good.
The score creation language suffers from many-hands syndrome; in lack of recent clear leadership there are too many ways to do too many things with too many limitations, but it is still better than CSound because at least you can use reasonable high level structures.
Still looking for a composition language that just gets it right.
Have a look at Strasheela:
It's a composition system based on the programming language Oz. Learning Oz isn't easy, as it it combines the functional and the logic programming paradigm. However if you liked the SICP book, then you will probably like it too.
Strasheela treats music composition as a Constraint Statisfaction Problem (CSP), and seeks "solutions" for it. It means that the music style is defined as mathematical constraints on integer numbers (finite domain), that must be statisfied, and the built-in constraint solving system computes the solutions "automatically".
P.S.: I cannot program in Oz, but I'm on my way of learning it.
See High level languages for Computer Music and Programming Languages used for music for help.
I am not sure if it covers what you are after for, but have a look at Java Sound API. For a FAQ about what it can do see here. The benefits are that is already bundled in the SDK and JRE and that is cross platform. Also, you could build the GUI using any Java toolkit.
If it weren't for the interactive bits, I'd suggest looking at Haskore or Nyquist, both effectively being DSLs for music generation.
Definitely take a look at Alex McLean's livecoding demos, though. It's more flexible and interactive as you can possibly imagine, using SuperCollider through OpenSoundControl.
Answer is for .NET:
I found something, checkout NAudio by Mark Heath, a great .NET music library I would say it should be contained in the BCL.
midi-dot-net is another great C# project by Tom Lokovic.
For music interaction, PureData, Max/MSP and OpenMusic (these two last are from IRCAM) are the best. PureData is freeware. Google them!
I don't really get what you want to do, but here is a list of some CL music software, both for composition and cognition: http://www.cliki.net/Music
You're looking for an Audio Programming Language. Another option you should consider is Processing - used by many artists and musicians for this type of work.
-Adam
Its a shame that none said about Chuck................
Chuck is a programming language that is specifically built for music/audio generation and composition.
You can download Chuck at http://chuck.stanford.edu
its a lot easier to use,and is a lot familiar to c,c++,java etc,however its easier to learn too.You can find at Coursera about chuck for free from California arts university,link here.