Higher education professionals computer levels



Download 1.68 Mb.
View original pdf
Date28.04.2022
Size1.68 Mb.
#58702
Lenarčič M-1
file1, main


Mobile management application metronome
University of Ljubljana
Faculty of Computer and Information
Science
ÿ
Ljubljana 2013
Mentor: doc. dr. Rok Rupnik
Matej Lenarÿciÿc
STUDY PROGRAM FIRST
ÿ
ÿ
ÿ
ÿ
THESIS
INFORMATICS
HIGHER EDUCATION PROFESSIONALS
COMPUTER LEVELS
Machine Translated by Google


The text is formatted with the LATEX text editor .
The results of the diploma work require the written consent of the author, the Faculty of
Computer Science and Informatics and the mentor.
The results of the diploma work are the intellectual property of the author and the Faculty of Ra
Computer Science and Informatics, University of Ljubljana. To publish or exploit
Machine Translated by Google


Machine Translated by Google


Rupnika,
I, the undersigned Matej Lenarÿciÿc, with registration number 63060151, am the author of the diploma thesis entitled:
Author's signature:
• the electronic form of the diploma thesis, the title (Slovenian, English), the abstract (Slovenian,
English) and the key words (Slovenian, English) are identical to the printed form of the diploma thesis
• I made my diploma work independently under the mentorship of doc. dr. Roka
Done at Ljubljana, 15 March 2013
By signing, I guarantee that:
"Share FREE".
• I agree with the public publication of the electronic form of the diploma thesis in the collection
Mobile application for metronome management
Statement on the authorship of the diploma thesis
Machine Translated by Google


. . 23
. . 11 4.2 Planning. . .
2.1 Android and IntelliJ IDEA development environment.
2.2 Audacity .
. . 26 4.1 Analysis.
5.2 Outdoor unit. .
1 3.3 Communication. .
6 23 4 Application
2 Methods and tools used
11
. 7 3.2 Connection diagram.
3 5 Application example
. . 18
Abstract
5.1 User interface.
1 Introduction
3 Outdoor unit
Summary
2.3 IOIO s protokoloma ADB ter OpenAccessory . .
17
. . 12 3
. . 12 3.1 Components. . .
. . 17
Index
Machine Translated by Google


6 Opportunities for improvement and expansion
31 6.1 UI improvements.
6.3 Synchronization. . .
27
TABLE OF CONTENTS
. 28
. 29 7 Conclusions
6.2 Outdoor unit via Bluetooth. .
. 27
Machine Translated by Google


Key words:
metronome based on the cyclic playback of an audio recording in the format depending on the support of the Android device itself. The following is a description of providing accurate
Music, metronome, USB, IOIO, ADB, OpenAccessory, AudioTrack
When playing a musical instrument, especially drums, it is very important to have a subtle tempo of performance. To do this, musicians use a device called beats per minute and play it in an endless loop. Graduation product
PCM (Pulse Code Modulation). Using the already built-in AudioTrack class methods, a pre-recorded click can be shortened according to the number of a button and so we find out how many beats per minute we need. Towards the end, the practical application of the product is described with a description of the key ones minute. In the diploma thesis, a metronome was developed on the Android platform with a unit connected to a mobile device via a USB interface and us it also has the ability to set the tempo based on successive pressures a metronome that gives a constant tempo according to the "desired" number of strokes per as if using Bluetooth wireless technology.
and scheme. Communication between Android and external is also described here unit via the IOIO interface. ADB (Android Debug Bridge) or OpenAccessory protocols are used to transfer data between devices.
user interface widgets, and as a final chapter, possible improvements allows external control of the mobile device. The methods and tools used are described first. Then the outdoor unit, its components are described
Summary
Machine Translated by Google


Keywords:
Music, metronome, USB, IOIO, ADB, OpenAccessory, AudioTrack also described here. To transfer data between devices, ADB (Android Debug including using Bluetooth wireless technology.
Communication between Android and external unit via IOIO protocol is
When playing musical instrument, especially drumkit, it is very important support. Then we describe how to provide very accurate metronome based
Bridge) and OpenAccessory protocols are used, depending on Android device click according to specified beats per minute and play it in an infinite loop. device called metronome, which provides constant time, depending on de sired beats per minute (BPM). In this thesis, we developed metronome on on cyclical playing of a sound clip in PCM (Pulse Code Modulation) for mat.
Using builtin AudioTrack methods, we can cut the previously recorded that tempo is accurate. In order to improve playing accuracy, musicians use
In the beginning, methods and tools used in this thesis are described, fol lowing by description of external unit, its components and circuit diagram. using USB interface and enables us to control Android device externally. describe practical use of this product and also some key user interface compo nents are described. Finally there is a description of possible improvements
Application, developed in this thesis, also enables us to tap tempo to eas ily determine how many beats per minute we actually need. In the end, we
Android platform and external unit, which is connected with mobile device
Abstract
Machine Translated by Google


Tempo indicates the speed of performing musical works and refers to the duration of the basic rhythmic unit in time. (For example, at 3/2 or three-half time, the basic rhythmic unit is half, at 4/4 or four-quarter time it is ÿ quarter). [1] The uniform speed of execution can be determined with descriptive marks (andante, allegro ...), or precisely, with a metronomic mark, which defines how many given rhythmic units we have to play in one minute - beats per minute - BPM).
However, there is no shortage of Android apps that have metronome functionality.
In addition to the basic one, the application developed in the diploma thesis has additional functionality - connecting an external module and controlling the mobile application from the outside. This is most important when playing live on stage.
Namely, there is often no time and no concentration to change the number of beats per minute from song to song via the interface. In the diploma thesis we solve the problem
In music, the most important thing is a constant and steady tempo of performance.
To do this, musicians often use a device that gives them a steady pulse - a metronome. It gives us the duration of the basic period or pace.
To accurately measure tempos, we know several types of metro in the physical world, digital and analog, both cheaper and more expensive. In our diploma thesis we try to make such a metronome for the Android mobile phone that it is the most convenient and we always have it with us.
1
Introduction
Chapter 1
Machine Translated by Google

switching between songs using the external module connected to
USB interface of the phone.
2
CHAPTER 1. INTRODUCTION
Machine Translated by Google


2.1 Android and IntelliJ IDEA development environment
Chapter 2
Methods and tools used
• Cheaper and easier application development, as Android is an open source system
It is an open source programming language and operating system, it works on various smaller devices, and is currently the most used on mobile phones. The kernel is based on the Linux kernel, with enhancements and optimizations for use on smaller mobile devices.
Advantages of the Android operating system:
The development tools used also do not depend on the operating system, so we used the
Ubuntu operating system, version 12.04.
Google later realized great potential, so it took the company under its wing and formed an open association of mobile devices called the Open Handset Alliance. Here, companies are working to develop standards for mobile devices and greater innovation.
3
It was initially developed by Android Inc. [2] In the operating system
For the development of the diploma thesis, we used only open source solutions.
tem. As a result, most of the applications written for it are free,
2.1.1 Google's Android operating system
Machine Translated by Google


2.1.2 IntelliJ IDEA
the codes are the same for both; the only difference is in the frameworks under the pirate. The Ultimate version is more for business use and development on Java EE (for the jal usually does not need to engage in background activities. All key so it is good to know the basic operation of the protocols that take care of the connection
The vast majority of application development takes place in the Java programming language mobile devices with external devices (ADB, OpenAccessory).
4 documentation and backlog support can also be found elsewhere on the inter
CHAPTER 2. METHODS AND TOOLS USED
Environment). The IDE is an application development environment that enables software the functionalities of the device are accessible via Android APIs (Application
Programming Interface). The documentation is quite exhaustive, it contains many real cases [3], many additional ones
In the diploma thesis itself, it is necessary to know some special features,
IntelliJ IDEA is an integrated development environment more operating systems need to be developed, but only individual ones codes and not so much to visual ÿwizards who do a lot of work themselves with just a few clicks. There are two versions of the environment: IntelliJ IDEA Ultimate - paid and netu.
• Cheaper, faster and easier development of mobile phones because there are no manufacturers easier for developers. It is entirely developed in the Java programming language. The peculiarity of the environment is that it is specifically focused on writing and structuring
• Automatically synchronized with Google services.
• simple, responsive, enables multi-correctness and it occurs when working with threads that the Android operating system can offer too few processor cycles - resulting in an unstable metronome. Right
IntelliJ IDEA Community Edition - free. Analysis and optimization which is not found in classic types of mobile applications. It can be a special problem system component,
Machine Translated by Google

business use, engl. enterprise edition) servers, while the Community Edition version has more reduced support for the web, but fortunately it has full support for Android application development, which helps us a lot. So we used the Community Edition. Some of its most important functions [4]:
• support for Groovy programming language (additionally Scala and Clojure),
• support for packing project files with Maven, Gradle and Ant,
Figure 2.1: IntelliJ IDEA development environment screen.
• integration of JUnit and TestNG test environments,
5
support for Subversion, Git / GitHub, Mercurial and CVS,
• support for Java 7,
• intelligent code editor
• Google Android support
2.1. ANDROID AND THE DEVELOPMENT ENVIRONMENT OF INTELLIJ IDEA
Machine Translated by Google


2.2 Audacity
• Excellent knowledge of XML structure, including real-time learning through the named pro
To play a click, it must also be created by computer. I created it in the open source program Audacity, which has the aforementioned metronome creation feature already enabled by default. You can edit sound clips in
Figure 2.2: Audacity audio editor screen.
• Visual Swing User Interface Editor.
6
The development environment is especially powerful in code optimization, logical and structural analysis, and effective and unobtrusive coding aids. The developer may also like the accessibility of the keyboard and keyboard shortcuts, which means that we can actually encrypt completely with just the keyboard.
stora (angl. namespace),
CHAPTER 2. METHODS AND TOOLS USED
Machine Translated by Google


2.3.1 IOIO interface
2.3 IOIO s protokoloma ADB ter OpenAccessory
In the past, Android mobile phones could only be accessed remotely via the ADB (Android
Debug Bridge) protocol. It is primarily intended for the development of applications from a computer and the control of operation with a computer. So Ytai got the idea: why shouldn't there be a device that introduces itself as a computer or. host, establishes a connection, and sends and receives data from the Android device. In this way, it can communicate with virtually any Android mobile phone with an operating system
Following the ADB protocol, in 2011, Google developed a special protocol for communicating with external devices. It's called OpenAccessory. It has quite a few advantages:
The user experience works on a similar principle as editing a text file (knows all the key options - editing, copying, pasting).
Protokol ADB
Protokol OpenAccessory
It is manufactured and sold in the United States by Spark Fun. The IOIO interface is especially great because it adapts to the host device, depending on the support it offers for external devices.
multiple channels simultaneously or separately, and working with sound recordings is easy.
It was developed by Ytai Ben-Tsvi, an Israeli engineer now employed by Google.
7 2.3. IOIO S PROTOKOLOMA ADB TER OPENACCESSORY system version 1.6 or higher.
• An Android mobile device is able to recognize the host device itself via the USB interface and optionally also launch the desired application, depending on the connected device.
Machine Translated by Google


Samsung Galaxy S3) also supports simultaneous HDMI output and USB host mode via the same USB interface using the MHL protocol. Ubuntu open source developers have already taken advantage of the powerful we use the phone outside as usual as before, but when we come to e.g. to mov, but we will be able to connect it to a special desktop station and from the phone
USB systems, USB OTG systems may abandon the roaming function and
Finally, we can mention the most recent, generally the most standardized, but at the same time the least supported protocol on mobile use the desktop version of the operating system via mouse and keyboard.
as hosts. This means that you can connect USB sticks, mouse,
USB host mode and USB OTG
keyboard, on some even a printer and the like. Unlike standard mobile devices. They have announced that they are developing a system so that we can be mobile
8
The IOIO interface usually did not support USB host mode. However
CHAPTER 2. METHODS AND TOOLS USED
Support for USB OTG on mobile phones has recently become more and more common devices - USB host mode.
also this support. It is called IOIO OTG or. OTG mode behave like ordinary USB devices.
otha,
hub and then use the keyboard, mouse, as well just at the time of the final development of the diploma thesis, they developed a new model that has
• The protocol can now work without a cable using Bluetooth hundred. In fact, it allows us to connect USB to a mobile phone from version 2.3.5 onwards.
The only bad feature is the support for older Android devices - it only works digital audio player or mobile phone to behave external USB drives. Currently the most modern mobile phones (for example
- On the go). It is a specification that allows smaller USB devices -
• Faster transfers take place between devices.
Machine Translated by Google


Everything is of course running and running on a mobile phone processor. Probably it is only a matter of time before such a system is used on a daily basis.
9 2.3. IOIO S PROTOKOLOMA ADB TER OPENACCESSORY
Machine Translated by Google


CHAPTER 2. METHODS AND TOOLS USED
10
Machine Translated by Google


3.1 Components
The outdoor unit consists of the following components:
The components that enable user interaction are connected to the IOIO interface via various pins. The IOIO interface [5] has 48 such contacts. All of them can act as inputs or outputs, and all of them are capable of transmitting analog and digital measurements, depending on the initialization by the Android application.
The outdoor unit is a very simple device if we subtract the IOIO interface. It is not connected via a 3.3V adapter under 1A voltage, which is also a requirement of the IOIO interface. The connection to the mobile device is made via a USB interface, standard Micro B, as shown in
Figure 3.1.
• 3 luÿcke LED,
• 3 foot switches,
11
• and of course the IOIO interface.
Chapter 3
Outdoor unit
Machine Translated by Google


3.3.1 Communication through Java activities
3.3 Communication
3.2 Connection diagram
Most things are handled only by the IOIO framework available on the Internet. Zah
The interior of the outdoor unit is connected as shown in Figure 3.2.
CHAPTER 3. OUTDOOR UNIT
12
It does have some configuration, but it is well described on the manufacturer's website and also contains some living examples of working applications. The framework then just makes sure that there are no problems with checking if the device is connected and working, and the functionality of the device can be achieved in a relatively easy way. The framework automatically creates its own thread, via
Figure 3.1: Outdoor unit with all associated connection cables.
On the Android site, the code that communicates with the IOIO interface is relatively simple.
Machine Translated by Google


Figure 3.2: IOIO interface connection diagram.
3.3. COMMUNICATION
13
Machine Translated by Google


3.3.2 Automatic application launch (only via
OpenAccessory protocol)
14
It happens at initialization, the first start of the activity. In it, we usually connect facilities in Java and input and output devices connected to our
IOIO interface. We also determine which positions on the IOIO interface will be in use and what their function will be (input or output).
loop()
In androidManifest.xml, you can add what to start when you connect your device to your Android mobile device, as follows:
Calls are lost when the connection is lost. Here you can set some values to defaults, display a message to the user, etc.
setup()
CHAPTER 3. OUTDOOR UNIT
disconnect()
To take advantage of the possibilities offered by the IOIO, we only need to extend the Extend activity class, which inherits from the IOIOActivity abstract class. In it we run some methods:
which communicates with the connected device. Not much is happening at the forefront of IOIOs, and the user experience can therefore be very good. In separate threads, the framework automatically creates loops in which we can check and process data values and use them elsewhere.
It is a function that is called all the time inside a new thread. In it we check the values of the input units and set the values of the output ones. Because it takes place inside a thread, we can also use the Thread.sleep method
(nMiliseconds) to make sure that a value stays there for a long time. During such a call, all other functions fail, but in our case of pressing the foot switches (where we must make sure that one press is not considered multiple), such a wait may be welcome.
Machine Translated by Google


In this case, we registered the Main activity for the event of connecting the outdoor unit. Instead, it could also be PlayingActivity, which takes care of playback and management via an external unit, but I estimated that from a standpoint
android:required="false" />

15 3.3. COMMUNICATION
(!) (default application settings) ->
android:resource="@xml/accessory_filter" /> android:label="@string/app_name" android:logo="@drawable/drumstick_logo"> connect an external device ->
android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" package="com.example"

-! - here we say that the application is interested in the event when

android:versionName="1.0">

android:versionCode="1"
Machine Translated by Google

user experience thus makes more sense. This is how a certain one starts
CHAPTER 3. OUTDOOR UNIT
16 activity oz. displays a message to the user.
Machine Translated by Google


4.1 Analysis
Chapter 4
Application
The first screen of the application must allow us to set the tempo and some of its properties. It must be possible to expand the application later and the settings themselves. In the Android operating system, we have a simple relational SQLite database, which otherwise needs only one file for its internal storage, but knows a simple set of SQL queries. In the Java programming language, of course, it is easier to work with the objects themselves than writing SQL queries online, so it is good practice to develop an intermediate level between the SQLite relational database and objects in Java. The goal is to manage only ordinary objects that represent a certain entity, storage should be automatic or. at the command of the programmer.
When creating a mobile application, we had to pay attention to some special features that we do not find in other mobile applications. Our application needs processor time for both the thread that works in the foreground and the thread that runs in the background and ensures smooth playback of the metronome.
17
The very structure of the entities is very simple in the application. We really only need one entity that carries the settings of the first screen, let's give it a name
4.1.1 Main objects in the application
Machine Translated by Google


4.2.1 Natanÿcen metronome
4.2 Planning
• emphasize the first period yes / no.
• number of times in tact,
For the development of the metronome itself, the following sequence of implementation is the most offered:
18
• base period fixed 4 (quarters), as it is not important - it would only be easier to transcribe the tempo from different musical material. Namely, if we take the base period of a quarter or an eighth and assign it a speed of 120 beats per minute, that is 120 beats everywhere; regardless of emphasis and the like,
CHAPTER 4. APPLICATION
The base screen has fewer options, but it has a “Focus on” function, which actually means how many strokes a stronger stroke is triggered. In which of the following versions we could include slightly more advanced settings (functionally very similar to the existing ones), but we would like them to be compatible with all versions. For now, therefore, it is better to convert one setting option to several attributes, namely:
• underline first period yes / no - off by default. It means if it should
• id,
• Number of times in tact - this is practically the “Emphasis on” option - default 4,
SavedTempo. It must contain:
• base period,
• tempo speed (beats per minute),
they use highlighting settings at all.
• tempo name,
Machine Translated by Google


As for the playback itself, it's exactly the same way as it is
Android is also forced to devote enough CPU time to the thread, since at sampled analog signals. It is a standard format for digital audio
Android does not allocate enough processors due to power management no play may (except in really extreme cases) be skipped.
After minor tests, we find that the use of the built-in raw pulse code modulation engine works best.
Why this is so - because the click cannot be played in the main thread, her format, with AudioTrack class. It is a method that digitally presents example of receiving a radio station from the Internet. Here is the system
4.2. DRAWING
We are offered a solution; we can increase the priority of the thread that plays the metro
ÿ such as digital telephone systems. PCM current is a digital representation of an analog signal where the magnitude of the analog signal is sampled at cycles. That is why such a method does not come to us.
[6]. Maybe this way works relatively well, but it's in the real world in computers and various Blu-ray, DVD and CD formats, as well as elsewhere,
• play click such an interval is selected to approximate the value within the digital bit range using the android.os.Process.setThreadPriority method
Procedure to play:
19 standard interval - sampling rate. On
However, it soon turns out that we run into a problem here. Let's find a few examples of such metronomes on the Internet, but they are not accurate at all.
• repeat.
again not favorable.
bit depth. [7]
You can use many different situations, such as receiving text messages, calls, and so on. Such situations can force their thread over what is already being implemented
• Wait a certain number of milliseconds for speed (beats per minute),
Machine Translated by Google


4.2.2 Playback class
20
• start cycling playback. Since the playback is done synchronously in the thread that started it, there is no need to worry about skipping. In the meantime, check the local parameters of the object if the user wants to stop before the exercise or change the pace of execution.
// private constructor private
MetronomePlayer () {
private MetronomePlayer instance;
• Convert the number of milliseconds from the first indent to seconds and multiply by the sampling frequency of the click file - in our case it is 44100
Hz. This gives the number of bytes that need to be loaded into our AudioTrack class instance. We read exactly as many bytes from the stream,
CHAPTER 4. APPLICATION
public class MetronomePlayer {
• open the AudioTrack class,
• based on the selected number of beats per minute, we calculate how many milliseconds must elapse between two clicks (usually between 400 and 1500 milliseconds),
There should be no duplication of player instances throughout the application, which could mean playing multiple metronomes at the same time. Therefore, we used a method that is well known in the world of object-oriented languages - singleton (singular). This means that there is always only one instance of a class in the system at a time, so necessarily only one object. The class necessarily has a private constructor, it does not allow the creation of new instances from the outside, but can only do them inside itself through methods that also check if they already exist and stations (usually getInstance ()). It carries its own instance through the static field, which can be accessed everywhere. The instance ÿ does not exist when the application is started, so it should be created automatically the first time it is used. Example:
Machine Translated by Google


4.2.3 The main thread of the user interface and the thread before sculptor
}
}
However, the thread of the user interface has access to these variables, so in this way both threads can communicate with each other or. thus, we control the playback of the metronome from the user interface.
Interestingly, the application, if made in the other direction, does not work; the player thread cannot access the variables in the user interface thread. With such a structure, errors occur, interestingly, it is easy to duplicate the threads of the player. It is best to wear a reference to the player's internal thread inside the single singleton.
}
21
The class in charge of playback must also take care of the management of the player's thread, and thus must act as an intermediary between the two. It must connect the interface and the thread running in the background. The thread of the player is cycled one way or another and the values of the variables living inside the thread are checked in between.
}
4.2. DRAWING
return instance; public MetronomePlayer getInstance() { if (instance
== null) { instance = new MetronomePlayer();
ÿ
Machine Translated by Google


CHAPTER 4. APPLICATION
22
Machine Translated by Google


5.1 User interface
Chapter 5
Application example
Using the app is as simple as possible. When the application is launched, the user is offered the main screen with options for setting the metronome, so it can be used immediately. When the user wants to save the settings, just press the Save button.
If you want to edit the playlist, just swipe from the right to the left edge of the screen and the list of saved tempos is displayed. There you can rearrange their order or delete them.
They behave like activities with a few exceptions: they have a limited lifespan, they can communicate better with each other, and they are constantly present in memory when we are in an activity. They are used as the main screen and the list screen.
ÿ
This section describes the key elements and external user interface libraries that we used.
23
We added the ability to move with the finger to a simple navigation (swipe).
5.1.2 Parts of the user interface or fragments
5.1.1 Tabbed navigation
Machine Translated by Google


CHAPTER 5. EXAMPLE OF APPLICATION
24
Figure 5.1: Basic screen of the application.
Machine Translated by Google


5.1.3 Edited list with the possibility of rearranging
5.1.4 ActionBar
For better support on mobile devices that do not have ActionBar functionality included - Android versions lower than 3.0 Honeycomb - we used a special extension called Action Bar Sherlock instead of one hundred basic ActionBars. [9]
It is a framework that in case it has a host operating system
This is the same display mode that Google first included on Android for the first time
Other important buttons (such as playback) could be included.
however, it is better to place key functionality in the middle of the screen.
5.1. USER INTERFACE
will show the user interface and how some controls will be arranged
ÿ identical to those offered by the regular ActionBar. All we have to do is instead of the standard Activity class, in ours version 3.0 Honeycomb. The programmer does not have to deal with how the system decides for itself how best to rearrange the buttons according to the different ones system support for ActionBar, use the built-in, otherwise it makes its im implementation, which behaves the same. The methods we can use are fragments, expand the SherlockFragment class instead of Fragment.
on the screen. Such functionality is especially welcome because it is operational
25 activities extend SherlockActivity. In our case, when we use through which the arranged elements are displayed).
key buttons in the ActionBar: for example, button to switch to outdoor unit control mode. We also used the logo space at the top left.
in the list of saved tempos. By rearranging through the user interface, we actually achieve rearrangement in the database (the order field is updated,
screen sizes. All we need to do is implement some methods according to our needs. We have included some in the diploma thesis
We used ÿ already made by Eric Harlow [8]. Used
Machine Translated by Google


5.2 Outdoor unit
When the user enters the control mode via the outdoor unit, the application detects if the outdoor unit has been connected. When connected, a notification is displayed to the user and the application can be operated via the external unit.
• move one song forward.
• stopping (pause),
switches:
26 above the button, which informs the user that the application has accepted the command. The light illuminates until it is ready to receive the next command again
(500 milliseconds). This is done so that the buttons are not accidentally pressed repeatedly.
• move back one song,
It has 3 functions built into the outdoor unit, accessible via foot
When one of the foot switches is pressed, the LED lights up
CHAPTER 5. EXAMPLE OF APPLICATION
Machine Translated by Google


6.1 UI improvements
Possibilities for improvements and extensions
Chapter 6
The application perfectly meets the basic needs, but in order to satisfy a larger circle of users, you could insert some improvements or additional functionality. At the beginning of planning, we usually have a more limited overview or. we are interested in the basic functionality of the application, and later usually up to
Basically, the accented note is chosen in a very simple way - which note should be emphasized, how many unaccented notes should be followed by an accentuated stroke. However, a different notation is used in music, namely the tactical way. We use the basic period (ÿ quarter, octave, ÿsixteen ...) as the basis, which is repeated according to the ÿnumber of periods in the beat. The user could be given a choice of such modes (preset), or given the option to set it
27 we have more and more ideas for development. Unfortunately, in order to meet the originally set deadlines, we cannot develop all the ideas immediately, but we can save them for one of the following iterations.
Here are various improvements to the user interface that could be added to applications in the future.
6.1.1 More standardized clock mode selection
Machine Translated by Google


6.2 Outdoor unit via Bluetooth
6.1.2 Basic layout remote or in safer places (a quality case, maybe in a suitcase ...). For more friendly.
ÿ
This may have its limitations on usage, as we always need a cable,
OpenAccessory. So we need Bluetooth for a wireless connection would not stray too far from the basic principles of designing the user interface for the Android platform, for example, you could only go to the basic ActionBar connect to the USB connector of our outdoor units [10].
for a user who is more familiar with musical notation, this method is perhaps more
The OpenAccessory protocol also works wirelessly, and consequently ours also works
CHAPTER 6. POSSIBILITIES FOR IMPROVING SAV AND DEVELOPMENT
you could use some kind of wireless version. Fortunately, a USB connection between user interface styles. However, given that this is an application that per minute), but the first period in time can be emphasized. That's how we get there a mobile device with Android version 2.3.5 or higher.
ÿ at concerts, however, it might be more appropriate for us to leave the phone somewhere more
Unfortunately, this also has its drawbacks. The older ADB protocol does not work via Bluetooth, so only the protocol can be used for communication friendly. There is also so little copying of tempo from various music literature
ÿ
The outdoor unit is currently connected to the mobile phone via a USB connection.
otherwise the same functionality as the existing one, but it is more standardized. For add styles via the default_styles.xml file.
outdoor unit. You could use the Bluetooth interface for the IOIO only alone. The user then adjusts the speed of the base period (also in strokes two devices are based on the same specifications as Bluetooth. That easy
If you want to depict a metronome, you could slightly change the colors and maybe even give a texture that is more reminiscent of what you want to show. Yes
28
ÿ
The basic look itself is currently completely basic or. based on defaults
Machine Translated by Google


6.3 Synchronization adapt the client or our mobile application accordingly.
sometimes this is slightly time consuming via mobile phone. You could create a web
6.3. SYNCHRONIZATION
29 an editing interface that would then automatically sync with the device. A good feature of this feature would also be that you could play through print the computer and pass it on to the other members of the group. Synchronization would be easiest to implement through web services.
On the one hand, we would develop code for a web server that would offer content via
XML (eXtensible Markup Language) or JSON (Java Script Object Notation) format and user authentication. On the other hand
When we write down the order of the songs we will perform at the concert, it is
Machine Translated by Google


30
ÿ
ÿ
CHAPTER 6. POSSIBILITIES FOR IMPROVING SAV AND DEVELOPMENT
ÿ
Machine Translated by Google


31
The diploma thesis opened a new horizon of the possibility of connecting external devices and Android mobile devices. Here we used only digital transmission (pressing the buttons on the board and turning on the LED lights - there are only 2 states, true or false). In the real world, there are also many cases where we can use analog inputs and outputs, such as reading different quantities such as temperature, pressure, etc. as input.
We can also use different outputs to control various smaller electric motors, robots, etc. They work well together with a mobile device, and each adds its own capabilities, sensors, and last but not least, a connection to the Internet via a mobile or wireless network. Today's mobile phones are generally more and more powerful, so we can use their processing power for such purposes.
Conclusions
Chapter 7
Machine Translated by Google


32
CHAPTER 7. CONCLUSIONS
Machine Translated by Google


[1] Tempo. Available at: http://en.wikipedia.org/wiki/Tempo
[8] Eric Harlow's blog with code reorder code. Available at:
http://developer.android.com/reference/android/os/Process.html#setThreadPriority(int)
[2] Android (operating system). Available at: http://
en.wikipedia.org/wiki/Android (operating system)
http://ericharlow.blogspot.com/2010/10/experience-android-drag-and drop- list.html
[9] ActionBarSherlock homepage. Available at: http://
actionbarsherlock.com
[3] Official documentation for Android. Available at: http://
developer.android.com
[7] Pulse code modulation (PCM). Available at:
33
[4] IntelliJ IDEA official site. Available at: http://
www.jetbrains.com/idea/
http://en.wikipedia.org/wiki/Pulse-code modulation
[6] SetThreadPriority (int) documentation. Available at:
[5] SparkFun manufacturer's website with IOIO interface description.
Available at: https://www.sparkfun.com/products/10748
Literature
Machine Translated by Google


LITERATURE
34
[10] IOIO via Bluetooth. Available at:
https://github.com/ytai/ioio/wiki/IOIO-Over-Bluetooth
Machine Translated by Google

Download 1.68 Mb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page