Hi everyone, I am a student and am trying to understand the documentation for my project. I want to write an android application that processes the sound directly from the output of the phone, the work can be described as for example: I am watching youtube (or any sound source from where) and seeing the sound looks normal too , I want to add a little effect to this audio stream in real time (the latency is still there). Can someone with experience show me where to start or any open source code talking about this. Thank you very much.
Related
Intro:
Hi, my name is bart and im a dj / producer
When im traveling i get alot of inspiration. So i would love to be able to make music on my pocket pc. I searched for software like drumsequencer/samplers for pocket pc. ?I found some very basic/not interesting freeware progs. And 1 over the top not realy functional wav sampler wich costs money btw. btw excuse me for my grammar as i am dutch i will likely make some major grammar faults.
So i decided i need to make one my own. and make it good and then release it to the public for free.
The Concept:
Maybe some of you know this program some dont (look it up on google then) but do you remember the program called Rebirth? it is a piece of software by "propellorhead" wich is actualy a digital clone of a oldskool 808 and 909 drumcomputer and 2 303 synths. It also includes 4 basic effects: Delay, Distortion, enveloped cutoff/resonance and a compressor.
Wich are basicaly mathematical formulas wich change the sound produced by one of these drumpcomputers/synths. One of those effects cqan be used for one sound source only.
ok so i basically want to get about thew same specs as that program. Only with less cpu intense graphics, just 1 drum and 1 synth and compatibilaty with atleast the mda vario aka qtek 9100 but i prefer compatibilaty with almost all pocketpc's.
here is a basic list:
1 drumsequencer (with maybe 4 samplekits?)
1 synth (soundgenerator using 4 different wave shapes)
1 cuttof/resonance filter
1 distortion filter
1 delay
1 internal mixer ( each channel will have a own volume knob i guess)
Read this before continueing
Ok so now is the question if you are interested in all this. If you want a program like this read on. If you are good in programming even better.
If you know a lot about music or music in combination with pc software you can definately help me out.
I know almost nothing about programming. Ok i know some oldskool basic, i can do some html and php, but thats it. Tho im not stupid and i learn quick. I also think that this project may be a good excuse to start learning to program. So basically i first need to determine some important facts before i start this project:
Wich programming language is required for this project
How much programming skill will this project need (basic, medium, expert)
What about the soundchips in ppc's and how to communicate with them
Use sound sampling based techniques or sound generating techniques
Are there people to support me, can they help write code, can they help answer questions
And the list go's on... if you think you can answer one of these questions dont hesitade and start to support this project
ok nuf said... lets get back to bussines:
Main functions
Ok so i guess i need some main functions wich would be the core of the program. There needs to be a timecode aka bpm (beats per minute)
This means a play button and a stop button. There needs to be a visiualisation of the drumcomp, synth and effects. I would also like to note that im not planning to use the function of a pattern playlist yet ( a playlist tells the sequencer to play different patterns from a database of patterns).
To keep things simple i want to keep this version just playing this 16 step pattern as a loop. Very important is that all sequencers (synth, drums, delay effect) go as fast as the timecode aka bpm.
The Drumcomputer aka Sequencer:
The idea is to make a 16 step sequencer. For those who dont know what that means plz look it up on google. i would like to implement the feature to use different samplekits from a list. i als am wondering wich format whould be best to use to compress these samples... wav, aif, 8 bit 16 bit 22khz ???!!??
The synth aka soundgenerator:
I want the following functions on this soundgenerator.
It is triggered by a sequencer
You can change pitch of each note
sound can be modified by cuttof resonance
you can choose 4 waveshapes: sinus, square, triangle, noize.
very similar to the 303 in rebirth do it doesnt have to have the same sound just the functions.
The effects:
Need to find the mathematical formulas for these effects and check how to convert them to this program.
Internal:
Ok first i want to tell what ISNT needed. I dont need save to be implemented yet as a wont be using playlist and mulitple patterns anyway.
All sound sources (drums, synth effects) have a own volume knob wich indicates the volume. I want to make a internal mixer wich mixes the drum, synth and effects together according to the volume set by these volume knobs.
ok im done typing for some time... i will do some adjustements to this post later on: and if it gets some serious i will make a good decent, main thread, with the name of the project in the title etc.
Thnx for reading all this and i hope to get some nice feedback... or questions.
greetz bart.
Hello Bart!
First of all, I'd like to say that you are off to a good start by making a detailed project outline.
Although I never done any programing involving audio manipulation I believe I can answer some of the questions you posted here:
1. There are 3 main stream languages to program pocket PCs:
.NET Visual Basic and C#, and native C++ (eVC++)
Unless you can fined .NET objects dedicated to functions you described it will probably be better to use C++ as it will make access to windows API easier.
Also for VB and C# you will need to by Visual Studio 2005, but eVC 4 can be downloaded for free from Microsoft.
2. I estimate this project will take medium to expert programming skill depending on how cooperative windows CE will be with your goals. Hopefully you wont have to access the audio chip directly. Alternatively there may be a .NET component that will make your life very easy try Google.
If you know the mathematics behind the effects you got half the job done and I am sure you will find people to help you with the coding.
So good luck, and remember - people like free software so this project can't be a bad idea!
Ok, with your answers in the back of my mind i did some googling
and i noticed that there is quite some sourcecodes and info for audio programming in c++
check this link for example: http://www.harmony-central.com/Computer/Programming/
Tho in my search i stumbled on another thing... what about java? maybe it wil be a lot easyer in java? and maybe also more compatible? i dunno just guessing here...
anywayz as for the c++ side: i noticed i can download many synths, effects examples/sourcecodes and they are all copyright free. it will be a task of exploring this sources and binding it all together or something similar. is there anyone out there with the c++ guru powers it requires that can guide me in this jungle of data?
edit: o btw does wm5 support DSP ? guess not but worth asking
For the past week or two, I've been looking into developing an open source project similar to Orb.com where you can stream A/V content to your phone or PDA. There was something similar posted to the Hermes forum by fun_key, but that was unfortunately not true media-on-demand, because it started VLC (www.videolan.org) and then would have the client connect, which would make the client miss the beginning of the media, sometimes a lot depending on connection lag.
The interface of this project would be web-based, again, like Orb. The problem I have run into, however, is the actual streaming. I have looked into using ffmpeg (has compatibility issues), mplayer (can't stream out; uses ffmpeg), and VLC, among others. VLC seems to be the most promising one, but I have some issues with it.
The main issue is due to me trying to make this work with WMP and not CorePlayer/TCPMP because of the video problems that has on the Hermes (and because it would be nice to stream to PCs at university/work without installing stuff on them). I managed to do some test streaming to desktop WMP, but the mobile one just won't work - it seems to be trying to download the entire file before playing it, which is not going to happen because it's huge.
So I am asking for any kind of help or suggestions that any of you might have. Especially if someone here is familiar or has worked with Microsoft's ASF specifications and is willing to help, that would be awesome.
EDIT: Almost forgot -- this project would work on at least Windows and Linux.
Cool! I can't really help you,
but I just wanted to say I very much like the idea!
I've been looking for this since I learned about orb.
I even made a dual boot windows xp install specially for Orb, so when I leave my house, I reboot the PC in WinXP to lbe able to listen to music and watch TV on the go.
A linux alternative would make this unnecessary!!
Please someone who can help, join this project!!
Strange, I thought I was subscribed to this thread, but I didn't get any notification of your post, ksdz...
Anyway, I've pretty much given up on using WMP because have neither the time nor the patience to study and code for the ASF protocol, but I have not given up on the idea itself.
Right now I'm working on another project, but once that's ready, I will most likely return to this. I might as well make use of CorePlayer/TCPMP - in fact I've already figured out how to do the most challenging parts of this. I only wish I had more time to work on personal projects such as this one.
Hi,all!
I am now beginning a multimedia project (audio/video... player) on android platform. But android 2.1's codec support is rather limited (androidappdocs.appspot.com/guide/appendix/media-formats.html). It's required to do some extension development to support more codec, ape, flac,rm, rmvb,for example. I ran around the net for the whole day, but i failed to find any related referrence and source code.
so my question: is there some open project do the same or similar things? i need some open source code to study!
i hope there would be some experienced guys give some tips for development! Thanks in advance!
i found a post (n2.nabble.com/Port-Gstreamer-to-Android-td2410295.html) trying to port gstreamer to android.
but still i don't know how to continue...
I'm thinking it would be better to port mplayer its a bit hevier but in my experience it's more reliable/stable.
look around i think someone got mplayer running and decoding video but was strugling with acctually displaying it. my guess is you would need some sort of java front in to tie it to the android display system unless you could go through opengl or something
I am baffled by all the complex coding apps have and has taken me over a year to create what I have and thats so much stress yet others can do things in matter of hours.
I have looked at various apps and the source codes in them to help me understand the workings of things but one thing I would like is to play audio on a page and cannot figure out how to implement it to the code.
I can compile the source code and sign it and it works on my tablet but as soon as I try and change code it fails so must be missing a large chunk of code.
Is there anyone willing to have a look at my app code and see if they can add audio to it, i dont expect you to do every page but if one can be done I can then copy it so all other pages work too.
hi all,
I have a few questions about webRTC on android. I can say I'm new about android and webRTC but I can also say I made tooo much research about webRTC on android. But still have a few questions. (some of them because of I'm new, and some of them because of I'm okey but not fully)
I'm trying to make an android app which is going to communicate between web browser (first choice is chrome) and android device directly (p2p we can say). So I made too much research and I found webRTC is good for me. Do you advise me something other or is it okey you think? (also I am going to code a plugin for chrome).
Nearly every document says 'android is not directly support webRTC'. So I need something to provide me webRTC on android. What it is? Is it native android that I have to code? Is it native (NDK) library that I have to include my project? Or is it a java lib? Or should I go for cordova/crosswalk or sth like that? I researched all but didn't find something can help me. Yeah there are documents about it but not enough..
Some of documents says, I need chromium. But why and how? They show me lots of linux terminal commands and even there is no a line java or C or C++ code. Even some terminal commands and links that they give is not working.
I read/found/tried these things as a result of my research:
Apache cordova
Crosswalk
http://www.webrtc.org/
https://github.com/webrtc
http://webrtc.github.io/samples/
http://simonguest.com/2013/08/06/building-a-webrtc-client-for-android/
http://orcaman.blogspot.com.tr/2014/07/building-native-android-webrtc-source.html
https://github.com/pchab/ProjectRTC
https://github.com/pchab/AndroidRTC
in a nutshell I need help. Please give me your hand. Thank you. (because I'm really very helpless and tried to do my best)
Thank you.
Any idea? Any help?