public IList <Elemento> generarCompas(Compas compas, string tonalidad, int grado)
    {
        IList <Elemento> result = new List <Elemento>();
        // generar el ritmo
        double longitudCompas         = compas.getLongitud();
        IList <BloqueRitmico> bloques = new List <BloqueRitmico>();
        double longitud = 0;

        longitud = generarBloquesRitmicos(bloques, longitud, longitudCompas);
        if (longitud < longitudCompas)
        {
            throw new Exception("Con los bloques rítmicos disponibles no se puede rellenar el compás. With the rythm blocks available it is not possible to fill the measure");
        }
        // generar la melodía
        IList <Nota> notasCandidatas = MusicUtils.obtenerNotas(tonalidad, grado, notasDisponibles);

        foreach (BloqueRitmico bloque in bloques)
        {
            string[] duraciones = bloque.getDuraciones();
            foreach (string duracion in duraciones)
            {
                Nota notaCandidata = notasCandidatas[MusicUtils.rnd.Next(notasCandidatas.Count)];
                Nota nota          = new Nota(notaCandidata.getNombre(), notaCandidata.getOctava(), duracion);
                result.Add(nota);
            }
        }
        return(result);
    }
Exemple #2
0
        public void TestNotePlacement(int octave, int note)
        {
            var position         = MusicUtils.GetNotePosition((NoteName)note, octave);
            var expectedPosition = (note - 1) + (octave - MusicUtils.ZERO_POINT_OCTAVE) * 7;

            Assert.That(position, Is.EqualTo(expectedPosition));
        }
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            if (!(holder is QueueItemHolder itemHolder))
            {
                return;
            }
            var local = _songs[position];

            itemHolder.Title.Text  = local.Title;
            itemHolder.Artist.Text = local.ArtistName;

            if (MusicPlayer.GetCurrentAudioId() == local.Id)
            {
                itemHolder.Title.SetTextColor(new Color(MusicUtils.GetAccentColor(_context)));
                if (MusicPlayer.IsPlaying())
                {
                    itemHolder.Visualizer.SetColor(MusicUtils.GetAccentColor(_context));
                    itemHolder.Visualizer.Visibility = ViewStates.Visible;
                }
            }
            else
            {
                itemHolder.Title.SetTextColor(new Color(MusicUtils.GetTextColorPrimary(_context)));
                itemHolder.Visualizer.Visibility = ViewStates.Gone;
            }
            var builder = new DisplayImageOptions.Builder()
                          .CacheInMemory(true)
                          .ShowImageOnFail(Resource.Drawable.ic_empty_music2)
                          .ResetViewBeforeLoading(true)
                          .Build();

            ImageLoader.Instance.DisplayImage(MusicUtils.GetAlbumArtUri(local.AlbumId).ToString(), itemHolder.AlbumArt, builder);
            itemHolder.PopupMenu.Click += (s, e) => OnPopupMenuClick(s, e, position);
        }
 private void actualizarLongitud()
 {
     longitud = 0;
     foreach (string duracion in duraciones)
     {
         longitud += MusicUtils.calcularLongitud(duracion);
     }
 }
    public Pentagrama(string tonalidad, string clave)
    {
        this.clave = clave;
        Configuracion cfg = Configuracion.obtenerConfiguracion();
        // Leer el rango de notas
        string rango = "G".Equals(clave) ? cfg.pentagrama_rango_g : cfg.pentagrama_rango_f;

        string[] notas = rango.Split(',');
        if (notas.Length != 2)
        {
            throw new Exception("El rango de notas debe estar formado por dos notas. The range of notes must contain two notes");
        }
        string notaIni   = notas[0].Substring(0, 1);
        int    octavaIni = int.Parse(notas[0].Substring(notas[0].Length - 1, 1));
        string notaFin   = notas[1].Substring(0, 1);
        int    octavaFin = int.Parse(notas[1].Substring(notas[1].Length - 1, 1));
        // calcular el número de notas
        int numNotas = MusicUtils.NOTAS.Count * (octavaFin - octavaIni + 1)
                       - MusicUtils.NOTAS.IndexOf(notaIni)
                       - (MusicUtils.NOTAS.Count - 1 - MusicUtils.NOTAS.IndexOf(notaFin));

        notasDisponibles = new Nota[numNotas];
        int idxNota = 0;

        for (int octava = octavaIni; octava <= octavaFin; octava++)
        {
            int idxNotaInicio = 0;
            int idxNotaFin    = MusicUtils.NOTAS.Count - 1;
            if (octava == octavaIni)
            {
                idxNotaInicio = MusicUtils.NOTAS.IndexOf(notaIni);
            }
            if (octava == octavaFin)
            {
                idxNotaFin = MusicUtils.NOTAS.IndexOf(notaFin);
            }
            for (int i = idxNotaInicio; i <= idxNotaFin; i++)
            {
                notasDisponibles[idxNota] = new Nota(MusicUtils.NOTAS[i], octava, null);
                idxNota++;
            }
        }
        MusicUtils.aplicarAlteraciones(tonalidad, notasDisponibles);
        // Bloques rítmicos a utilizar
        string sRitmos = "G".Equals(clave) ? cfg.bloques_ritmicos_g : cfg.bloques_ritmicos_f;

        string[] sListaRimtos = sRitmos.Split(',');
        bloquesRitmicosDisponibles = new BloqueRitmico[sListaRimtos.Length];
        for (int i = 0; i < sListaRimtos.Length; i++)
        {
            string[] duraciones = sListaRimtos[i].Split('+');
            bloquesRitmicosDisponibles[i] = new BloqueRitmico(duraciones);
        }
    }
        private void SeekTo(int seek)
        {
            try
            {
                int totalDuration   = Constant.MediaPlayer.Duration;
                int currentPosition = MusicUtils.ProgressToTimer(seek, totalDuration);

                // forward or backward to certain seconds
                Constant.MediaPlayer.SeekTo(currentPosition);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemple #7
0
        public MainWindow()
        {
            InitializeComponent();

            if ((int)Process.GetProcessesByName("CortanaViewer").Length >= 2)
            {
                System.Windows.Application.Current.Shutdown();
                return;
            }

            performanceUtils = new PerformanceUtils();
            //networkUtils = new NetworkUtils("Intel[R] Dual Band Wireless-AC 3165");
            networkUtils = new NetworkUtils();
            musicUtils   = new MusicUtils();

            init();
        }
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            if (!(holder is AlbumItemHolder itemHolder))
            {
                return;
            }
            var localAlbum = _albums[position];

            _itemHolder            = itemHolder;
            itemHolder.Title.Text  = localAlbum.Title;
            itemHolder.Artist.Text = localAlbum.ArtistName;

            ImageLoader.Instance.DisplayImage(MusicUtils.GetAlbumArtUri(localAlbum.Id).ToString(), itemHolder.AlbumArt,
                                              new DisplayImageOptions.Builder().CacheInMemory(true)
                                              .ShowImageOnFail(Resource.Drawable.ic_empty_music2)
                                              .ResetViewBeforeLoading(true)
                                              .Displayer(new FadeInBitmapDisplayer(400))
                                              .Build(),
                                              new ImageLoadingListener()
            {
                LoadingComplete = (loadedImage) =>
                {
                    if (_isGrid)
                    {
                        new Palette.Builder(loadedImage).Generate(this);
                    }
                },
                LoadingFailed = () =>
                {
                    if (_isGrid)
                    {
                        itemHolder.Footer.SetBackgroundColor(Color.White);
                        if (_context != null)
                        {
                            var textColor = new Color(MusicUtils.GetTextColorPrimary(_context));
                            itemHolder.Title.SetTextColor(textColor);
                            itemHolder.Artist.SetTextColor(textColor);
                        }
                    }
                }
            }
                                              );
        }
        public void OnGenerated(Palette palette)
        {
            var   swatch         = palette.VibrantSwatch;
            Color textColor      = Color.White;
            Color backgoundColor = Color.Black;

            if (swatch != null)
            {
                backgoundColor = new Color(swatch.Rgb);
            }
            else
            {
                swatch         = palette.MutedSwatch;
                backgoundColor = new Color(swatch.Rgb);
            }
            _itemHolder.Footer.SetBackgroundColor(backgoundColor);
            textColor = MusicUtils.GetSuitableTextColor(backgoundColor);
            _itemHolder.Title.SetTextColor(textColor);
            _itemHolder.Artist.SetTextColor(textColor);
        }
        private void OnPopupMenuClick(object sender, EventArgs e, int pos)
        {
            var menu = new Android.Widget.PopupMenu(_context, (View)sender);

            menu.MenuItemClick += (s, args) =>
            {
                switch (args.Item.ItemId)
                {
                case Resource.Id.popup_song_play:
                {
                    MusicPlayer.PlayAll(_context, GetSongIds(), pos, -1, MusicUtils.SourceTypeId.NA, false);
                    break;
                }

                case Resource.Id.popup_song_goto_album:
                {
                    NavigationUtils.GoToAlbum(_context, _songs[pos].AlbumId);
                    break;
                }

                case Resource.Id.popup_song_goto_artist:
                {
                    NavigationUtils.GoToArtist(_context, _songs[pos].ArtistId);
                    break;
                }

                case Resource.Id.popup_song_addto_playlist:
                {
                    // TODO: Create add to dialog
                    AddPlaylistDialog.GetInstance(_songs[pos]).Show(((AppCompatActivity)_context).SupportFragmentManager, "Add to playlist");     // not finish
                    break;
                }

                case Resource.Id.popup_song_delete:
                {
                    MusicUtils.ShowDeleteSongDialog(_context, new long[] { _songs[pos].Id });
                    break;
                }
                }
            };
        }
Exemple #11
0
        private void SeekTo(long seek)
        {
            try
            {
                var totalDuration   = Constant.Player.Duration;
                var currentPosition = MusicUtils.ProgressToTimer(seek, totalDuration);

                // forward or backward to certain seconds
                Constant.Player.SeekTo(currentPosition);

                GlobalContext?.SoundController?.SeekUpdate();

                if (Constant.IsPlayed && !Constant.Player.PlayWhenReady)
                {
                    Constant.Player.PlayWhenReady = true;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemple #12
0
    private IEnumerator CompletePairFound()
    {
        Debug.Log("Complete pair found...");

        CardsLeft -= 2;
        Debug.Log(CardsLeft);

        if (CardsLeft <= 0)
        {
            Debug.Log("Start new");

            game.GameCompleted();

            GameObject gObject = GameObject.Find("BackgroundMusic");
            yield return(StartCoroutine(MusicUtils.ToggleBackgroundMusic(gObject, true)));

            var sound = GetComponent <AudioSource>();
            if (sound != null)
            {
                sound.Play();
            }

            var popups = GameObject.Find("Popups");
            if (popups != null)
            {
                var animator = popups.GetComponent <Animator>();
                animator.SetBool("ShowGameOver", true);
            }

            yield return(new WaitForSeconds(4.25f));

            yield return(StartCoroutine(MusicUtils.ToggleBackgroundMusic(gObject, false)));
        }

        game.IsBusy = false;
    }
Exemple #13
0
 public TimingPoint(float bpm, float offset)
 {
     Bpm       = bpm;
     Offset    = offset;
     BpmOffset = MusicUtils.ToMsOffset(bpm);
 }
	private void actualizarLongitud() {
		if (duracion == null)
			longitud = 0;
		else
			longitud += MusicUtils.calcularLongitud(duracion);
	}
        // Onclick Pop Up menu
        public void OnClick(View v, int pos)
        {
            var menu = new PopupMenu(_context, v);

            menu.MenuItemClick += (s, arg) =>
            {
                switch (arg.Item.ItemId)
                {
                case Resource.Id.popup_song_remove_playlist:
                {
                    MusicUtils.RemoveFromPlaylist(_context, _songs[pos].Id, _playlistId);
                    _songs.RemoveAt(pos);
                    NotifyItemRemoved(pos);
                    break;
                }

                case Resource.Id.popup_song_play:
                {
                    MusicPlayer.PlayAll(_context, _songIds, pos, -1, MusicUtils.SourceTypeId.NA, false);
                    break;
                }

                case Resource.Id.popup_song_play_next:
                {
                    MusicPlayer.PlayNext(_context, new long[] { _songs[pos].Id }, -1, MusicUtils.SourceTypeId.NA);
                    break;
                }

                case Resource.Id.popup_song_goto_album:
                {
                    NavigationUtils.GoToAlbum(_context, _songs[pos].AlbumId);
                    break;
                }

                case Resource.Id.popup_song_goto_artist:
                {
                    NavigationUtils.GoToArtist(_context, _songs[pos].ArtistId);
                    break;
                }

                case Resource.Id.popup_song_addto_queue:
                {
                    MusicPlayer.AddToQueue(_context, new long[] { _songs[pos].Id }, -1, MusicUtils.SourceTypeId.NA);
                    break;
                }

                case Resource.Id.popup_song_addto_playlist:
                {
                    // TODO: Create add to dialog
                    AddPlaylistDialog.GetInstance(_songs[pos]).Show(_context.SupportFragmentManager, "Add to playlist");     // not finish
                    break;
                }

                case Resource.Id.popup_song_share:
                {
                    MusicUtils.ShareSong(_context, _songs[pos].Id);
                    break;
                }

                case Resource.Id.popup_song_delete:
                {
                    MusicUtils.ShowDeleteSongDialog(_context, new long[] { _songs[pos].Id });
                    break;
                }

                default:
                    break;
                }
            };
            menu.Inflate(Resource.Menu.popup_song);
            menu.Show();
            if (_isPlaylist)
            {
                menu.Menu.FindItem(Resource.Id.popup_song_remove_playlist).SetVisible(true);
            }
        }