Skip to content

Commit

Permalink
V2 as good as here.
Browse files Browse the repository at this point in the history
  • Loading branch information
rjmarsan committed Nov 10, 2011
1 parent 9dc02ff commit 0793daf
Show file tree
Hide file tree
Showing 46 changed files with 126 additions and 26 deletions.
6 changes: 3 additions & 3 deletions AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest package="com.rj.processing.plasmasound" android:versionCode="15" android:versionName="2.0" xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal">
<uses-sdk android:targetSdkVersion="11" android:minSdkVersion="8"/>
<uses-sdk android:targetSdkVersion="14" android:minSdkVersion="8"/>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

<application android:label="Plasma Sound" android:icon="@drawable/icon" android:hardwareAccelerated="true">
<application android:label="@string/app_name" android:icon="@drawable/icon" android:hardwareAccelerated="true">

<activity android:name="com.rj.processing.plasmasoundhd.PDActivity"
android:theme="@android:style/Theme.Holo" android:screenOrientation="landscape"
android:configChanges="orientation">
android:configChanges="orientation|keyboard|navigation|touchscreen|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
Expand Down
1 change: 0 additions & 1 deletion build.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
application-package=processing.android.test.msapong0_1
proguard.config=proguard.cfg
Binary file added export/PlasmaSound HD.SD.2.apk
Binary file not shown.
4 changes: 4 additions & 0 deletions proguard.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-dontwarn **CompatHoneycomb
-keep class android.support.v4.** { *; }


-keep public class * extends android.app.Activity
-keep public class * extends android.app.Fragment
-keep public class * extends android.view.View
Expand Down
1 change: 0 additions & 1 deletion project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
# "ant.properties", and override values to adapt the script to your
# project structure.

proguard.config=proguard.cfg
# Project target.
target=Google Inc.:Google APIs:11
android.library.reference.1=../../../Documents/workspace/AndMT
Expand Down
33 changes: 33 additions & 0 deletions psds/site/description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Plasma Sound is now the most fully-featured and 100% free music instrument on the Android Marketplace!

Beautiful music instrument inspired by the Theremin, Continuum, Keyboard and Sequencer. Touch the screen and a note is generated. It's X-Axis (left-to-right) is pitch, which is designated by note and octave markings. It's Y-Axis (up-and-down) is up to you to control! Plasma Sound is incredibly configurable. Pick the note range, the waveform, cutoff, delay, tremolo, vibrato and more! You can even select between continuous mode (theremin-like), quantize mode (keyboard-like), and a hybrid.

Plasma Sound applies the same principals to the Sequencer to give you even more music creation abilities! Select a note to activate it, and drag up and down to select it's Y-value, controlling the same thing that the Y-Axis controls in the Keyboard section. Immediately you get an incredibly dynamic and versatile sequencer.

On top of all that is a beautiful visual based off of MSAFluid, The sound is generated by libpd.







I definitely want to stress that it's free. Not like... free but plastered with ads, or a free demo, but super freaking free.

The source link is a nice thing to have on there, but if it's not easy to put in, it has no place. It's not a 'feature' of the app, but if there's an easy place to 'tuck it away' that'd be nice.
The source for this program is at: https://github.com/rjmarsan/PlasmaSound




Market link:
http://market.android.com/details?id=com.rj.processing.plasmasound
Amazon link:
http://www.amazon.com/gp/product/B005OLNP5W

and that's it!





Binary file added psds/site/logobig.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/logobig.xcf
Binary file not shown.
50 changes: 50 additions & 0 deletions psds/site/plasmasoundratings.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
http://www.connectedmagazine.ca/connect/15394/app-addict-halloween-edition/


by Santosh Limaye (October 12, 2011)
Not a musician, but. I never thought I'd enjoy such an application for my phone, but ah, what a wonderful experience!



by jonathan (October 12, 2011)
Out of so many free music apps, this leads the pack The interfaces are elegant and intuitive, and the number of sounds the program is capable of generating is extremely impressive.



by (October 12, 2011)
What the f..... ! What brilliant nonsense ! LOL


by Cube (September 16, 2011)
Coolest piano like music app so far. Coolest music like piano app so far I would think somebody who knows music could use it to make sweet synth or 16bit/ 8-bit chiptune like music and HDMI it out to a projector big screen at a club if you was a dj or something. The plasma mist smoke looks a bit blocky and low res on my Xoom tablet screen and large screens though like a ps1 fog effect. some strange graphic bugs too looks like a glitchy NES game sometimes with things showing up that look like they should not be there.



by Ollie (July 12, 2011)
Beautiful and sounds great This is as lovely to watch as it is to play. I love the multitouch and the range of customisable features. This app is pretty epic as it it, but I'd like to see further effects, such as super long sustains and ability to manipulate shape of wave forms over time. I'd also like more preset sounds to play with. Brilliant. Shocked that something so good could be for free.



by scott (September 22, 2011)
Well put together. Interesting app. Wish I could hook my phone (epic 4g) to an amp and jam out. Fun to tweak the settings and play around. Added bonus, stunning visuals.



by Garion (September 20, 2011)
Absolutely wonderful, thank you so much for this - the loveliest app I've installed on my Droid so far.



by barbara jo (September 15, 2011)
Cool beans!! This is such fun!! Don't think I'll let grandkids see it...I'd never get my phone back!! Really cool app..and I am an ol gray hair!!



by SunLikeStar (September 14, 2011)
Five Star App To quality app, I sleep playing with it every night :) Just update the app again, i think now i trust the developer enough now to put it on automatic update. Much respect for keeping it add free.



by David (September 13, 2011)
Genius I can't imagine how many hours were put into this.

Binary file added psds/site/screenshots v2/phonekeyboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/phonesequencer1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabblank.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabeffects1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabeffects2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabeffectsload.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabkeyboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabsequencer1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabsequencer2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabsequencer3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabsequencer4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabtouch1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added psds/site/screenshots v2/tabtouch2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Plasma Sound</string>
<string name="app_package_donate">com.rj.processing.plasmasounddonate</string>


<string name="instrument_name">Keyboard</string>
<string name="sequencer_name">Sequencer</string>

Expand Down
Binary file added screenshots/2/phonekeyboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/phonekeyboard1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/phonekeyboard2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/phonekeyboard3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/phonekeyboard4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/phonesequencer1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/phonesequencer2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/tabblank.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/tabeffects1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/tabeffects2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/tabeffectsload.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/2/tabkeyboard.png
Binary file added screenshots/2/tabsequencer1.png
Binary file added screenshots/2/tabsequencer2.png
Binary file added screenshots/2/tabsequencer3.png
Binary file added screenshots/2/tabsequencer4.png
Binary file added screenshots/2/tabtouch1.png
Binary file added screenshots/2/tabtouch2.png
20 changes: 10 additions & 10 deletions src/amir/android/icebreaking/RadioGroupPrefs.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public RadioGroupPrefs(final Context context, final AttributeSet attrs) {
super(context, attrs);
mDefault = attrs.getAttributeValue(psndns,"defaultValue");
mDefault = getPersisted(mDefault);
Log.d("RadioGroupPrefs", "Default:, "+mDefault);
//Log.d("RadioGroupPrefs", "Default:, "+mDefault);
title = attrs.getAttributeValue(psndns, "title" );
key = attrs.getAttributeValue(psndns, "key" );
titleArrayRes = attrs.getAttributeValue(androidns, "entries" );
Expand All @@ -66,7 +66,7 @@ public RadioGroupPrefs(final Context context, final AttributeSet attrs) {
}

View v = onCreateView(this);
Log.d("RadioGroupPrefs", "Finished making view, notifying change");
//Log.d("RadioGroupPrefs", "Finished making view, notifying change");

}

Expand All @@ -91,7 +91,7 @@ private boolean doesValueEqualOtherValue(String val1, String val2) {
@Override
protected void onFinishInflate() {
super.onFinishInflate();
Log.d("RadioGroupPrefs", "Finished inflate, checking "+mDefaultEntry);
//Log.d("RadioGroupPrefs", "Finished inflate, checking "+mDefaultEntry);
this.check(mDefaultEntry);
setOnCheckedChangeListener(this);
// getHandler().postDelayed(new Runnable() {
Expand Down Expand Up @@ -151,7 +151,7 @@ protected View onCreateView(final ViewGroup parent) {
b.setText(titles[i]);
b.setId(i);
b.setTag(values[i]);
Log.d("RadioPrefs" ,String.format("making view: %s, id: %s", b, b.getId()));
//Log.d("RadioPrefs" ,String.format("making view: %s, id: %s", b, b.getId()));
this.addView(b);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.weight = 1f / buttons.length;
Expand All @@ -165,7 +165,7 @@ protected View onCreateView(final ViewGroup parent) {


private void updatePreference(final String newValue) {
Log.d("RadioGroupPrefs", "Writing new value: "+newValue+" for key:"+getKey());
//Log.d("RadioGroupPrefs", "Writing new value: "+newValue+" for key:"+getKey());

final SharedPreferences.Editor editor = getEditor();
editor.putString(getKey(), newValue);
Expand All @@ -182,16 +182,16 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// Log.d("RadioPrefs" ,String.format("view: %s, id: %s", findViewById(checkedId), checkedId+""));
// //Log.d("RadioPrefs" ,String.format("view: %s, id: %s", findViewById(checkedId), checkedId+""));
// if (findViewById(checkedId) == null) return;
if (doesValueEqualOtherValue(values[checkedId],mDefault)) {
Log.d("RadioGroupPrefs", "Same thing: "+mDefault+ " exiting...");
//Log.d("RadioGroupPrefs", "Same thing: "+mDefault+ " exiting...");
return;
}
mDefault = values[checkedId];
if (values.length > checkedId) {
updatePreference(mDefault);
Log.d("RadioGroupPrefs", "Updating checkbox");
//Log.d("RadioGroupPrefs", "Updating checkbox");
}
for (int i=0; i<buttons.length; i++) {
if (buttons[i]!=null) buttons[i].setChecked(i == checkedId);
Expand All @@ -200,10 +200,10 @@ public void onCheckedChanged(RadioGroup group, int checkedId) {


public void notifyChange() {
Log.d("RadioGroupPrefs", "Notify change called! old value: "+mDefault);
//Log.d("RadioGroupPrefs", "Notify change called! old value: "+mDefault);

String val = getPersisted(mDefault);
Log.d("RadioGroupPrefs", "Notify change called! new value: "+val);
//Log.d("RadioGroupPrefs", "Notify change called! new value: "+val);
mDefault = val;
for (int i=0; i<buttons.length; i++) {
buttons[i].setChecked(doesValueEqualOtherValue((String)buttons[i].getTag(),val));
Expand Down
15 changes: 13 additions & 2 deletions src/com/rj/processing/plasmasoundhd/MiscDialogs.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ public void onClick(DialogInterface dialog, int which) {

builder.setNeutralButton(R.string.rating_dialog_donate, new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "Coming soon!", Toast.LENGTH_SHORT).show();
String donatepack = context.getResources().getString(R.string.app_package_donate);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id="+donatepack));
context.startActivity(intent);
dialog.dismiss();
}});

Expand All @@ -60,6 +63,14 @@ public void onClick(DialogInterface dialog, int which) {
context.startActivity(intent);
dialog.dismiss();
}});
builder.setNeutralButton(R.string.rating_dialog_donate, new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String donatepack = context.getResources().getString(R.string.app_package_donate);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id="+donatepack));
context.startActivity(intent);
dialog.dismiss();
}});
builder.setNegativeButton(R.string.rating_dialog_neveragain, new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Expand Down Expand Up @@ -150,7 +161,7 @@ public static void showTutorialDialog(final PDActivity context) {
inflater.inflate(slides[c.count], blanklayout);

alert.setContentView(demoborder);
alert.setTitle(R.string.tutorial_dialog_title);
alert.setTitle(slidetitles[0]);
// demoborder.postInvalidateDelayed(2000);
// alert.getWindow().getDecorView().postInvalidateDelayed(2000);
// demoborder.getHandler().postAtTime(new Runnable() { public void run() {
Expand Down
6 changes: 3 additions & 3 deletions src/com/rj/processing/plasmasoundhd/PDActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -684,12 +684,12 @@ public void onActivityResult(final int i, final int j, final Intent res) {

public void readSettings() {
if (inst == null) {
Log.d("ReadSettings", "Called with inst being null!");
//Log.d("ReadSettings", "Called with inst being null!");
Thread.dumpStack();
return;
}
final SharedPreferences mPrefs = PDActivity.this.getSharedPreferences(SHARED_PREFERENCES_AUDIO, 0);
Log.d("ReadSettings", "Called with inst being all good");
//Log.d("ReadSettings", "Called with inst being all good");
inst.updateSettings(this, mPrefs);
}

Expand All @@ -705,7 +705,7 @@ public void onStop() {
// @Override
// protected void onSaveInstanceState(Bundle outState) {
// try {
// Log.d("PDActivity", "Destroying! saving!!!");
// //Log.d("PDActivity", "Destroying! saving!!!");
// JSONPresets.getPresets().savePreset(this, inst);
// JSONSequencerPresets.getPresets().savePreset(this, sequencer.sequencer);
// } catch (Exception e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void removeListener(PresetListener listen) {
this.listeners.remove(listen);
}
public void notifyListeners(JSONObject preset) {
Log.d("Presets", "Notifying all "+listeners.size()+" listeners");
//Log.d("Presets", "Notifying all "+listeners.size()+" listeners");
for (PresetListener l : listeners) l.presetChanged(preset);
}

Expand Down Expand Up @@ -350,7 +350,7 @@ public JSONObject getPresetsInternal(Context context) {
BufferedInputStream f = new BufferedInputStream(new FileInputStream(jsonFile));
f.read(buffer);
String jsonString = new String(buffer);
Log.d("Presets", "Presets:\n" +jsonString);
//Log.d("Presets", "Presets:\n" +jsonString);
JSONObject object = new JSONObject(jsonString);
return object;
} catch (Exception e) {
Expand Down Expand Up @@ -392,7 +392,7 @@ public void writePresets(JSONObject json, Context context) {
File jsonFile = new File(context.getFilesDir(), JSON_FILENAME);

String out = json.toString(4);
Log.d("Presets", "Presets:"+out);
//Log.d("Presets", "Presets:"+out);
BufferedOutputStream f = new BufferedOutputStream(new FileOutputStream(jsonFile));
f.write(out.getBytes());
f.flush();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public void removeListener(PresetListener listen) {
this.listeners.remove(listen);
}
public void notifyListeners(JSONObject preset) {
Log.d("Sequences", "Notifying all "+listeners.size()+" listeners");
//Log.d("Sequences", "Notifying all "+listeners.size()+" listeners");
for (PresetListener l : listeners) l.presetChanged(preset);
}

Expand Down Expand Up @@ -302,7 +302,7 @@ private JSONObject getPresetsInternal(Context context) {
BufferedInputStream f = new BufferedInputStream(new FileInputStream(jsonFile));
f.read(buffer);
String jsonString = new String(buffer);
Log.d("Sequences", "Presets:\n" +jsonString);
//Log.d("Sequences", "Presets:\n" +jsonString);
JSONObject object = new JSONObject(jsonString);
return object;
} catch (Exception e) {
Expand Down Expand Up @@ -344,7 +344,7 @@ public void writePresets(JSONObject json, Context context) {
File jsonFile = new File(context.getFilesDir(), JSON_FILENAME);

String out = json.toString(4);
Log.d("Sequences", "Presets:"+out);
//Log.d("Sequences", "Presets:"+out);
BufferedOutputStream f = new BufferedOutputStream(new FileOutputStream(jsonFile));
f.write(out.getBytes());
f.flush();
Expand Down

0 comments on commit 0793daf

Please sign in to comment.