release_notes.txt 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. DJ Turntable v1.3.0
  2. ===================
  3. DJ Turntable demonstrates integrating a Qt Quick application to the Qt audio
  4. interface. The application is compatible with Symbian^3 devices with Qt 4.7.3
  5. or higher, Maemo devices with Qt 4.7.0, Meego 1.2 Harmattan, and Windows
  6. desktop computers (the Qt libraries are provided with the executable).
  7. FILES
  8. -------------------------------------------------------------------------------
  9. src/main.cpp
  10. - Creates all the required Qt objects and initialises the Declarative runtime.
  11. The integration of the QML and Qt code is done here.
  12. src/TurnTable.h
  13. src/TurnTable.cpp
  14. - Represents the logic of the turntable section of the UI. The Turntable
  15. object contains the main audio mixer to which the drum beats and the disc
  16. sample are mixed.
  17. src/DrumMachine.h
  18. src/DrumMachine.cpp
  19. - Represents the logic of the drum machine section of the UI. Signals of the
  20. drum machine QML are mapped directly to this object's slots. The storing and
  21. loading of the drum sequences is done here.
  22. src/accelerometerfilter.h
  23. - Handles the accelerometer information from the device's sensor. The signals
  24. about changes in accelerometer data are mapped directly to the QML slots to
  25. rotate the reflection on the record on the turntable.
  26. src/sounds/*
  27. - Contains the audio samples used by DJ Turntable.
  28. src/qml/DrumMachine/*
  29. - QML files containing the UI controls of the drum machine.
  30. src/qml/InfoScreen/*
  31. - QML files containing the UI controls of the info screen.
  32. src/qml/SampleSelector/*
  33. - QML files containing the UI controls of the sample selector screen.
  34. src/qml/TurnTable.qml
  35. - The main QML file that represents the whole UI of the application.
  36. All other QML files and elements are children of this file.
  37. install/
  38. - The compiled binaries.
  39. CLASSES AND ELEMENTS USED
  40. -------------------------------------------------------------------------------
  41. The most important Qt classes and QML elements used in the application are
  42. listed here.
  43. Qt / C++ classes
  44. ~~~~~~~~~~~~~~~~
  45. QDeclarativeView - used to interpret QML files
  46. QGLWidget - used to draw QDeclarativeView with Qt OpenGL
  47. QPointer - relaxes the use of pointers
  48. QSettings - used to store and retrieve user defined beats to / from
  49. permanent storage
  50. QMessageBox - used to report serious errors
  51. QVariant - used as parameters in Qt Signals and Slots between Qt and
  52. QML
  53. QVector - used to store beat sequences in memory
  54. std::vector - used to convert predefined beats stored as byte arrays to
  55. QVectors
  56. Qt Mobility classes
  57. ~~~~~~~~~~~~~~~~~~~
  58. QAccelerometer - gets the inclination of the mobile device
  59. QAccelerometerFilter - used to filter values of QAccelerometer to save CPU
  60. cycles
  61. QSystemDeviceInfo - used to detect the profile of the device, for
  62. instance, when the mobile is on silent the volume is
  63. set to 0
  64. QAudioOutput - used to access audio device (part of QtMultimediaKit
  65. in Symbian target)
  66. Qt classes used in GE audio engine
  67. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  68. QAudioOutput - used to access audio device (part of Qt multimedia module in
  69. desktop and Maemo targets)
  70. QThread - used to implement audio functionality in worker thread
  71. QIODevice - used to handle audio buffers
  72. QMutex - used to synchronise critical sections between worker thread
  73. and GUI thread
  74. QFile - used to read WAV files
  75. Symbian specific classes
  76. ~~~~~~~~~~~~~~~~~~~~~~~~
  77. MRemConCoreApiTargetObserver,
  78. CRemConInterfaceSelector,
  79. CRemConCoreApiTarget - used to handle volume up/down HW keys on
  80. Symbian devices
  81. CMMFDevSound - used to set the master volume in Symbian
  82. devies, involves a nasty hack
  83. QML elements
  84. ~~~~~~~~~~~~
  85. Flickable - used to implement view change between the info screen,
  86. the turntable, and the drum machine, also used to switch
  87. between 1-16 and 17-32 ticks in drum machine
  88. Repeater - used to create 32 x 6 drum buttons in drum machine
  89. Rotation - used to rotate the 'arm' on top of the record
  90. KNOWN ISSUES
  91. -------------------------------------------------------------------------------
  92. - There is currently some latency when playing audio in Symbian.
  93. - External WAV files can not be opened on Harmattan due to the permissions
  94. problem.
  95. INSTALLATION INSTRUCTIONS
  96. -------------------------------------------------------------------------------
  97. Mobile device (Symbian^3)
  98. ~~~~~~~~~~~~~~~~~~~~~~~~~
  99. There are two ways to install the application on the device.
  100. 0. The Qt libraries (4.7.3 or higher) must be installed. See the section
  101. COMPATIBILITY for more information about the installation.
  102. 1. Drag the turntable_1_3_s^3.sis file to the Nokia Ovi Suite while the device
  103. is connected with the USB cable.
  104. 2. After the installation is complete, return to the application menu and
  105. select the Applications folder.
  106. 3. Locate the DJ Turntable icon and select it to launch the application.
  107. Mobile device (Maemo)
  108. ~~~~~~~~~~~~~~~~~~~~~
  109. 0. The Qt libraries (4.7.0 or higher) must be installed. See the section
  110. COMPATIBILITY for more information about the installation.
  111. 1. Copy the turntable_1_3_fremantle.deb file into a specific folder on the
  112. device (for example, 'MyDocs').
  113. 2. Start Maemo Filemanager from the application menu.
  114. 3. Browse to MyDocs and click turntable_1_3_fremantle.deb. App manager
  115. will be opened and installation will start.
  116. 4. Launch the Applications menu.
  117. 5. Locate the DJ Turntable icon and select it to launch the application.
  118. Mobile device (MeeGo 1.2 Harmattan)
  119. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  120. 1. Copy the turntable_1_3_harmattan.deb file into a specific folder on the
  121. device.
  122. 2. Start Terminal. Type 'ssh root@localhost' to get root access. The password
  123. is 'rootme'.
  124. 3. 'cd' to the directory to which you copied the package.
  125. 4. As root, install the package:
  126. dpkg -i turntable_v1_3_harmattan.deb
  127. 5. Locate the DJ Turntable icon from the applications menu and tap it to launch
  128. the application.
  129. Windows desktop
  130. ~~~~~~~~~~~~~~~
  131. 1. Extract turntable.zip to the folder of your choosing.
  132. 2. Launch the application from turntable.exe.
  133. RUNNING THE APPLICATION
  134. -------------------------------------------------------------------------------
  135. DJ Turntable is a Forum Nokia example that demonstrates integrating a Qt Quick
  136. application to the Qt audio interface.
  137. Turntable
  138. Play the looping sample with a realistic turntable. The sample can be
  139. scratched with a finger, played faster, slower, and backwards. The speed of
  140. the record can be adjusted with the speed slider, the default 1x speed can be
  141. obtained by double-clicking the speed slider knob. DJ Turntable includes
  142. Cutoff and Resonance control knobs to alter the sample in real time. The knobs
  143. are rotated by moving a finger up and down on top of them.
  144. Sample selector
  145. Use the sample selector to change the sample that the turntable is playing by
  146. selecting the desired sample from the directory view. The following
  147. uncompressed WAV formats are supported:
  148. 8-bit unsigned
  149. 16-bit unsigned
  150. 32-bit float
  151. The application will open the last selected sample on startup. Use the default
  152. sample button on the right under the back button to reset back to the default
  153. sample.
  154. Drum machine
  155. Play and edit the drum beats. There are three predefined beats which can be
  156. played and edited but the edits are not stored. For the user there are three
  157. beats that are saved in the device memory whenever they are edited. Use the
  158. beat selector buttons at the bottom of the view to switch between the beats.
  159. All the beats are 32 ticks long and they contain 6 different drum samples:
  160. hi-hat, hi-hat open, bass drum, snare, cymbal, and cow bell.
  161. The drum machine will play all drum beats at 150 bpm. Changing the speed of
  162. the turntable will affect the playing speed of the drum machine accordingly.
  163. Keyboard shortcuts
  164. The following keyboard shortcuts exist:
  165. Camera zoom up = Volume up
  166. Camera zoom down = Volume down
  167. Space = Start / stop the turntable
  168. Return = Start / stop the drum machine
  169. Key up = Go to the turntable view
  170. Key down = Go to the drum machine view
  171. Key left = View the 1st tick group in the drum machine
  172. Key right = View the 2nd tick group in the drum machine
  173. Key i = Go to the info view
  174. Key s = Go to the sample selector view
  175. Backspace = Return from the info or sample selector view to the previous view
  176. Samples
  177. The turntable melody sample ivory.wav was created by nick Flick3r and it was
  178. downloaded from http://www.freesound.org. The sample follows the
  179. http://creativecommons.org/licenses/sampling+/1.0/ license.
  180. COMPATIBILITY
  181. -------------------------------------------------------------------------------
  182. - Symbian^3 with Qt version 4.7.3 or higher
  183. 1. Download Qt for Symbian (4.7.3 or higher) from qt.nokia.com.
  184. 2. Drag qt_installer.sis on top of the device in Nokia Ovi Suite while the
  185. device is connected. The SIS package is found in the installation folder
  186. of Qt for Symbian (4.7.3 or higher).
  187. - Maemo with PR1.3 which includes Qt 4.7.0
  188. 1. Use Nokia Ovi Suite to update the device's firmware to PR1.3.
  189. - Meego 1.2 Harmattan
  190. - Windows desktop, the required Qt libraries are provided with the
  191. turntable binary
  192. Tested on:
  193. - Nokia N8-00
  194. - Nokia E7-00
  195. - Nokia C6-01
  196. - Nokia N900
  197. - Nokia N950
  198. - Windows 7
  199. Developed with:
  200. - Qt SDK 1.1
  201. VERSION HISTORY
  202. -------------------------------------------------------------------------------
  203. v1.3 Added support for MeeGo 1.2 Harmattan.
  204. v1.2.2 Compatibility with Qt 4.7.2.
  205. v1.2.1 Added error handling to opening of external WAV files.
  206. v1.2 Added possibility to play external WAV files.
  207. v1.1 Updated version for Forum Nokia.
  208. v1.0 Initial version published in Forum Nokia Projects only.