audio editing web app - java

I want to develop, as a part of my project, a web application that will enable users to edit, mix and apply effects to audio. I am aware of the J2EE development pattern, but am not sure where to start from. I want Audacity like functionality (actually, sox). Is there any Java API for audio editing/mixing and applying effects? If yes, can one write new effects? This would allow me to dynamically generate effects chains, based on the users' input. I searched the web, but it's all "learn to use audacity..." there. Also, is there any way such effects can be applied in (near) real time?
I found Soundation and Myna to be good apps that already do what I want( though Myna has no real time effects support), but they've both got the same old audio editing UI.
Thanks in advance!

Maybe you can look at this:
"Movie Masher going open source after Adobe supported it thus allowing integration to your site too." Maybe your solution is here : http://www.moviemasher.com/

You should check these options below:
Web Audio API
http://www.w3.org/TR/webaudio/
And also
WebPD:
https://github.com/sebpiq/WebPd

Related

Possibly non-intrusive method to change complete android application code with a library

I'm having quite tough problem while developing a testing framework for android apps. The text got a bit long so the actual question is in bold for those that don't want to read the context.
Basically, what I'd like to achieve right now is to trace user activity while he's using the application as one of the features. There's my app that manages context data all the time and developer's app - the one being tested. My idea to do this was to get coordinates where user touched the screen along with taking a screenshot simultaneously. Then I'd use the coordinates to mark the spot on the screenshot to get the idea of what user was doing the whole time with the app. Take hints on user experience and trace crashes.
Non-system apps cannot take a screenshot for security reasons, but application itself can take a screenshot of its Activities without much trouble for non-rooted users, e.g. like here. My only hope here is to interfere with developers' code to implement the functionality of doing so while my testing app is running. Each Activity then would have to extend my overridden Activity instead of regular one, implement an interface, implement broadcast receiver etc.
I am going to write a library for developer who would like his app to be tested with my framework. I'd like it to do the job for me and be as non-intrusive as it's possible for him to use. How to achieve that the best way?
Ideal case would assume linking the library to project with maybe a small addition in manifest that'd get the job done and after just unlinking, removing that bit of xml in manifest for production.
That's an open question. I don't expect any bits of code, but some nifty Java trick, Android OS functionality or even completely other approach that'd solve my problem
I tried to be as clear as possible with the question, but that's a quite tough matter for me to describe so that could have turned out contrary. Don't hesitate to ask me for more details, to speak my mind more clearly or even rewrite the question. Thank you all very much for help!

Sharing a word in Android

I wanted to know if there is any feature in Android where I could select a word from a third party application and send or share that word to my application. I could store that word in my application for further processing.
Implementing a "share" action is easiest if you are targeting API level 14+ (Android 4.0), as documented here: Adding an Easy Share Action.
If you need to target an earlier API level, the process is a bit more involved, as documented here: Receiving Content from Other Apps.
(Note that while I normally consider link-only answers on Stack Overflow to be a poor choice, the process of implementing "share" actions is somewhat involved and fully documented on the Android developer site. This is a case where simply pointing you at the documentation seems like the most appropriate thing to do.)
Here is Android copy/paste desciption: http://developer.android.com/guide/topics/text/copy-paste.html.
But I don't think there is way to modify 3rd-party app's context menu to add custom option like share, without changing this app's source code or changing Android platform (to add your own sharing mechanism to context menu).

What's the right approach for creating an Android app?

I have a great idea for an Android app, but as I'm only familiar with php/js, I'm uncertain of which approach I should choose for creating it. The app will be based on a google map with a lot of position markers. There won't be any fancy animations or other heavy resource-demanding activities.
As I see it there are three different options:
Read up on Java and program the whole thing in Java
Create the map activity in Java as a mapview and then use webviews for the other activities (which can easily be scripted as html5 webpages.)
Script everything as a webapp (not really an option, as this is not a real mobile app imho.
I'm most keen on using no. 2 as I'm quite familiar with html/php/js/mysql. Have to read up on the html5 specifics, though. Questions:
I need access to GPS and camera hardware. Is that acheivable in webviews?
How complicated is it to pass variables between js in webview activities and java in other activities?
How big a difference in performance can I expect if I use option 1 vs option 2?
Other thoughts?
Kind regards,
Anders
You can choose number 2, but as we are talking about an android phone, you might want to get really accurate coordinates for your map, and you can only achieve this by accessing your phone GPS, through webviews the best you can get is the location trought the device internet IP adress, wich doesnt lead to a very accurate geo position.
The best choice is a 100% java application in my opinion.
1) Yes it's possible, but as commented it will be less accurate and probably slow.
2) Not complicated. Painful if you need loads of interaction between a webview and native app. Using a Javascript Interface that can be set up from the native app. You can basically inject javascript in a webview's html.
3) Heterogeneity of performance depending on device. Because your implementation will be based on the device's browser you can expect to get really sluggish behavior for older devices. Anything to do with HTML events (Dragging, Tabbing...) will have a knock on most devices, from my experience.
4) As #vodich comments there are other party frameworks. My benchmarking on PhoneGap and other js-based options is that they're a waste of time if you are looking at developing a professional app. I haven't developed on Adobe AIR but find a pain the need to be installing plugins to get native functionality (access to sensors, camera, etc) Mobile is all about fast, responsive behaviour. HDI is your finger, user is fast, so app needs to be fast.
EDIT: So hell yeah! Java FTW!
Albert.
4.Other toughts?
Yes, if you really want to make a great Android app, you should be using only Android and specific Android UI components, and give it a native look and feel. And regarding 1,2 yes it is possible, I would say not so complicated to just integrate them, but I think you'll eventually get in big problems.
Learn Java and write your application natively.
Webviews might allow you to use your php skills to present something to the user, but it's entirely one-way - you'll not be able to interact with what's inside.
The Android developer site offers fantastic documentation and jumping from PHP to Java isn't greatly difficult, though you'll need to get used to strict typing and "real" OOP.
Other thoughts? Don't go down the PhoneGap/Cross platform toolkit road - it might allow you to write applications for multiple platforms and using your current skills, but in the end you get a subpar app that doesn't feel right on either platform and doesn't fair well as future versions of iOS and Android are released.

how to (organize) the interaction between the Android UI (HTML, CSS) and native code (Java)?

Good afternoon.
I hasten to add that I am new to developing for Android. I am writing a geolocation service (application).
Standard elements of the user who provides Google does not suit me. In many of the Internet once faced with information which says that you can write a user interface for Android using CSS and html.
After reading a lot of information on this topic, I realized that Most developers tend to use frameworks (PhoneGap. ..). But this approach does not suit me, for two reasons:
javascript - it is used everywhere, and I do not know
This absence of adequate (understandable) documentation or guides for frameworks.
It is for these reasons that I'm wondering whether it is possible to write the user interface using html and CSS, and all the features in Java without using frameworks.
As communication between fallback interface and native code, even with the assistance of javascript, but without the use of frameworks.
P.S. I am not good in English - I hope you have understood the point of my question. I hope for your help.
Normally an Android app defines UI in Android-specific XML and the code is in Java or, if really necessary, C/C++.
Probably you could use a WebView in your Android application which will display an html page from your assets directory.
Such html page can have javascript in it which will invoke some hooks in your code. It's described in the book The Busy Coder's Guide to Advanced Android Development Chapter 1, I believe
yes you can.
your html+css will all be in a webview and there're elements like the webview client that can communicate with what's inside the webview.
But I would like to leave you with a warning:
Every single web based app IS slower and with a poorer interface than proper native apps. Also, without the use of a framework you still will have to know a good portion of the native stuff.

Whats the best way to start programming for my non-smartphone?

I have a general old-fashioned phone that has no special app system and uses Java (I assume ME) for the few applications you can use on it.
This is still a decent userbase and I'd like to start programming for this type of phone. I already know basic Java theory and syntax, so.. where do I get started for programming for non-smartphones?
Best programming environment for Java ME IMO is Eclipse with EclipseME. Includes lots of built-in stuff about packaging your midlets etc. The SonyEricsson wireless toolkit is great for PC-based testing and debugging, but don't forget on-device testing!
If you don't know much about Java ME's lifecycle, then get reading as widely as you can, and try lots and lots of examples. Start with the JSR-118 (MIDP2) javadocs; you'll want these open on your desktop at all times while coding.
Don't waste too much time with the form-based user-interface; I recommend either rolling your own using Canvas, or read about LWUIT.
You can do all sorts in Java ME and target a very broad range of handsets. HTTP capability is guaranteed, so you can hook up to a public web service, or create your own using something like Google Appengine.
Finally, you can release your app very easily on somewhere like Get Jar. Don't be put off by those who say "no owners of Java ME handsets want apps", you'll find the most popular user bases on this site will be users in countries such as India and Indonesia.
Good luck!
I would start with a book on J2ME and work from there.
Try Beginning J2ME: From Novice to Professional.
You could also download the J2ME SDK and play around with the example they give.
For tutorials have a look at the stackoverflow question https://stackoverflow.com/questions/584923/do-you-know-a-good-j2me-tutorial as mention in my comment.
I started with writing simple Flashlight application (choose how much seconds screen will remain lit) in NetBeans ME. And other app which I mange was Countdown with some graphics and sound. After that I found limitations too much annoying and now I'm waiting for my Android phone.
in short:
If you want to try it out - you don't need to buy books. There are plenty of tutorials around.
But, if you want to start deep development - don't waste time.

Categories

Resources