3. akaMasayuki Akamatsu, Ph.D
● Media Artist
● Professor at IAMAS
● Fellow at some comapnies
Gocco., Soneru, Ma-tilde…
● Sound, Visual, Network, Mobile…
Real-time Performance
Interactive Installation
Mobile/Network Experience
● http://akamatsu.org/
赤松 正行
4. akaIAMAS
● Institute of Advanced Media and Sciences
● Graduate school for new media arts
20 students x 2 years = 40 students
19 professors
24 hours / 364 days facilities
Personal desks / Shared studios
● http://www.iamas.ac.jp/E/
12. akaMobile Information Environment
● Bodily Information Environment
● Sensory Information Environment
● Universal Information Environment
● World-wide Information Environment
20. ● Using App Store (on iOS) or iTunes (on OS X)
● Search Keywords
“Masayuki Akamatsu” for my apps
“ARART” for classic paintings
“Bloom Card” for flowers
akaTry Apps
24. akaCreate a Music app with Xcode
● Xcode
● Objective-C
● Core Audio
● DSP algorithm
● Difficult!!
Okeanos by Masayuki Akamatsu
mini-composer by Karl Bartos and Masayuki Akamatsu
25. akaCreate a Music app with Pd
● MobMuPlat
Pd + Editor
No programming code
Easy to develop
Limited UI/Graphics
Limited OS Access
For Personal Use
● libpd / Pd for iOS
Pd + Xcode
Objective-C code
Hard to develop
Full UI/Graphics
Full OS Access
For App Store Distribution
29. akaMobMuPlat Workflow
1. Create an audio patch with Pd
2. Create a GUI with MobMuPlatEditor
3. Test them with PdWrapper.pd
4. Transfer them with iTunes
5. Play it with MobMuPlat (iOS)
Mac iPhone
30. akaPd tips for Max users
Run/Edit mode
Audio On/Off
Audio On/Off
option+click
Create an object
32. akaStep 1: Read an Audio File
● Open Pd (on Mac)
● Open a new patch
● Create and connect objects
● Save the patch as “Drums.pd”
into the same folder of the audio file
● Click the button
You’ll see the waveform
Object
Message
Button
Array
Object
Patch Cord
33. akaStep 2: Play the Audio Buffer
● Create and connect objects
● Start DSP
● Click the button
You’ll hear the sound
34. akaStep 3: Create a Communication
● Create and Connect Objects
● What’s “fromGUI” & “/claps”?
35. ● Open MobMuPlatEditor
You’ll see a new document
● Open “Doc” tab
● Choose Screen Size
● Choose your Pd file
● Save the document
as “Drums.mmp”
akaStep 4: Create a GUI document
1
2
2
36. akaStep 5: Create a Button
● Open “Add” tab
● Click “button”
● Adjust the position
Do not cover “i” button
2
3 Drag
1
37. akaStep 6: Set the Properties
● Open “Prop” tab
● Set the Address
as “/claps”
1
2
38. akaStep 7: Test the GUI
Pd
● Open “PdWrapper.pd”
MobMuPlatEditor
● Open “Lock” tab
● Click the button
You’ll hear the sound
You’ll see the messages
1
2
39. akaStep 8: Transfer Files
● Connect iPhone to Mac via USB cable
● Open iTunes
● Choose your iPhone, Apps tab and MobMuPlat
● Put files into MobMuPlat Documents
1
2
3
4
Drag&Drop
40. akaStep 9: Hit your Drum
● Open MobMuPlat (on iPhone)
● Click “i” button
● Choose “Drums.mmp”
● Play!
41. akaExercises: Build your own Drums
● Add more buttons
● Use your own audio files
● Use a image
Add a panel and choose a image file
Make a button transparent
● Control the volume
Play softly or loudly
42. ● Use “Tidy Up” in Edit menu in Pd
● .mmp & .pd are text files you can edit
akaPd Editing Tips
44. akaApp 2 - Theremin
Léon Theremin and his invention “Theremin”
45. ● Receive a system message
“fromSystem” and “/tilts”
● Convert values to pitch and volume
Tilt X “-1.0~1.0” -> MIDI Note Number -> Frequency
Tilt Y “-1.0~1.0” -> Volume
● Smoothing
line
● Generate a sine waveform
osc~
*~
dac~
akaTheremin Patch
48. akaTutorial & Reference
● Programming Electronic Music in Pd
http://www.pd-tutorial.com/english/index.html
● Pure Data Reference Card
http://puredata.info/docs/manuals/pdrefcards
49. akaApp 3 - Delay
Echoplex, a tape delay machine by Mike Battle
61. akaNetwork(s)
● Natural Network
Through the Air
Physical Phenomenon
● Human Network
Play Session
Feelings / Rules
● Electronic Network
LAN / The Internet
Protocols
62. akaLimitations of MobMuPlat
● Pd-vanilla (not Pd-extended)
● Poor Audio functions
● Poor GUI elements
● Poor visual expressions
● Poor iOS accessibilities
● Can’t create a TRUE app
● But Fun and Easy to use!
SpaceLab by Iglesia Intermedia
80. akaGenerated Codes
#import <UIKit/UIKit.h>
@interface TestViewController : UIViewController
- (IBAction)changeFreq:(UISlider *)sender;
@property (retain, nonatomic) IBOutlet UILabel *freqLabel;
@end
#import "TestViewController.h"
@interface TestViewController ()
@end
@implementation TestViewController
- (void)viewDidLoad
{
[super viewDidLoad];
! // Do any additional setup after loading the view,
typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)changeFreq:(UISlider *)sender {
}
- (void)dealloc {
[_freqLabel release];
[super dealloc];
}
@end
TestViewController.h TestViewController.m
81. akaAdd Code and Run
#import "TestViewController.h"
@interface TestViewController ()
@end
@implementation TestViewController
- (void)viewDidLoad
{
[super viewDidLoad];
! // Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)changeFreq:(UISlider *)sender {
! self.freqLabel.text = [NSString stringWithFormat:@"%f", sender.value];
}
- (void)dealloc {
[_freqLabel release];
[super dealloc];
}
@end
TestViewController.m
92. akalibpd Project Summary
● Add libpd.xcodeproj
● Add Target Dependencies
libpd-ios
● Add Libraries/Frameworks
libpd-ios.a, AudioToolbox.framework, AVFoundation.framework
● Add Header Search Paths
libpd/objc, libpd/pure-data/src
● Add Pd Patch
● Add Codes
Create PdAudioController, Set it up and Make it active
Open Pd patch
Set PdBase delegate and Subscribe Pd messages
Send messages to Pd patch and Receive messages from Pd patch
93. akaFurther References
● Pd for iOS wiki
https://github.com/libpd/pd-for-ios/wiki/ios
● libpd Objective-C API
https://github.com/libpd/libpd/wiki/objc
● iOSの教科書
http://iosbook.net/
95. ● Solo or Group
● 3 minutes
● Theme/Motif/Feeling
● Audio Processing
● User Interface
● Composition
● Performance
akaCreate your own music
Kraftwerk / Pocket Calculator
96. akaWhy? (again)
● Many excellent music apps
● Create your own music
with your own idea
with your own app
Animoog by Moog Music Inc.
97. akaMake a Documentation
● Format
PDF
Single Page
Landscape
● Contents
Title
Name
Description
Images (Screen, Photo, etc.)
Title: China My Love
Name: Masayuki Akamatsu
Description: “China My Love” is a simple app that transmits MIDI note
messages by hitting keys on a keyboard. Playing an input phrase as a
sequence is also possible. The tempo and the loop can be set. You can
use either the on-screen software keyboard or a Bluetooth/Dock-connected
hardware keyboard for iOS.