New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updating Some instruments GUI #4420
Conversation
Better message for missing sndio
* First Preview of the X-Pressive Plugin (exprtk.hpp is not included, get it from my exprtk fork in the branch internal_data_functions) available keys: f- note's frequency. available only in the output expressions t- time in seconds. in the Waves (W1,W2,W3) it's in the range [0,1) key- the note's keyboard key. available only in the output expressions. v- the note's velocity (divided by 255.0 so it is in the range [0,1]). available only in the output expressions. rel- gives 0 while the key is holded, and 1 after the key release. available only in the output expressions. A1,A2,A3- general purpose knobs (you can control them with the automations). available only in the output expressions. W1,W2,W3- precalculated wave forms. can be also load from file. you can use them only in the output expressions available functions: cent(x)- gives pow(2,x/1200) rand()- random number generator. in range [-1,1). each call gives other value. randv(i)- random vector (with pseudo infinite integer cells). the values are in range [-1,1). it's stays consistent only across the note playback. so each note playback will get other vector (even on the same key). sinew- sine wave with period of 1. saww- saw wave with period of 1. squarew- square wave with period of 1. trianglew- triangle wave with period of 1. expw- exponent wave with period of 1. expnw- another exponent wave with period of 1. moogw- moog wave with period of 1. moogsaww- moog-saw wave with period of 1. you can use * % ^ / + - pow sin log pi etc. * Xpressive Plug-In: Added Release transition knob that control the "rel" variable. (the duration of transit from 0 to 1) Fixed some problems in the displays. (update display when changing A1,A2,A3, clear display with invalid expression. * X-Pressive Plug-In: Few more fixes Changed the callbacks in exprfront.cpp to be templated. Added help. Added ExprTk.hpp. some bug fixes (inf issues). Added integrate function. * Special version of ExprTk with modified license (BSL) for the LMMS project https://github.com/LMMS/lmms * Xpressive Plug-In- fixed some building errors. Added the "e" euler's constant. * Xpressive Plug-In - fix mingw64 issues * X-Pressive Plug-in: Added "trel" (time since release) variable. The integrate function can now have unlimited usage. Added selective interpolation per wave. Improved a little the random vector function. Some other improvements, code cleaning, etc... * Xpressive Plug-In: move clearGraph definition into Graph.cpp. fixed compilation errors. (oops..) * X-Pressive plug-in: updated presets names * X-Pressive plug-in added semitone function, added sample-rate variable * X-Pressive plug-in, code cleaning, changed the rendering function to achieve performace gain. * X-Pressive plug-in - fix the string counting function * X-Pressive plug-in - until somebody will find a better solution, exprtk.hpp is patched under the name exprtk.patched.hpp ... * X-Pressive plug-in - fix compiling errors. * X-Pressive plug-in - added patch file for exprtk.hpp, added last function that gives last calculated samples. moved ExprSynth to be with ExprFront for performance reasons. * X-Pressive plugin - moved the patched file back to the source tree, added .gitignore file.. * X-Pressive plugin - fix compilation error. (isnan isinf) * X-Pressive plugin - tried to fix embed.cpp problem, added new variable to the parser (tempo) * X-Pressive plugin - fixed cmake script * X-Pressive plugin - updated the license and the diff file. * Updates to ExprTk * Added return statement enable/disable via parser settings Added exprtk_disable_return_statement macro for disabling return statements and associated exceptions at the source code level. * X-Pressive plugin - updated CMakeLists.txt to use the correct flags on each platform. also added exprtk.hpp as a dependency for the patch command. Updated the exprtk diff file. * X-Pressive plugin - moved the enhanced features flag to the WIN64 installation. * X-Pressive plugin - another fix for CMakeLists.txt * Minor updates to ExprTk Updated multi-sub expression operator to return final sub-expression type. Updates to exprtk_disable_return_statement macro for disabling return statements and associated exceptions at the source code level. * X-Pressive plug-in - added try-block around exprtk calls and enabled the -fexceptions flag, so patch file is no longer needed. * X-Pressive plug-in - small fix in CMakeLists.txt * Update ExprTk to tip of branch. * X-Pressive plugin - added graph drawing feature.. * Updating exprtk.hpp to the latest upstream version
Fix scripts for shellcheck
Move the search bar on top of the file browser for the following sidebar windows: * "My Projects" * "My Samples" * "My Presets" * "My Home" * "My Computer" Add the greyed out text "Search" to the search text edit. The text is only shown as long as no text is entered in the search field. Also rename some variable names to something more meaningful. Rename the member m_l of FileBrowser to m_fileBrowserTreeWidget. Rename the following local variables in the constructor of FileBrowser: * ops -> searchWidget * opl -> searchWidgetLayout
Make the pattern names better readable by rendering them on top of a semitransparent black rectangle. Elide the text and make it render a bit more to the right.
Use the font properties that are defined in the CSS to draw the pattern labels. This provides flexibility with regards to the font properties that are used (size, font family, etc.). Adjust the CSS for the default theme and the classic theme.
Add a new CMake option WANT_DEBUG_FPE which adds the define LMMS_DEBUG_FPE if activated. Extend lmmsconfig.h.in with regards to that define. Include information about development options to the CMake output. Install a signal handler to trap floating point exceptions when starting LMMS in case it is compiled using the option described above. The current implementation of the signal handler prints a stack trace and then exits the application. Currently this option is only enabled for Linux builds due to uncertainty with regards to which of the needed headers are supported by Windows and Apple.
Uses upstream files to fix #326
Simplify the code that reinitializes the pixmap that caches the graphical representation of some TCO widgets. See comment in issue #3699.
The track height is already stored for every file that is saved. Remove a condition that prevents its retrieval from files. The removed condition was added as a fix for an issue with the number #3585927 but it was not possible anymore to find out what this issue was about.
Add a method to convert a MidiTime instance to milliseconds. Also add a static method to MidiTime that computes the time in milliseconds for a given number of ticks and a tempo. Remove the method that sets the milliseconds explicitly from Song. Replace it by a method that takes a MidiTime instance and one method that takes an amount of ticks. Remove several explicit time calculations from the implementation of Song and TimeLineWidget. Instead use the new methods.
Added support for wine-stable from WineHQ repositories.
We perform division with some Envelope and LFO variables so they mustn't be zero. They are given a minimum value of one frame ( f_cnt_t ). Since #3687 we have a compile flag to turn on debugging of floating point operations. This will currently not let you pass the Envelope/LFO initiation and this is also fixed by this PR.
Some changes made in commit e05c827 have broken the update of the time display. This commit fixes the problem by introducing a second version of MidiTime::ticksToMilliseconds which takes a double as an argument for the ticks. This new method is then used by the call to ticksToMilliseconds in Song::processNextBuffer which fixes the problem.
Add the method paintTextLabel to TrackContentObjectView. This methods implements the painting of a given text on a given painter. The new implementation does not draw any text label in case the trimmed text becomes empty. Use the method paintTextLabel to paint the text for automation patterns, BB patterns and instrument patterns. Adjust the style sheet of the classic and default theme by moving the font definition from PatternView into TrackContentObjectView so that it can be used by all inheriting classes.
Add a new property "textBackgroundColor" to TrackContentObjectView to expose the property to the style sheets. Use this property in the code that renders the text labels. Adjust the two existing style sheets.
Render the whole text if the elided text becomes empty or if it only contains one character, i.e. if it becomes "…". Solved as implemented because I was not able to check for "…" explicitly, i.e. the comparison against "…" still failed.
Add back the rendering of text shadows for pattern labels. If some design does not want shadows beneath the text it's always possible to set the CSS property qproperty-textShadowColor to something completely transparent.
Sync zyn plugin with zyn repo fixes
* Respect build options in ExportProjectDialog * Use QItem user data instead of hard ordering to identify export format in ExportProjectDialog * For compatibility with QVariant, ExportFileFormats is now explicitly an int. * Don't break out of format identifier loop prematurely in Song export.
Still uses absolute positions without any transformations. Some refactorings/changes to make the code better understandable and concise.
Compute the height of the potential text field before rendering the melody pattern so that we can use that information later. Transform the painter so that notes drawn into a [0,1] x [0,1] coordinate system are drawn at the correct position on the pattern widget. Add code that moves the pattern notes smoothly under the text label in case there is not much space, i.e. for narrow patterns. Notes are drawn as filled rectangles with a slightly darker border. Always draw at least an octave of notes onto the pattern, so that patterns with just a single note will not look strange, i.e. that they are not filled completely with the note. If there is additional space to fill it will be rather filled at the top of the pattern so that single notes have a high chance of being drawn below the pattern text. Simplify the drawing of the inner and outer border. Use numeric_limits to initialize the minimum and maximum key. Remove some redundant checks whether the pattern holds notes and decrease the indentation depth by two tabs for most of the code.
* Add f2 as a FX mixer rename shortcut. Enter doesn't work yet. * Add both enter keys, remove code duplication * Fix renaming with enter/return * Clean up
While we're at it, make fistp an inline function. Type safety is nice.
The rest of LMMS is built against it, and almost every flavor of MinGW should support it these days.
* Give our threads names It helps with debugging. * Use Q_OBJECT macro to automatically name threads. By default, QThread sets its name based on the Qt meta class. To get an accurate metaclass, the class which inherits QThread must declare Q_OBJECT in its header. Futhermore, Qt's MOC requires that a Qt type be the primary base class when declaring Q_OBJECT, hence the order of base classes has been rearranged for some classes.
# Conflicts: # include/MixerWorkerThread.h # src/core/MixerWorkerThread.cpp
Same thing but less verbose.
* Bug fix in peak_controller_effect.cpp This change makes it so that when an LMMS project is loaded, each knob connected to a Peak Controller will be set to the Peak Controller's Base value, rather than its minimum possible value.
… its poles incorrectly set by the HP filter model. This resulted, in an unusable LP48 filter. This fixes the above.
Fix one of Equlizer LP48 filter taking HP value
Equalizer plugin has antialiasing enabled in the spectrum analyzer
Yeah, this pull request is definitely not right. It looks as though you tried to merge from your master branch into our stable1.2 branch. Master is way ahead of stable1.2. When you create the merge request, you should select our master branch as the branch to merge into. It should say something like
Upon further inspection, it doesn't look like you have forked the repo yet, or that if you have you haven't pushed it. I can't see the repo on your page. This means that the merge likely doesn't contain any of your artwork. This will need to be run by our assets team anyways, and so if they accept the change then one of them could create the pull request. On that note, tagging @Umcaruje. |
You are saying i have to post some of mine , right? Then i will do it Ah, and sorry for that but i don't know how to use github and i know i have done something wrong, i said sorry in the first post |
Here there are 7 skin I made: https://imgur.com/a/osfSvXO |
Yeah no, I'm not blaming you. I'm just confirming that the PR is not correct. This doesn't mean you can't contribute, it just means it might be easier to give the files to our assets team and have them put them in :) Thanks for linking the images! |
P.S., the those LB302 skins look very good! |
Thanks! I spend some times on them, so i appreciated your comment! :) |
This is an abstraction for the name of the 'Ctrl' (or equivalent) key on linux, windows and apple
# Conflicts: # src/gui/widgets/EffectView.cpp
@RoxasKH I close this PR for now. Here are instructions on how to fork lmms: PS. Cool artwork! |
I know that on this discussion (#3534), they have decided not to do it in view of new one window LMMS, but i think it will need a lot of time programming it, so why not redesign instruments to give LMMS a new and fresh GUI. Also it will be more attractive for users, and TripleOscillator has been already redesigned and implemented, so...
For example a LMMS user create a cool new artwork and icon for Patman, here.
It should looks like this:
And also i'm working on a skin for LB302
P.S. I'm sorry if i made some mistakes, i don't know how to use github.