Nils Wallménius
65331f1749
Revert some changes that broke looping in midiplayer
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15631 a1c6a512-1295-4272-9138-f99709370657
2007-11-15 21:20:29 +00:00
Nils Wallménius
0fd4c2e455
Rearrange logic in the synthVoice loop to do less tests and remove need of a struct member for a small speedup, move some memory lookups out of the loop for a small speedup, further cosmetic changes to the synthVoice function. Change isUsed to a bool for clearer logic and also a tiny speedup
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15563 a1c6a512-1295-4272-9138-f99709370657
2007-11-11 01:02:45 +00:00
Stepan Moskovchenko
bdfe87c0f1
MIDI: Make seeking neater by moving it into another file. Will be more useful later.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15467 a1c6a512-1295-4272-9138-f99709370657
2007-11-05 05:35:10 +00:00
Stéphane Doyon
775279b63e
Fix warnings.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15421 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 04:59:24 +00:00
Stepan Moskovchenko
cd963d84ca
MIDI: Allow seeking forward and backward using the left/right keys. Currently seeks in 5 second
...
increments, but this can be set to any amount. Also implemented a counter for playing time, which can
pretty easily be used to determine the length of the file, in seconds, before playing it. The time
isn't displayed anywhere right now, but all this can be useful if this thing is turned into a codec, or
at least gets a nice UI.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15418 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 04:09:38 +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
Nils Wallménius
ab5a38db92
Clean out an unused struct member from the synthObject struct
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15189 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 13:43:13 +00:00
Stepan Moskovchenko
c3584c0d63
MIDI: Scale each instrument by a calibration value, since not all patches are at the same base volume.
...
This should make some files sound more natural, without some instruments overpowering others.
Ultimately, these values need to be moved to the config file, and the table should probably be put in
IRAM or something.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15161 a1c6a512-1295-4272-9138-f99709370657
2007-10-17 05:06:57 +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
cb9ba11de6
Remove wrapper for pressNote and make the function externally visible
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14978 a1c6a512-1295-4272-9138-f99709370657
2007-10-04 10:30:01 +00:00
Stepan Moskovchenko
1ba018bb01
Add drum names, make cowbell a default instrument (no way to remap them from UI yet). Add non-static
...
wrapper for pressnote (is there a better way?). Beatbox only tested on H300; compile at own risk.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14972 a1c6a512-1295-4272-9138-f99709370657
2007-10-03 17:42:16 +00:00
Nils Wallménius
6386dbe861
static/inline/iram raid gives nice speedup
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14915 a1c6a512-1295-4272-9138-f99709370657
2007-09-30 11:21:25 +00:00
Nils Wallménius
6888db3240
Do not duplicate const table, make getEvent function static inline, gives about a ~1.5% speedup, put tick function in iram, ~3.5% speedup
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14873 a1c6a512-1295-4272-9138-f99709370657
2007-09-27 20:17:38 +00:00
Nils Wallménius
93787dd42c
Simplify the sendEvent function, makes it _slightly_ faster and quite a bit smaller, build midiplay with -O2 for coldfire, gives about a 23% speedup
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14872 a1c6a512-1295-4272-9138-f99709370657
2007-09-27 18:29:50 +00:00
Nils Wallménius
ddee0f16d3
Use uint32_t type for the pitch table
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14844 a1c6a512-1295-4272-9138-f99709370657
2007-09-24 21:13:20 +00:00
Nils Wallménius
ff7b3c5e4e
Fix midi playback on 64 bit sims and const a table
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14842 a1c6a512-1295-4272-9138-f99709370657
2007-09-24 16:47:34 +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
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
65ef67e0f1
Fix a nasty little bug that would under the right conditions cause
...
memory corruption and other weirdness.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11978 a1c6a512-1295-4272-9138-f99709370657
2007-01-10 17:53:54 +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
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
1874a33298
Uncomment one line, which makes bad 80s music sound a bit better.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7291 a1c6a512-1295-4272-9138-f99709370657
2005-08-07 23:39:23 +00:00
Stepan Moskovchenko
fb3e9a4073
Fix error/warning, change pitch bend to 9 bits
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7288 a1c6a512-1295-4272-9138-f99709370657
2005-08-07 22:20:40 +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