1
Fork 0
Commit Graph

232 Commits

Author SHA1 Message Date
Nedko Arnaudov 5fe924a2de wscript: install /usr/share files 2023-06-17 21:39:10 +03:00
Nedko Arnaudov 91458f12ca src/jack.cpp: include header for sleep() 2023-06-17 20:41:11 +03:00
Nedko Arnaudov 7429ecb0b3 build with waf 2023-06-17 20:41:11 +03:00
EvanR a32d9e2132 Mouse wheel now scrolls horizontally in piano roll. 2009-09-22 14:26:38 -04:00
EvanR 2076a97746 Fixed initial middle click on arranger segfaults. 2009-09-22 14:10:15 -04:00
EvanR 12365aed59 Fixed stop-scroll functionality.
Now it scrolls to the play position, which may not
be zero.
2009-09-22 14:06:25 -04:00
EvanR 691c5eee90 Stop button scrolls arranger. 2009-09-22 13:56:24 -04:00
Nedko Arnaudov ab216acec8 Make LASH optional and detected by configure script 2009-09-22 19:29:58 +03:00
EvanR 7984afe6b8 Added several shortcuts.
ctrl 1 through 5 select tools in the song arranger.
backspace stops playback and resets play head.
2009-09-21 19:56:24 -04:00
EvanR f2049d4c17 Modified the controls help file. 2009-09-21 19:27:22 -04:00
EvanR 1b71a3e559 Added ctrl-s shortcut.
This saves the current song. No feedback yet.
2009-09-21 19:18:41 -04:00
EvanR e418724ae0 Fixed bug in resize.
It was possible that the resize operation would move the completely
wrong note off if resizing from the right. The work around was to
have the search for note off begin right after the note off instead
of at the same position. The effect is that it cannot find note on
off pairs that effectively give the note duration zero.
2009-05-28 18:47:48 -04:00
EvanR e720ca0cb6 Bank widget goes to 16383. Sends/responds to LSB and MSB.
But you cannot read it above 999. I'll fix it later.
2009-05-27 13:38:42 -04:00
EvanR 78242ef06b Shifted triplets so they are right.
Eighth note quantization with triplet button pressed now
quantizes new notes so that the three notes fill a quarter,
and so on. Before this relationship was wrong. Fixed now.
2009-05-27 00:35:35 -04:00
EvanR 123b95aee2 Fixed bug in which import and load cause stuck notes. 2009-05-26 20:40:05 -04:00
EvanR bb3c69de04 Bank widget sends controller change 32 instead of 0.
This makes more sense but I figured since most of the
other CC commonly used were less than 32, so should bank
select. Fixed now.
2009-05-26 15:55:20 -04:00
EvanR fc82f94305 Added changing cursors to indicate resizing and moving.
And removed the ad-hoc arrow graphics. However their remnant
code is still largely intact since the state flags for those
arrow graphics was used for the cursor changes.
2009-05-26 15:14:26 -04:00
EvanR 7547cc65fd Dynamically updating controller widgets, and now in decimal!
When volume, pan, or program change on a track, the widgets in
the track settings module update to show the change. They also
display the current value in decimal when you are editing them.
This makes the program widget on the second panel actually useful.

The bank does not update and needs more work before it can be
fully functional (MSB/LSB).

The pan widget now has a different display.
2009-05-26 12:41:23 -04:00
EvanR 383ca5d308 More robust automatic note-off abilities.
Pressing pause, stop, and editing patterns while transport is running
causes playing notes to stop.  Instead of using 'all notes off' controller
change messages, the sequencer keeps track of playing notes and does
a fast search to see which ones to cancel. This reduces midi bus traffic
considerably.

There is a potential race condition because both the audio thread (while
sequencer is playing) and the GUI (when changes are made) manipulate the
bit field used to track notes that are on. A possible error is when the
user presses a control or edits a pattern just as a note should be ending.
By the powers of multithreading, two note offs may be generated when there
should only be one. I am considering this rare and harmless enough at this
time to ignore it. Doing it correctly would require a better serialized,
lock-free command queue, and would solve a few other race conditions. Maybe
some other time.
2009-05-25 18:43:03 -05:00
EvanR 30673a375d Fixed race condition in record/playback.
Now the audio thread schedules recorded events after it has
played the existing events in that time period. Before it
may have been that recording would happen before playback,
resulting in two copies of that event being output: one from
forwarding and one from playback.
2009-05-25 13:37:30 -05:00
EvanR 8474e05e3f Fixed three bugs in event editor.
Box selecting piano roll notes failed to properly allow
event editor to modify only those notes.

Right click de-selecting all notes in piano roll failed to
restore modify-all behavior to event editor.

Box selecting in event editor selected notes even if not
viewing note on events.

All bugs fixed.
2009-05-22 17:00:49 -05:00
EvanR 2934fc4512 Spacebar now starts and stops the transport.
Nedko said so.
2009-05-22 15:48:55 -05:00
EvanR 2e8a2bf2b2 Fixed problematic, wrong jack transport things.
An undue latency on looping was removed as well as incorrect
implementation of jack transport. Now play, stop, and reposition
will send jack transport messages, but epichord will not respond
to such messages itself. I have an idea of how this could be
correctly done, but it would take some work.
2009-05-18 17:04:19 -05:00
EvanR b6c1c5909e Fixed transport support. Maybe.
Performs a locate to the current position when stopping.
2009-05-08 20:36:12 -05:00
EvanR 2d0f0d2664 Broken jack transport support added.
Epichord still works, but likely does not fully function as a jack
transport client. Need to find details about how this is supposed
to work.

The only bug is that jack_transport_stop() does not seem to let
other clients (including epichord itself) know to stop. Epichord
has a temporary work around so it can stop itself.
2009-05-08 20:22:37 -05:00
EvanR 186d94c80e Changed TICKS_PER_BEAT from 128 to 288.
This allows for exact triplets in some basic cases. Also TICKS_PER_BEAT
can now be changed to any reasonable value. Values less than 128 will
probably fry epichord's brain, and values greater than 65535 will cause
the midi file saver to fail.
2009-05-08 16:30:06 -05:00
EvanR 58b8d1ad46 Triplet resize works better now, sorta.
But really the q_tick variable needs to be changed to reflect
the triplet quantization. Actually that will not work if the
ticks cannot be divided by three. Once I change TICKS_PER_BEAT
this will not be a problem of eigth note or sixteenth note
mode, but not necessarily for others. Must investigate further.
2009-05-08 15:51:17 -05:00
EvanR 504489175e Unhardcoded ticks per beat. Fixed triplet bugs.
Replaced obvious 128s with TICKS_PER_BEAT. Will now begin
testing to see if 128 can be changed to 288 or more for the
purposes of allowing correct triplets.

Inserting triplets works better now. Probably more triplet related
bugs in the pattern editor.
2009-05-08 15:38:28 -05:00
evan 0ad734a7ef Added triplet quantization.
This was a much wanted feature. Toggle the triplet button in
the pattern editor and notes will snap to time positions which
are as close to thirds of grid vertical rules as possible. The
quantization resolution settings affect what exactly is being
divided in three.

At this time there is a bug. A beat is divided into 128 ticks which
is not divisible by three. This is semi hard coded and needs to be
made configurable at compile time. A default value of 288 would make
more sense.
2009-05-08 00:06:51 -05:00
evan 2b14d63d13 Fixed bug in midi input pass-through.
The selected track's port is now used as the output port
for the input pass-through, aka record pass-through. The
bug was that changing tracks didnt affect which port was
used.
2009-05-04 19:28:24 -05:00
EvanR d05a3f7feb Mousewheel scrolls pattern editor. 2009-02-03 16:45:25 -06:00
EvanR 147382fc5a Fixed bug in resize again.
These bugs have been caused by logical errors
in the manipulation of the pattern data (linked
list). In particular when new and old events
accidentally refer to themselves or no-longer
-existing events. More bugs surely remain.
2009-02-03 15:57:14 -06:00
EvanR 7bceba38a2 Added debug keystroke to dump pattern data.
The keystroke is control d.
2009-02-03 14:52:34 -06:00
EvanR 3e4ed6ef91 Fixed bug in loading config file.
It did not set the backend to send or not the
track init events. Fixed.
2009-01-27 22:48:39 -06:00
EvanR 2b768dec58 Fixed bug in lash support.
If other windows were open besides the main window,
lash quit messages did not end the program. Fixed.
2009-01-27 22:22:21 -06:00
EvanR faec01e7a6 Added option to disable track init events.
This stops bank select, program change, channel
volume and pan on song start.
2009-01-27 20:59:25 -06:00
EvanR 3eec54a713 Fixed bug in DragBar.
Bad state variables led to not being able to scroll
back to zero easily. Fixed.
2009-01-20 11:55:04 -06:00
EvanR f1b2cb179c Added DragBar widget to replace horizontal thumbwheels. 2009-01-20 11:45:28 -06:00
EvanR 46b0858b17 Disabled a debug message. 2009-01-16 20:44:05 -06:00
EvanR c44803747a Fixed a resize bug.
Basically rewrote the resize command. Undo works.
2009-01-16 18:51:02 -06:00
EvanR f7d3b242c9 Fixed two major sequencer dispatch bugs.
Events are now sorted in time before they are
dispatched. This solves rather large timing errors
in which the kludge was to send all out of order
events and following events on the last index of
the frame buffer.

An arithmetic error was causing ticks and target
frames for events to be off by 1, sometimes. This
mostly caused the above kludge to trigger, but sometimes
resulted in a negative target frame (zero minus one).
That would cause a segfault.

Fixed.
2009-01-15 21:23:27 -06:00
EvanR d823267b2d Changed the backend api somewhat. Added bpm==0 check.
dispatch is no longer a function pointer passed to the
play function in the sequencer. It is just a function
defined in the backend implementation file.
2009-01-15 18:23:18 -06:00
EvanR ecec9a50b8 Fixed bug when moving notes. 2009-01-15 17:32:57 -06:00
EvanR b7201a8002 Fixed restate after paste. Fixed some error messages. 2009-01-15 15:40:40 -06:00
EvanR 6eeaf00619 Stop resets to left loop position.
But click again and it resets to zero.
2009-01-15 15:33:40 -06:00
EvanR 7a55a36072 A canceled load or import does not erase the song. 2009-01-15 14:08:01 -06:00
EvanR c6cbd09079 Changed order of file menu items.
Because kfoltman said so.
2009-01-15 13:30:38 -06:00
EvanR 722632e26f Added pop-up file menu. 2009-01-15 09:43:03 -06:00
EvanR 1c39a1dc2a Floppy button resets after choosing menu option. 2009-01-15 09:32:24 -06:00
EvanR f4db9fa46b Fixed panel resizeable again.
Fluid spontaneously unsets resizeable.
2009-01-15 09:02:59 -06:00