!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !! Protein[DS] v090122 by Gorgull !! !! # # # # ## # # ## ## ## ## !! # # # # # # ### # # # # # # # # !! ## ## # # # ## # ### # # # # # !! # # # # # # # # # # # # # # # !! # # # # # ## # # # ## ## ## ## !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Protein[DS] is an audio manipulation software running on Nintendo DS, which ables you to manipulate audio, anywhere you go - it is in some ways similar to ElectroPlankton concept. Using Protein[DS], you can play with up to four performance-modules at the same time to create a live music set and control external applications, using the touchscreen, audio in/out levels, midi-out, and even motion-control. Protein[DS] supports both wav samples and live-recorded audio playback. Protein[DS] is the first part of Protein project which goal's is to get a set of creative audio/visual toys you can play and experiment with, in an alternative way. ////////////////////////////////////////////////////////////////////////////////////////////// // INSTALLATION: ////////////////////////////////////////////////////////////////////////////////////////////// Process: 1. unzip the downloaded archive 2. enter the "ProteinDS/" directory 3. (if your cartridge doesn't have DLDI autopatch) DLDI patch "ProteinDS.nds" file with your linker's DLDI device patch (more info about DLDI on http://chishm.drunkencoders.com/DLDI/index.html) --> 4. copy "ProteinDS/" directory at the root of your cartridge's filesystem <-- 5. place your own samples in "/ProteinDS/Samples/" cartridge directory (optional) 6. on your DS, enter the "/ProteinDS/" directory, then launch "ProteinDS.nds" ////////////////////////////////////////////////////////////////////////////////////////////// // GETTIN'STARTED: ////////////////////////////////////////////////////////////////////////////////////////////// Protein[DS] allows you to play with up to 4 "modules" at the same time. Once started, you come on the title screen. From this title screen, you can access to the main options by pressing Start, or you can choose a module by holding Select then choose one of the four modules using Up/Down/Left/Right keys. You can go back to title screen from any module by holding Start then press L or R. Focused module receives keypad and touchscreen inputs events - all modules receive NDSMotion and audio levels. When MIDI-out is enabled, microphone and audio-out levels, as well as module manipulations will be translated into MIDI Notes/CC and send to your computer using Wifi connection (for more details, check http://dsmidiwifi.tobw.net). Here are the different bricks composing Protein[DS]: [Title] screen: The is the screen which appears at startup. By pressing Start, you make the main menu appear: State Save and Main Config. [DScratch] module: This module is kind of a turntable, it lets you play with wav or recorded samples, or even live audio from microphone: you can scratch, pitch, apply effects, cut volume etc. This is the only really advanced module for now. [DSamples] module: For the moment, this module only lets you play a wav sample by hitting a key. Anyway, it's the next module I'll be working fully on, to create an advanced sampler. [DSControl] module: This is a basic implementation of a MIDI controller using both the touchscreen for MIDI cc, and keypad for MIDI notes. [Sample-Recorder] tool: This tool records samples from the DS built-in microphone. The total recording time is set to 20 seconds. Recorded samples can be recorded to disk (cf Configuration/Setup Save) . [Sample-Browser] tool: This tool ables you to browse through your samples-directory (cf Tips), preview a sample, and finally load one within the caller module. ////////////////////////////////////////////////////////////////////////////////////////////// // CONFIGURATION: ////////////////////////////////////////////////////////////////////////////////////////////// # Main Config: You can tweak ProteinDS config by choosing "Main Config" in Title screen's menu. Current Protein[DS] configuration is stored in xml based file /ProteinDS/ProteinDS.cfg. This file is written each time you go out from Main Config. # Modules Config: For the moment, only [DScratch] is configurable using the embedded "Config." menu entry. # Setup Save: Modules setup as well as each Module's config are saved in .sav files. Default setup is stored in Default.sav. Once you choose to save your Setup, it will be stored in Slot1.sav and we will be loaded automatically every time you start Protein[DS] (I'll add a proper saves manager in the future, so there will be more than a single slot). If you setup contains live recorded samples, those will be saved in the samples folder: "Record/RECORD1.WAV", "Record/RECORD2.WAV", etc. As a consequence, next time your setup will be loaded, recorded samples will be loaded like any other wav samples, letting the recorder free for new recordings. (cf Tips for some more advanced config) ////////////////////////////////////////////////////////////////////////////////////////////// // COMMANDS: ////////////////////////////////////////////////////////////////////////////////////////////// Common: # "click" means press then release # Choose module: hold SELECT then LEFT/RIGHT/UP/DOWN # Go back to title-screen: hold SELECT then press L or R [Title] Screen: # Use main Protein[DS] menu: hold START then LEFT/RIGHT/UP/DOWN # Restart audio engine (if locked): X # View free memory: hold A [DScratch] module: # Use menu: hold START then LEFT/RIGHT/UP/DOWN sample manipulation only: # Scratch: use touchscreen from left to right # Play/Pause: click RIGHT # Control Pitch: hold L then hold RIGHT and control using touchscreen # Rewind: press A common manipulation: # Trigger Cross Fader: push LEFT - click R to lock # Control Volume: hold L then hold LEFT to control using the touchscreen # Trigger Retrig FX: hold UP - click R to lock/unlock - hold L to control using touchscreen # Control Retrig FX: hold L then hold UP and control using the touchscreen # Trigger BitCrusher FX: hold DOWN - click R to lock/unlock - hold L to control using touchscreen # Control BitCrusher FX: hold L then hold UP to control using touchscreen # change touchscreen control mode: # Pitch: hold R then press RIGHT # Volume: hold R then press LEFT # Retrif FX: hold R then press UP # BitCrusher FX: hold R then press DOWN # Scratch(default) : hold R then press A # change accelerometer control mode: # Pitch Tremolo: hold L+R then press RIGHT # Volume: hold L+R then press LEFT # BitCrusher FX: hold L+R then press DOWN [DSamples] module: (really basic for the moment) # Use menu: hold START then LEFT/RIGHT/UP/DOWN # Play sample once: A/B/X/Y/LEFT/RIGHT/UP/DOWN # Stop sample: press L or R [DSControl] module: (really basic for the moment) # Send MIDI notes: LEFT/RIGHT/UP/DOWN # Send MIDI controllers: use touchscreen [Sample-browser] tool: # Step 1 up/down: press UP/DOWN # Step 5 up/down: hold L or R then press UP/DOWN # Select file: press A # Browse parent directory: press B # Preview sample: press X # Cancel: press START or SELECT [Sample-Recorder] tool: # Start recording: press any key or touch screen # Stop recording: press any key or touch screen # Cancel: press START or SELECT Midi: # press L or R while starting up the program to enable midi-out # when enabled, audio in and out level are sent as Midi controls (cf TIPS) # when enabled, some modules send Midi notes/controls (cf TIPS) Notes: # MotionPak cardridge is supported. ////////////////////////////////////////////////////////////////////////////////////////////// // TIPS: ////////////////////////////////////////////////////////////////////////////////////////////// # Default Modules-setup: + 2 [DScratch] modules + 1 [DSamples] module + 1 [DSControl] module For the moment, the only way to change default modules-setup is to directly edit "/ProteinDS/Slot1.sav" xml based file. # Compatible Samples: Use Audacity (http://audacity.sourceforge.net/) to export compatible .wav files (I've recently discovered it's possible to play edited sample in loop by holding SHIFT key before Play) # Samples root directory: By default, samples root directory is "/ProteinDS/Samples/", but you can change it by editing "SamplesRootDir" parameter in "/ProteinDS/ProteinDS.cfg" # Default Setup: If you want to go back to default modules setup, just remove "/ProteinDS/Slot1.sav" . # Audio glitches? You can tweak audio engine playback offset if you experience audio-output glitches by directly editing "Audio Offset" parameter in main config file "/ProteinDS/ProteinDS.cfg". The offset value is between 1 and 4 - default is 2. # Midi out settings: Module's MIDI-out Notes/CCs can be changed by editing MIDI parameters in "/ProteinDS/Slot1.sav". Audio-levels MIDI-out CCs can be changed by editing MIDI parameters "AudioOutMidiCtrl" and "AudioInMidiCtrl" in "/ProteinDS/ProteinDS.cfg" ////////////////////////////////////////////////////////////////////////////////////////////// // KNOWN ISSUES: ////////////////////////////////////////////////////////////////////////////////////////////// # waiting for a new implementation, using DualScreen mode only allows 30fps, plus the two screens may flicker - deactivating DualScreen gives you 60fps, which is a lot better for scratching! # DScratch may not be able to play big files backward: crossing the end/beginning sample's edge backward way lock the audio engine due to a too long file access. It seems like NDS filesystem is too slow when seeking point is too far. # midi may fail to init when using DSMidiWifi on some computers (only tested on Mac for the moment, other os reports are welcome) # audio engine may lock at some point while using MIDI # some failed assertions may appear, without locking the program - please report! # maybe some cracklings in live mic streaming on some linkers (let me know) ////////////////////////////////////////////////////////////////////////////////////////////// // CREDITS: ////////////////////////////////////////////////////////////////////////////////////////////// Conception/Realisation: # Gorgull - Gorgull [AT] x-foot [DOT] net Sound samples: # Daniel Reetz, The Fakeproject Corporation of America. - http://www.fakeproject.com # http://www.sound-material.com/ # http://www.junglebreaks.co.uk/ Protein[DS] uses other different projects (thank you guys): # devkitPro by Dovoto, Joat and Wintermute - http://www.devkitpro.org # NDSMotion by KeithE (thx for the MotionPak) - http://www.ndsmotion.com # DSMidiWifi by _0xtob - http://dsmidiwifi.tobw.net # µLibrary by Brunni - http://brunni.dev-fr.org/index.php?page=ndssoft_ulib # libFat and DLDI tools by Chism - http://chishm.drunkencoders.com/ # TinyXML by Lee Thomason - http://www.sourceforge.net/projects/tinyxml Special thanks: # M-.-n, author of LGPT, for his advices especially in digital audio programming - http://www.10pm.org/nostromo/lgpt/ # bigups to makunouchi bento & [XC3N] for their testing on stage! ////////////////////////////////////////////////////////////////////////////////////////////// // LICENSE: ////////////////////////////////////////////////////////////////////////////////////////////// Protein[DS] is available under "by-nc-nd" Creative Commons license. please visit http://creativecommons.org/licenses/by-nc-nd/2.0/be/ for more details. ////////////////////////////////////////////////////////////////////////////////////////////// // CONTACT: ////////////////////////////////////////////////////////////////////////////////////////////// # gorgull [AT] x-foot [DOT] net Send me a mail to be added to the mailing-list. ////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////