Commit graph

26 commits

Author SHA1 Message Date
Nils Wallménius
2afc175a4e midi: make the patch sample data pointer a *int16_t to get rid of some ugly casting and drop an acessor macro to make caching the pointer in the synthVoice loop possible. Speeds up midi by 1-2% on cf and 3-5% on PP.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30438 a1c6a512-1295-4272-9138-f99709370657
2011-09-06 10:34:20 +00:00
Andree Buschmann
67f215032d Fix a bunch of 'variable set but not used' warnings reported from GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29841 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 21:06:38 +00:00
Michael Giacomelli
42ba55fba3 Make the midiplugin's out of memory error more obvious to people who don't know what malloc is.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28822 a1c6a512-1295-4272-9138-f99709370657
2010-12-13 04:43:27 +00:00
Michael Chicoine
91a45d2ecc Rename printf to prevent naming conflict. Also change comment to conform with Rockbox standards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27562 a1c6a512-1295-4272-9138-f99709370657
2010-07-25 19:35:19 +00:00
Frank Gevaerts
7a994c1e7d Fix (hopefully) last aliasing bug (midiutil), and enable -fno-strict-aliasing again for zxbox and doom (no easy fix there)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25889 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 20:11:14 +00:00
Thomas Martitz
50a6ca39ad Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes).
This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 21:04:40 +00:00
Andrew Mahone
23d9812273 loader-initialized global plugin API:
struct plugin_api *rb is declared in PLUGIN_HEADER, and pointed to by
__header.api

the loader uses this pointer to initialize rb before calling entry_point

entry_point is no longer passed a pointer to the plugin API

all plugins, and pluginlib functions, are modified to refer to the
global rb

pluginlib functions which only served to copy the API pointer are
removed

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19776 a1c6a512-1295-4272-9138-f99709370657
2009-01-16 10:34:40 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Stepan Moskovchenko
59acdc336b MIDI player: Allow pause and seeking during pause. Print out the play/pause/seek position in seconds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15985 a1c6a512-1295-4272-9138-f99709370657
2008-01-02 06:35:59 +00:00
Stepan Moskovchenko
47d8323deb MIDI: Fix ringing/beeks in music caused by improper parsing of some pitch bend events.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15252 a1c6a512-1295-4272-9138-f99709370657
2007-10-21 19:47:33 +00:00
Stepan Moskovchenko
d33645ba13 MIDI: Optimize the new pitch bending code for a small speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15160 a1c6a512-1295-4272-9138-f99709370657
2007-10-17 03:48:24 +00:00
Stepan Moskovchenko
1515ff8522 MIDI: At long last, though quick and dirty, pitch bend depth! Or, I think it works. Tested on two
files. Let me know if anyone discovers any problems with this. This commit also includes Nils's synth 
loop optimization patch. I hope committing it does not cause problems.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15112 a1c6a512-1295-4272-9138-f99709370657
2007-10-15 05:11:37 +00:00
Nils Wallménius
e1940b87b0 Optimisation of the midi player, reducing the number of multiplications and memory accesses inside a very frequently executed loop, also does shifting of the whole sample when synthing is done which improves accurracy slightly, ~10% fewer buffer misses
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14983 a1c6a512-1295-4272-9138-f99709370657
2007-10-04 19:36:42 +00:00
Nils Wallménius
0e49605aaa Move all of midiplay into its subdir and add a Makefile for it, add header files as necessary.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14841 a1c6a512-1295-4272-9138-f99709370657
2007-09-24 15:57:32 +00:00
Michael Sevakis
8676dc25f5 Missed a couple. Hopefully fix all warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13234 a1c6a512-1295-4272-9138-f99709370657
2007-04-21 19:07:15 +00:00
Michael Sevakis
26d242ae65 General housekeeping: Make plugin buffer functions take size_t * instead of int * to match the parameter type of the buffer functions called in the core. Get rid of unsafe int * <==> size_t * casting. Use ssize_t where int was used and size_t where unsigned int was used in the buffer calls to not alter signedness in the plugins. No API version change since it should only be an issue for 64-bit sim builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13233 a1c6a512-1295-4272-9138-f99709370657
2007-04-21 18:38:25 +00:00
Jens Arnold
b1f0049307 Fix the undefined char symbols appearing in many output lines. This printf does neither support nor need \n.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13229 a1c6a512-1295-4272-9138-f99709370657
2007-04-21 05:35:17 +00:00
Stepan Moskovchenko
c84461fb8f More adsr related nonsense, argh! Fix adsr related problem on some notes being stopped instead of
looped. Ramping code still not quite right, but dont want to lose this.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11117 a1c6a512-1295-4272-9138-f99709370657
2006-10-03 21:09:47 +00:00
Stepan Moskovchenko
b9b2bcd9b9 Fixed freezing after loader error messages.
Added RMID (Windows MIDI) header support. Added .RMI extension to
viewers.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9888 a1c6a512-1295-4272-9138-f99709370657
2006-05-08 02:43:29 +00:00
Stepan Moskovchenko
28b5afd05a Optimize synth code by pre-computing the volume scaling for each note.
Scaling is now calculated once per MIDI event at the most, instead of
once per sample. Increase voice ramping speed, increase number of
active voices a little.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9870 a1c6a512-1295-4272-9138-f99709370657
2006-05-03 19:32:22 +00:00
Stepan Moskovchenko
47efba8bbf Fix file descriptor leak that would cause a hard lockup every 7 files
played. A few other cosmetic changes. please, please no red build =)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9865 a1c6a512-1295-4272-9138-f99709370657
2006-05-03 05:18:18 +00:00
Stepan Moskovchenko
b2f1b5dd18 ----------------------------------------------------------------------
Added Karl Kurbjun's sound output patch, cleaned up some output.
Main file is now midiplay.c, midi2wav is still in there for anyone who
wants it. Set sampling rate to 22k, and increased note decay time.
Reduced number of concurrent active voices and made new notes replace
used voices if none are available. This makes lag less apparent.
I really hope this wont go red. (turns around and runs)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9858 a1c6a512-1295-4272-9138-f99709370657
2006-05-01 23:22:59 +00:00
Stepan Moskovchenko
9ec1ff8cf5 Fixed warnings, adapted to Rockbox coding style, optimized to 78% realtime.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6329 a1c6a512-1295-4272-9138-f99709370657
2005-04-20 21:07:13 +00:00
Stepan Moskovchenko
1f5fb99819 Some shifting optimizations. Working code. 50% realtime.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6323 a1c6a512-1295-4272-9138-f99709370657
2005-04-19 15:57:07 +00:00
Stepan Moskovchenko
5811214b0c Code cleanup, fix warnings, error checking, add midi2wav to viewers.config
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6304 a1c6a512-1295-4272-9138-f99709370657
2005-04-15 20:27:04 +00:00
Stepan Moskovchenko
215e492a12 Added MIDI synthesizer plugin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6287 a1c6a512-1295-4272-9138-f99709370657
2005-04-15 06:08:55 +00:00