JSUG - The Sound of Shopping by Christoph Pickl

833 views

Published on

visit www.jsug.at for more stuff

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
833
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

JSUG - The Sound of Shopping by Christoph Pickl

  1. 1. Sound of Shopping Christoph Pickl
  2. 2. Roadmap 1 Idea 2 Architecture 3 JFugue
  3. 3. Idea
  4. 4. Team Idea Sound Design Composition Implementation
  5. 5. Idea • Read in barcodes of bought products • Generate individual song • Customer downloads ringtone via website • Music can be transformed back to data
  6. 6. Architecture
  7. 7. Basics • Barcode to K-code transformation • Use proper ruleset/instrumentset • Save MIDI and record sampler output
  8. 8. SoS Net • 2nd version using webinterface Remote server application ✦ ✦ Database for communication • Usersniffing instead barcodes • Reused same core logic
  9. 9. Sound Samples
  10. 10. JFugue
  11. 11. Features • No complex objects, just (Music-)Strings • Specify notes, chords, instruments & tracks • Play at runtime, save to MIDI file • Music can be sent to/received from devices
  12. 12. Example #1 import org.jfugue.Player; public class Jsug { public static void main(String[] args) { Player player = new Player(); String musicString = quot;C D E F G A Bquot;; player.play(musicString); } }
  13. 13. Example #2 // quot;Frere Jacquesquot; Pattern pattern1 = new Pattern(quot;C5q D5q E5q C5qquot;); // quot;Dormez-vous?quot; Pattern pattern2 = new Pattern(quot;E5q F5q G5hquot;); // quot;Sonnez les matinesquot; Pattern pattern3 = new Pattern(quot;G5i A5i G5i F5i E5q C5qquot;); // quot;Ding ding dongquot; Pattern pattern4 = new Pattern(quot;C5q G4q C5hquot;); Pattern song = new Pattern(); song.add(pattern1, 2); // Adds 'pattern1' to 'song' twice song.add(pattern2, 2); // Adds 'pattern2' to 'song' twice song.add(pattern3, 2); // Adds 'pattern3' to 'song' twice song.add(pattern4, 2); // Adds 'pattern4' to 'song' twice new Player().saveMidi(song, new File(quot;Frere Jacques.midquot;));
  14. 14. Sample Output T91 V9 // percussion Rs_[35]sa20+Rs_[38]sa40+Ri+Ri Rs_[35]sa40+Rs_[38]sa60+[43]ia60+[46]ia40 ... Rs_[35]sa60+Rs_[38]sa20+[43]ia20+[46]ia60 V2 // harmonics [61]s+[65]s+[66]s+[70]s Rs [61]i+[65]i+[66]i+[70]i ... [61]s+[65]s+[66]s+[70]s Rs V1 I[ACOUSTIC_BASS] // bass Rs [39]s Rs [39]s Rs [39]s Rs [39]s ... Rs [45]s Rs [45]s Rs [45]s Rs [45]s V4 I[CLARINET] // melody Ri [78]i [80]q [85]q [89]i Ri Ri [80]i [82]q [89]i Ri [98]i Ri [86]q [98]i Ri [86]i
  15. 15. SoS Net Demo
  16. 16. • http://soundofshopping.com • http://jfugue.org • http://tv.rebell.tv//p2628.html • http://tv.rebell.tv/p2629.html • http://www.sil.at/aktuelles/magazin/magazin-nr-14/seite-13/

×