| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: giada | Distribution: openSUSE Tumbleweed |
| Version: 1.5.0 | Vendor: openSUSE |
| Release: 1.1 | Build date: Sun Jul 5 12:49:46 2026 |
| Group: Unspecified | Build host: reproducible |
| Size: 11707549 | Source RPM: giada-1.5.0-1.1.src.rpm |
| Packager: https://bugs.opensuse.org | |
| Url: https://giadamusic.com | |
| Summary: Sampler Audio Tool | |
Giada is an audio tool for DJs and live performers. Up to 32 samples may be loaded or recorded, and may be played in single mode (drum machine) or loop mode (sequencer). The keyboard can be used to control this.
(AGPL-3.0-only OR GPL-2.0-or-later) AND GPL-3.0-or-later AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND OFL-1.1 AND Zlib
* Sun Jul 05 2026 Edgar Aichinger <edogawa@aon.at>
- Update to version 1.5.0:
* Prepare version 1.5.0
* Allows MIDI-generating plugins to forward their output to subsequent plugins
* [Refactor] Move PluginAudioPlayHead to separate source file
* [Refactor] Rename PluginHost::Info class to PluginAudioPlayHead
* PluginsApi: remove unused method
* Pass PPQ (as in JUCE's position-per-quarter-note) value to Plugin via juce::Playhead
* c::Plugin: forward-declare Plugin and PluginParameter
* [Refactor] Move PluginParameter outside of Plugin class
* [Refactor] gdPluginList: cleanup plugin list navigation bounds checks
* c::Plugin: don't cache 'hasEditor' property
* Add missing 'sampleRate' value to patch (#802)
* gePluginElement: avoid extra copy of c::plugin::Plugin object
* [Refactor] c::plugin::Plugin: remove access to underlying ptr
* c::plugin: remove unused function
* [Refactor] Don't use vector of m::Plugins in c::plugin::Plugins, use c:: type
* c::plugin: remove unused function
* [Refactor] Simplify parameter fetching in gePluginParameter
* [Refactor] Use vector of c::plugin::Param in c::plugin::Plugin in place of raw indexes
* [Refactor] Pass m::Plugin::Parameter ref to c::plugin::Parameter object
* [Refactor] Swap plug-ins by ID, not by m::Plugin* ptrs
* [Refactor] Remove swapPlugin() method from PluginHost
* [Refactor] Remove all plug-ins in a channel by ID, not by vector of m::Plugin ptrs
* [Refactor] Remove plug-ins by ID, not by m::Plugin ptr
* Plugin: stop caching the 'hasEditor' property
* UI: optimize plug-in parameter repaint in gdPluginWindow
* gdPluginWindow: add updateParameter() method
* gdPluginWindow: add assertion + tidy up code
* [Refactor] Change c::plugin::Param member name
* Remove old params methods from m::Plugin, use new approach
* Plugin: remove midiInParams public member
* Plugin: add getParameters() accessor
* Plugin: prepare vector of Parameter objects
* Add new Plugin::Parameter class (unused)
* geBox: redraw when setting new label
* Sequencer: fix comment
* [Refactor] Use TimeSignature in place of raw beats/bars variables
* gdMainWindow: fix spacing around main menu
* geMainWindow: simplify flex structure
* Update project name on save + remove unused function
* gdMainWindow: make variable private
* gdMainWindow: show version number in footer
* Limit maximum CPU load value to 100.0
* Increase master I/O VU meters precision
* UI: display project name in main window footer
* UI: show 'Giada' + version number in main window title
* [Refactor] geBox: add getter/setter methods for label, delete old ones
* geBox: use v::drawings function for draw() method
* geBox: add ability to customize text color
* gdMainWindow: avoid variable shadowing
* UI, mainWindow: display CPU load widget in footer
* UI, mainWindow: add new footer (empty)
* Add API for CPU load display
* UI: add new geCpuLoad widget
* Enable CPU load computation (core only)
* model::Shared: Add new Shared from KernelAudio
* model::KernelAudio: add internal Shared object with CPU load atomic variable
* Don't lock the document while saving the project (#799)
* SampleChannel: remove unused methods
* Prevent creating invalid FrameRange when de-serializing JSON
* gePianoRoll: simplify onRefreshAction()
* gdBaseActionEditor: simplify pixelToTick() method
* Action Editor: simplify even more MIDI action handling
* Revert 042fad599f8dcebf4c89b2124a892ce7bc848eef
* Simplify action handling for Sample Channels in PRESS mode
* Action Manager: remove wrong assertion
* Action Editor: fix toTickRange conversion for sample actions
* geBaseActionEditor: simplify even more toTickRange() method
* geBaseActionEditor: rework toTickRange method
* geBaseActionEditor: pass ActionEdit enum to onRefreshAction() (unused)
* geBaseActionEditor: tidy up header file
* [Refactor] move toTickRange() from gdBaseActionEditor to geBaseActionEditor
* geGridTool: refactor member name
* Action Editor: fix grid rendering
* geGridTool: refactor method name
* geBaseActionEditor: use correct type for grid drawing
* gePianoRoll, geSampleActionEditor: simplify onResizeAction() method
* gdBaseActionEditor: allow 1 tick actions
* geSampleActionEditor: add nullptr check
* Action Editor: simplify onRefreshAction() method in both PianoRoll and SampleActionEditor
* geBox: remove getBounds() method
* geEnvelopePoint: fix constructor
* Actions: simplify rec() method with no calls to findAction()
* Actions, ActionManager: remove unused methods
* [Refactor] Avoid passing around multiple copies of Actions from model to Action Editor
* ActionManager: DRY + add more asserts
* [Refactor] Use ID instead of Action refs for action operations
* geBox: add getBounds() method
* geBox: make draw() method as protected
* geBaseAction: use geBox as parent class
* Update mcl-utils dep to fix build error on macOS, again
* Update mcl-utils dep to fix build error on macOS
* Update geompp dependency
* Add TODO notes
* Remove unused code, fix method name
* Action Editor: restore snap to grid
* utils::time: add quantize() for Tick
* Sequencer: adjust quantize() method to work tick-based
* Update mcl-utils submodule
* Don't write old 'sampleRate' value from Patch on save
* Add support for old patches with frame-based actions
* Sequencer: make sure actions are actually in the current block
* u::time: add frameToTickRound() function
* Sequencer: remove unused method
* Don't pre-compute frames in model::Sequencer, just do it on the fly when needed
* Tick: add support for % operator
* Move currentTick computation to model::Sequencer
* Remove 'frame' property from Action struct
* ActionManager: fix const correctness in consolidate() method
* model::Actions: update comments
* [Refactor] Dry model::Actions private method
* model::Actions: remove unused methods
* Enable tick-based live recording
* ActionManager: remove old unused method
* model::Actions: use tick-based exists() method in rec()
* Update action persistence code to use tick instead of frame
* [Refactor] Sequencer: better name for Block struct
* Remove all frame recomputation on bpm/samplerate change
* Sequencer: enable tick-based rendering
* model::Actions: sort actions by tick
* Add new frameRangeToTickRange utils function
* [Refactor] Rename SampleRange -> FrameRange for consistency with TickRange
* ActionManager: remove deprecated methods, update tests
* Action Editor: show tick-based playhead
* Sequencer, MainApi: add getCurrentTick() method
* c::ActionEditor::Data: remove old members
* BaseActionEditor: use correct type in std::min function
* BaseActionEditor: adjust tick-based zoom
* SampleActionEditor: display actions tick-wise
* Enable adding/moving new tick-based sample actions
* Cleanup some deprecated/unused functions
* Enable move tick-based MIDI actions around
* ActionManager: mark updateMidiAction() method as deprecated
* UI: initial tick-based painting in Action Editor
* Sequencer: add more utility functions (unused)
* model::Actions: debug actions by tick
* Record tick-based MIDI actions
* ActionEditorApi: add new tick-based recordMidiAction() method (unused)
* Utils: add tick <-> pixel conversion functions
* model::Sequencer, Sequencer: add getTicksInLoop() method (unused)
* model::Sequencer: use TimeSignature object + encapsulation
* Add new TimeSignature type
* [Refactor] model::Sequencer: make bpm member private
* Change G_PPQ type to Tick
* Tick: add more operators
* ActionEditorApi: mark recordMidiAction() method as deprecated
* ActionManager: add new tick-based recordMidiAction() method + utilities
* model::Actions: add new tick-based rec() method + TickRange alias
* model::Actions: mark another rec() method as deprecated
* Mark G_DEFAULT_ACTION_SIZE as deprecated, add new tick-based one
* ActionRecorder: mark rec...() methods as deprecated
* model::Actions: add new tick-based rec() method (unused)
* model::Actions: mark rec() method as deprecated
* ActionFactory: add new makeAction() method (unused)
* ActionFactory: mark makeAction() method as deprecated
* Action: add new 'tick' member (unused)
* Bump version to 1.5.0
* Sequencer: optimize actions parsing by moving it outside the main block loop
* Undo 'Sequencer: simplify 'sceneChanged' code in advance() method', was wrong
* model::Actions: cleanup
* model::Actions: sort actions on set() method
* Update rendering engine to work with new Sequencer::Event type
* Sequencer: fill EventBuffer with actions coming from the std::span
* Sequencer: add internal ActionsBlock struct (still unused)
* Sequencer: use new Block object for event parsing in advance()
* Sequencer: add internal Block struct (still unused)
* Sequencer: simplify 'sceneChanged' code in advance() method
* Sequencer: add comments
* Sequencer: use SampleRange in advance() method instead of raw start/end values
* Sequencer: mark 'actions' member in Event struct as deprecated
* model::Actions: add getActionsInSampleRange() method (still unused)
* Deserialize actions with new container
* model::Actions: remove more deprecated methods
* ActionFactory: update serializeActions() to use new Actions container
* model::Actions: rework hasActions() method to use new container
* model::Actions: rework clearAll() to use new container
* model::Actions: rework updateSiblings() to use new container
* model::Actions: rework updateEvent() to use new container
* model::Actions: rework updateKeyFrames() method to use new container
* model::Actions: remove removeIf() method, use mcl::utils
* model::Actions: add new getAll() method, remove forEachAction
* model::Actions: mark getAll() method as deprecated
* model::Actions: remove unused method
* model::Actions: remove findAction_DEPR_, adjust new ones
* model::Actions: rework getActionsOnChannel() to use new container
* model::Actions: rework rec() method (for live recording) to use new container
* model::Actions: rework rec() method to use new container
* model::Actions: add private findAction() method based on new container
* model::Actions: mark findAction() method as deprecated
* model::Actions: rework debug() method to support new container
* model::Actions: reimplement rec() method based on new container
* model::Actions: add new private sort() method (still unused)
* model::Actions: add new exists() private methods (still unused)
* model::Actions: mark private methods as deprecated
* model::Actions: add std::vector<Action> container (still unused)
* model::Actions: mark m_actions map as deprecated
* Add utility functions for Frame <-> Tick conversions
* Add new Tick type
* Prepare release 1.4.2
* [Linux] Fix broken build
* Fix sample channels being killed abruptly on scene change (#792)
* [Refactor] Change method name
* Remove VST logo in About window (#798)
* model::Sequencer: add recomputeFrames() method
* Add model::Sequencer::reset() method
* Sequencer: remove unused method
* Sequencer: store current sample rate internally
* JackTransport: add isAvailable() method (still unused)
* Add ability to copy the whole scene to another (#766)
* [Refactor] Rename ActionRecorder -> ActionManager
* Add ability to force-change a scene (#764)
* Add scene support to 'edit -> clear all actions' function (#787)
* ChannelsApi: join two functions
* Fix label text
* ChannelManager: minor optimization to free sample channel algorithm
* Add scene support to 'edit -> free all sample channels' function (#787)
* UI: add missing popup labels to scene buttons (#785)
* geScenes: DRY
* Bump version to 1.4.2
* Update copyright date
* Sun May 24 2026 Edgar Aichinger <edogawa@aon.at>
- Update to version 1.4.1:
* Prepare version 1.4.1
* [Packaging] Mark macOS build as arm64 (part 2)
* [Packaging] Mark macOS build as arm64
* Sample Editor: prevent range, pitch, shift and reload tools to get stuck in 'deactivated' state when switching between scenes
* ChannelManager: always set pitch and range on Scene 0 for internal Preview Channel (fixes #788)
* Update FLTK to 1.4.5
* ActionRecorder: fix wrong logic in copyActions method (#790)
* ActionRecorder: fix wrong logic for clearing actions in channel (#789)
* Fix potential crash when loading a new project
* [Linux, CI] Add missing dependencies
* [Vcpkg] Set new baseline
* Update JUCE to version 8.0.12
* gePluginWindow: small UI tweaks
* gePluginParameter: use geFlex for layout
* Plugin: improve audio buffer copy robustness
* Plugin: fix wrong copy between audio buffers before processing audio
* Plugin: clear internal buffer on initialization
* Plugin: log more plug-in info on initialization
* Improve support for plug-ins with complex buses layout
* ChannelManager: DRY
* Revert scene status tu IDLE when transport stops (#783)
* Fix inability to play samples once removed from a scene (#786)
* Fix wrong Wave deletion when freeing a sample channel
* Remove obsolete 'export sample...' function
* Add ability to rename a channel in all scenes (#767)
* Fix invalid usage of Scene when creating invalid scene objects
* File browser: don't browse project folders (#784)
* Increase text contrast for inactive scene buttons
* Ability to undo a scene change when transport is running (2nd take) (#763)
* DRY
* Revert "Ability to undo a scene change when transport is running (#763)"
* Ability to undo a scene change when transport is running (#763)
* Bump version to 1.4.1
* Display inactive scenes (i.e. with no audio or actions) (#765)
* gePlayButton: optional text color for default state
* Encapsulate c::main::Scenes() object properties
* Remove unused private field
* Add ability to find actions by Scene (still unused)
* Avoid magic number
* Engine: prevent assertion on Sequencer::onSceneChanged
* Fix plugin browwer empty crash (#775)
* Remove debug std::cout
* Patch: fix wrong Action::scene type
* Update mcl-utils dependency
* channelFactory: avoid raw loop
* Fix 'save sample' feature with current scene taken into account
* API: remove unused code
* Update mcl-utils dep and remove useless casts
* PatchFactory: explicit conversion json -> std::size_t when constructing ID
* Fix G_INVALID_SCENE constant
* Scene: minor touches to isValid() method
* Add missing file
* Better encapsulation for Scene properties
* PatchFactory: brace-init ID object
* Replace ID alias with stronger mcl::utils::Id type
* Fix formatting
* Revert geChoice::ID type to 'int'
* [Refactor] Update mcl-utils and use vector.hpp -> container.hpp
* Replace std::size_t for scene with stronger type Scene
* Remove m::Channel::hasActions flag and updates all functions accordingly
* Don't read m::Channel::hasActions, always query dynamically
* Clean up unused methods and structs
* Fix logic for disabling 'free input rec' button, taking scenes into account
* Add TODO comment
* Persistence for scenes MIDI learnings (#762)
* model::MidiIn: default initialize scenes
* Add missing file
* MIDI bindings for scenes buttons
* MidiDispatcher: DRY - use local reference
* MidiDispatcher: turn Switch-case into if-else
* Fix includes in src/types.h
* [macOS] Make enumerate() work on Apple Clang
* geTabBindings: remove hardcoded string, use i18text label
* Fix clear keyboard bindings (#770)
* geKeyBinder: simplify setKey() method
* geKeyBinder: move assert in the right position
* geKeyBinder: DRY
* Add TODO comment
* Enable persistence for scene key bindings (#762)
* Add ability to bind keys to scene buttons (no persistence) (#762)
* Fix u::gui::keyToString() to print normal keys too
* geScenes: simplify code
* Enable scene switching via keyboard (bindings still hardcoded)
* Tracks: prevent local variable shadowing
* Update mcl-utils dependency
* appstream: Fix invalid markup
* Update changelog
* Minor tweak to some LangMapper labels
* update mcl-utils dependency
* Optimize imports
* DRY a couple of u::fs functions
* Use getConfigDirPath() from mcl-utils in u::fs::getConfigDirPath()
* Use join() from mcl-utils
* Use isValidFileName() from mcl-utils
* Use getUpDir() from mcl-utils
* Use stripFileUrl() from mcl-utils (alias of uriToPath())
* Use getExt() and stripExt() from mcl-utils
* Use basename() and dirname() from mcl-utils
* Use getRealPath() from mcl-utils
* Remove unused function u::fs::getCurrentPath()
* Use mkdir() from mcl-utils
* Remove unused function u::fs::isRootDir()
* Use fileExists(), dirExists() and isDir() from mcl-utils
* Update mcl-utils dependency
* Use string utils from mcl-utils
* Use vector utils from mcl-utils
* Utils: use std::size_t for index parameter in vector::atOr
* Remove silly second overload of u::vector::findIfSafe
* Remove silly u::vector::findIfSafe function
* Use sleep() from mcl-utils dep
* Fix non-existing include
* Add mcl-utils dependency and use it in place of u::utils::math
* Fix broken 'clear actions' submenu in MIDI channel
* Blink upcoming scene button
* UI: add playButton::blink() method
* Revert "UI, geMenu: allow for special FLTK chars in addItem() method"
* geSampleChannel: disable 'free' menu item if the channel has no Waves
* geMenu: assert if adding existing items
* geMenu: add private method to find item by ID recursively
* Fixup wrong channel menu IDs
* geMenu: ability to add proper sub-menus
* Remove unused include
* UI: improve 'Scene' button presentation
* UI: use gePlayButton as base class for geChannelButton
* UI: add new gePlayButton widget
* geScenes: avoid raw loop
* Keep track of scene status (idle or changing)
* Upgrade and pin libsndfile dependency to 1.2.2
* vcpkg.json: minor fixup
* Upgrade and pin rtmidi dependency to 6.0.0
* Remove extra ';'
* Upgrade and pin nlohmann-json dependency to 3.12.0
* Update and pin catch2 dependency to 3.11.0
* Upgrade and pin fmt dependency to 12.0.0
* [CI] Upgrade to macOS-14
* Channel: add ability to clear actions in this scene or all scenes
* Add ability to free a sample channel in the current scene or in all scenes
* u::vector: add new range() function
* Don't clear actions when free'ing a sample channel
* Enable 'copy to scene' operation also for Group Channels
* Add TODO comments
* [Refactor] Optimize some imports
* [Refactor] UI: simplify 'copy to scene' sub-menu creation for channels
* Fix wrong channel name when copying a sample channel to scene
* Change how scene is selected during Action advance
* [Refactor] Use switch-case in m::rendering::advanceMidiChannel()
* Sequencer: fix glitch on loops when changing scene
* [Tidy] Fix spacing
* SampleEditor: show scene number in title
* c::SampleEditor: remove unused private Data member
* UI: print scene number in Action Editor title
* Add new gdWindow::setTitle() method
* c::ActionEditor: add support for scenes
* Remove unused code from c::actionEditor
* Update JUCE to 8.0.10
* ChannelManager: delete all Waves from all scenes on deleteChannel()
* UI: enable 'copy to scene' command on channels
* geMenu: addItem() overload with support for text as std::string
* ChannelManager: don't overwrite an existing Wave when copying channel to scene
* ChannelManager: fix missing channel name on copy to scene
* ActionRecorder: fix wrong scene index when cloning actions
* F
* UI, geMenu: allow for special FLTK chars in addItem() method
* UI: beautify scene selector
* UI: always copy label in geTextButton
* UI: add optional padding to geTextButton
* Sequencer: fix scene selection when not running
* [Refactor] ChannelManager: remove unused dependency
* ChannelManager: fix cloneChannel() method
* API: add ability to copy channel to a certain scene (still unused)
* ActionRecorder: change return type of cloneActions() method
* [Refactor] ActionRecorder: remove unused code
* ActionRecorder: add new copyActionsToScene() method
* Add TODO comment
* Update geompp dependency
* [Refactor] DRY SampleChannel
* SampleChannel: rewrite setSample() method
* Update geompp dependency
* Fix initialization
* Add backward compatibility to projects created with Giada < 1.4.0
* Sequencer: early return in advance() when it's time to change scene
* Enable persistence for Patch::Action::scene member
* Swap model when the scene changes to update channels content
* Action playback with scene support
* Action recording with scene support
* Input recording with scene support
* Fix formatting
* SampleEditor: add support for invalid Wave data
* [Refactor] Use Sample struct in c::SampleEditor::Data
* Load sample in Sample Editor with scene support
* Implement 'shift' in Sample Editor API with scene support
* Implement channel clone with scene support
* UI: prevent glitches when switching scene and a sample is still playing
* Move 'pitch' to Sample struct
* Move 'shift' to Sample struct
* [Refactor] SampleChannel::loadWave() -> SampleChannel::loadSample()
* [Refactor] Channel::loadWave() -> Channel::loadSample()
* [Refactor] Add m::Channel::isActive() method
* Pass SceneArray<Sample> to SampleChannel during deserialization
* Channel: load names from Patch
* Use SceneArray as type for Patch::names to ease de-serialization
* Patch: remove unused 'range' value
* Print Sample info in Channel::debug()
* Move Sample struct declaration to src/types.h
* Store Channel waves in Patch
* Add new SceneArray alias template
* Multiple Channel names, one per scene
* [Refactor] Make Channel::name member private
* Show correct Wave according to current scene in Sample Editor
* UI: lit current scene button
* [Refactor] Better range+wave encapsulation with SampleChannel::Sample struct
* SampleChannel: add support for scenes in sample range
* [Refactor] Set SampleChannel::range member private
* Sequencer::setScene method
* Sequencer: make 'currentScene' atomic
* [Refactor] Sequencer::setScene -> forceScene
* [Refactor] scene -> currentScene
* Pass scene index to c::channel layer
* Let Reactor take care of scene change
* Enable sample rendering with scenes (raw)
* UI: add Scenes widget
* Ability to change scene via API (still unused)
* Initial support for scenes in ChannelManager (not used)
* Initial support for scenes in SampleChannel (not used)
* Bump version to 1.4.0
* Prepare release 1.3.1
* [Tidy] Modernize loop
* PluginManager: avoid copying invalide states while cloning plugins
* Update RtAudio to latest master + patch
* Patch: fix faulty Channel::range initialization
* Patch: add default values to all members
* PatchFactory: refactor modernize() function
* PatchFactory: split modernize() function into modernize() and sanitize()
* PatchFactory: don't reset pan for non-sample-channels
* KernelAudio: prevent assertion/crash if JACK has no sample rates available to choose from
* Plugin: fix parameter copy when cloning (#749)
* Wed Sep 24 2025 Andrea Manzini <andrea.manzini@suse.com>
- Update to version 1.3.0:
* This release introduces support for multiple audio outputs
(more than stereo). It is now possible to have multiple audio channels,
each of which sends the signal to an external hardware output or internally
to another software for multitrack recording of your live performances.
* Improved JACK support allowing for multiple output connections;
* UI: improved and beautified Plug-in Browser window;
* Update FLTK to 1.4.4;
* Refactoring and code gardening.
* Sun Jul 06 2025 Konstantin Voinov <kv@kott.no-ip.biz>
- Update to version 1.2.1:
* Beautify UI layout in Audio Configuration Window
* Disable sample rate and buffer size menus when using JACK in Audio Configuration Window
* Reset project name when closing a project (#744)
* File browser refactoring with improved usability
* Fix double click on scrollbar arrows in File Browser loads a non-existing project (#735)
* Fix wrong default height for all sub-windows
* Fix Loop mode not working in Sample Editor (#723)
* Fix missing first MIDI action recorded with "record-on-signal" mode (#732)
* Set minimum C++ version to C++23
* Update minimum CMake requirements to 3.29
* Update JUCE to 8.0.8
* Update FLTK to 1.4.3
* Refactoring and code gardening
* Wed May 14 2025 Konstantin Voinov <kv@kott.no-ip.biz>
- Update to version 1.2.0:
* Add support for multiple MIDI devices (#215)
* Preserve position and size of 'Settings' window
* Fix wrong name in cloned sample channels (#725)
* Update concurrentqueue dependency to version 1.0.4
* Update FLTK dependency to 1.4.2
* More CMake presets improvements
* Refactoring and code gardening
* Sat Mar 22 2025 Andrea Manzini <andrea.manzini@suse.com>
- Update to version 1.1.1:
* Render Group Channels audio data to master output only if audible (#709)
* Fix MIDI out information not being refreshed properly on MIDI channels (#717)
* Fix MIDI actions not being added on the rightmost edge in the Action Editor (#716)
* Fix FX buttons not being properly lit (#712)
* Fix ChannelShared objects not being deleted on Channel deletion (#695)
* Fix wrong play mode for sample channels in one-shot retrig mode
* Fix missing last sample when moving or resetting 'end' point in Sample Editor
* Fix last audio sample not being played in sample channels
* Fix inability to clear Channels' key bindings (#708)
* Fix Main Window size not being stored correctly (#713)
* Update FLTK dependency to 1.4.0-1
* Add basic CMakePresets.json file
* Many other minor bugs and typos fixed
* Lots of refactoring and code cleanups
* Sat Nov 09 2024 Konstantin Voinov <kv@kott.no-ip.biz>
- update "exlude from all" patch
- add more BuildRequires for Wayland support
- rename 003-cmake-exclude-juce-from-all.patch to 003-cmake-exclude-juce_and_fltk-from-all.patch
* Thu Oct 31 2024 edogawa@aon.at
- Update to version 1.1.0:
* Show 'Add track' menu when right-cliking on empty area on main Keyboard
* Refactor method name
* Add input-only MIDI activity widget to Group channels
* Update vst3sdk submodule
* Update FLTK to latest master (#701)
* Undef 'small' macro on Windows to avoid compilation error with JUCE 8.0.1
* [CI] Don't install extra Windows dependency for Visual Studio
* [CI] Update Windows runner to 2022
* [CI] Fix deprecation warnings (#685)
* Update JUCE to 8.0.1
* Add MidiDispatcher::processTrack() method with other adjustments
* Refactor: MidiDispatcher::processChannel() method
* Add new model::Tracks::getChannels() method
* Add new 'Setup MIDI input' menu element to Channel Group
* UI: prevent Channel Group from being dragged around
* Avoid useless operation when removing a Track
* Rebuild Tracks indexes after removal
* DRY
* Remove useless Channel& return type when cloning a Channel
* Remove unused function parameter
* Better encapsulation for Channel removal from Track
* Tidy: apply clang-format globally
* Fix inability to remove a track, even if empty
* Add missing 'typename' in template function
* Refactor: rename all 'column' references to 'track'
* Add support for old patches with new Track-based architecture
* Fix PATCH_KEY_TRACKS constant
* Fix assertion raised by test
* Fix broken test
* Fix assertion
* Add support for muting groups
* Add support for solo-ing groups
* Pass keyPress/keyRelease/keyKill event from groups to children
* Refactor: Column -> Track in glue layer
* Set track width with new API
* Remove useless v::Model methods
* Move Channels via new Track model
* No longer update v::Model when adding/removing/cloning channels
* Remove Track via new Track model
* Add Track via new Track model
* Refactor: rename Column -> Track in v::Model
* Display Channels by tracks in main UI
* Create new geGroupChannel from geColumn
* New geGroupChannel widget
* Remove model::Channels object from model::Document
* Enable Tracks debugging in model::Document
* Track de-serialization
* Tracks serialization
* Add model::Channels::getAllIDs() utility method
* Refactor: change Patch::Column to Patch::Track
* Clean up Tracks in Model::reset()
* Track-based IO operations
* Track-based ChannelManager operations
* Track-based Action recording
* Track-based MIDI dispatchment
* Track-based PluginsApi
* Track-based rendering
* Make Reactor work with Tracks
* Add Channels to Tracks
* Prepare internal tracks with internal channels and render them
* Add new ChannelManager::addTrack() method
* Remove unused method from ChannelsApi and ChannelManager
* Add channelsApi::getTracks() method
* Add m::model::Tracks object to Document
* Add new m::model::Track and m::model::Tracks classes
* Add m::model::Channels::add() method, to add a Channel at a certain position
* Add m::model::Channels::getIndex() method
* Add m::model::Channels::find() method
* Add group capability to u::string::toString
* Add new ChannelType::GROUP enum value
* Mark m::Channel's comparison operator as const
* Add new utils vector findIfSafe function, based on ID
* Add also header files to CMakeLists.txt SOURCES list
* Fix CMakeLists.txt indentation
* Clang-format: fix Lambda body indentation
* Optimization: add channels to Model by moving instead of copying them
* [CI] Increase the number of CMake jobs for Windows and Linux
* [CI] Upgrade macOS runner to macOS 12.7.5
* Bump version to 1.1.0
* Refactor: DRY parameter
* Add 'index' property to v::Model::Column
* Fix formatting
* Add v::Model::Columns::addDefaultColumn() method
* Use proper class for v::Model::Columns
* Refactor Model::addColumn() to take a 'Column' parameter
* Fix formatting
* Refactor: use temporary local variable
* Revert "Refactor: change parameter type in Renderer::advanceChannels() method"
* Fix formatting
* Refactor: change parameter type in Renderer::advanceChannels() method
* Refactor: move plug-in rendering functions to separate files
* Update AudioBuffer dep
* Make WeakAtomic moveable
* Remove old Queue object, use ConcurrentQueue everywhere
* Rename model::Model's method name, add comments
* Use model::Document::store/load methods in Model class
* Add model::Document::store/load methods for Conf (still unused)
* Use model::Document::store/load methods in Model class
* Add model::Document::store/load methods for Patch (still unused)
* Late model::Shared lock when storing data
* Use model::Shared::store() in model::Model
* Use model::Shared::load() in model::Model
* Add model::Shared::store() and model::Shared::load() (still unused)
* Add m_ prefix to all private members in model::Shared
* Add model::Shared::findChannel() method
* Add 'id' property to ChannelShared data structure
* Move model/LoadState to separate file
* Split Channel and Shared deserialization
* Const-correctness
* Refactor: rename model's DataLock -> SharedLock
* Use model/Shared class in model/Model
* Add model/Shared class (still unused)
* Move model/DataLock to separate file
* Update atomic-swapper dependency
* Move Model's type definitions to separate file
* Move model/Document to separate file
* Simplify includes in model/KernelMidi
* Refactor: rename model::LayoutLock -> model::DocumentLock
* Refactor: change model::Layout -> model::Document
* Refactor: pass MidiEvent around by reference when sent to channel, forward declare it where possible
* Refactor: remove Model dependency from c::channel, forward declare and include what's necessary
* Refactor: add some private methods to Renderer, using explicit rendering:: namespace qualifier
* Refactor: remove forward declaration of struct Action, import it instead
* Remove unused method from geChannel
* Remove duplicated c::channel::Data object in geMidiChannel
* Optimize imports in core/channels/channel.{h,cpp}
* Optimize imports in glue/channels.cpp
* Add new DeepPtr class
* Sun Feb 25 2024 edogawa@aon.at
- Update to version 1.0.0:
* Extras: fix icon path in .desktop file
* Extras: change logo size to a supported resolution
* Update Changelog
* Editors: fix zoom with mousewheel
* Action Editor: mousewheel zoom now works only when Ctrl is pressed
* Sample Editor: mousewheel zoom now works only when Ctrl is pressed
* Fixup typo
* Update Changelog
* send MIDI data through armed channels to the outside world (#498)
* Make m::rendering::sendMidiToOut() function public
* Prevent invalid Sample Editor state when opening the Sample Editor window without closing it first
* Remove commented-out code
* Fixup README.md
* Update README.md file with bullet points from the main website
* Update Changelog
* Change Configuration window title and its main menu entry to 'Settings'
* Formatting
* Fix main menu on macOS
* Fix Record-on-signal mode not deactivated after recording actions
* Fix Record-on-signal mode not deactivated after recording audio (#678)
* Fix inability to quit record-on-signal mode also when recording actions
* Fix inability to quit record-on-signal mode (#677)
* Fix grid not showing up correctly in Sample Editor (#679)
* Use signed int for audio device also in Conf
* Add some more comments
* DRY some KernelAudio methods
* Let KernelAudio pick a default audio device if not specified (i.e. the first time Giada is run) (#669)"
* Use signed int type for audio device ID
* Remove wrong comment
* Let RtAudio pick the API automatically if RtAudio::Api == UNSPECIFIED
* Fixup for commit bab6ba68ce9ba092a9e855cef236260aa93eaa2c: a call to resampler.last() was missing, causing a glitch (and test failure)
* Update mcl-audio-buffer dep
* Simplify sample rendering mechanism on REWIND render mode
* Include json::parse() in try-catch block
* Fix cloned channels not being added to columns
* Don't load Wave twice in sample channel during serialization (#680)
* Simplify SampleChannel::setWave() logic
* Improve log message
* Fix log messages names in waveFactory
* rendering::onSampleEnd_ always return 'false' for 'shouldLoop' by default
* Recursive buffer rendering implementation (#538)
* Prevent assertion in geTabMidi when input or output devices are not found
* Refactor: add SampleChannel::isAnyNonLoopingSingleMode() utility method
* Refactor: add SampleChannel::isAnyLoopOnceMode() utility method
* Refresh Preview Channel properties when reloading the sample
* Remove old Range class, use geompp::Range instead
* Update copyright date
* Fix wrong channel being added when copying a sample range to new channel
* Add tests for wfx::paste() in waveFx test case
* Fix assertion during paste operation in Sample Editor
* DRY code in wfx::paste()
* Refresh Preview Channel properties on cut, trim and paste in Sample Editor
* Print extra Channel info in Channel::debug()
* Add m::Channel::debug() method
* Add utils::toString(ChannelType) function
* Always reset channel's internal volume on manual triggering
* Fix some test cases names
* Optimize audio preview rendering: enable it only when Sample Editor is open
* Move some Sample Editor-related methods from ChannelsApi to SampleEditorApi
* Remove unnecessary namespace prefix
* Update info in comment
* Add TODO comment
* Store and load column layout in Patch
* Fix version comparison algorithm in Patch::Version, add tests for it
* Remove position and columnId from Channel in model
* Move some v::Model-related functions to v::Model class
* Re-enable column resizing
* Remove Column ID, use index instead
* Move add and remove columns functions to c::channel
* Move Channels' layout storage to v::Model (part 1, no storage, m::Model still dirty)
* Pass c::channel::Data by const reference to geColumn::addChannel()
* Return geColumn reference from geKeyboard::addColumn() method
* Update comment
* Pass Model::Column object to Keyboard::addColumn() method
* Add u::vector::findIfSafe() function
* Allow non-const containers to u::vector::findIf() function
* [Linux] Prettify metainfo.xml file
* [Linux] Update metainfo.xml file
* [Linux] Remove duplicated .desktop file generation (#591)
* Change geEnvelopePoint position and color in Velocity Editor
* Print 'Velocity' in Sample Action Editor's Velocity widget
* Disable compilation of geEnvelopeEditor and envelope-related functions
* Show only MidiEvent::CHANNEL_NOTE_ON types in Velocity Editor
* Record Sample actions with max velocity by default
* Play Sample actions with velocity taken into account
* Move Channel's internal volume to ChannelShared object
* Add Velocity Editor widget to Sample Channel Action Editor
* Type deduction when mapping values in geVelocityEditor
* Draw envelope points as circles
* Tidy up debug messages in MidiDispatcher
* Use float-based velocity value everywhere
* Add more velocity-related tests to midiEvent test case
* Remove unused global constant
* Velocity and velocityFloat values are now kept in sync in MidiEvent class
* Const-correctness in geVelocityEditor
* Const-correctness in geSampleAction
* Simplify draw logic in geSampleAction
* Use compact nested namespace
* Remove unused imports by geVelocityEditor
* Remove unused forward declaration
* Bump version to 1.0.0
* Fix resizer bar height in geKeyboard
* Store column layout configuration when adding new colums
* Sort geColumn's menu items
* Fix LangMap label name and text
* Remove 'add column' button
* Always keep at least one column in geKeyboard
* Make geKeyboard::addColumn() method public
* Better enum name
* Tidy up geLiquidScroll::addWidget() method
* Mark geLiquidScroll::add() methods as deleted
* Update FLTK to latest master commit
* Set geKeyboard painting clip based on its viewport bounds
* Show scrollbars in geKeyboard only if necessary
* geScroll::getViewportBounds() now takes into account the scrollbars visibility
* Print beat numbers on Sequencer
* Simplify drawing logic of Sequencer's cursor
* Change 'Config' label name in Main Menu to something more meaningful
* Optimize some imports
* Remove unused widget geMainIO
* Tidy up margins and sizes in Main Window
* Main Window I/O redesign
* New geMainInput and geMainOutput widgets (still unused)
* Add more LangMap labels
* Add new graphic icon for Stream Linker button
* Pull out geLed class from geMidiActivity
* Add support for vertical audio meters
* Remove useless parameters from geSoundMeter's constructor
* Main Menu redesign with macOS support
* Add new LangMap entry
* Sat Dec 23 2023 edogawa@aon.at
- Update to version 0.26.1:
* Update Changelog
* Bump version to 0.26.1
* Fix crash when fetching audio device and JACK is in use
* Fix glitches in geScroll positioning inside geSplitScroll
* Fix Sample Editor not picking up Channel properties when loading a project
* Const-correctness when preparing Preview Channel
* Fix assertion when selected RtMidi API is not present in available APIs (#670)
* Add geChoice::hasItem() method
* [Linux] Follow the XDG Base Directory Specification (#338)
* Minor fixup to some help labels
* Disable 'rec-on-signal mode' button if function not available (#629)
* Disable 'free loop-length mode' button if function not available (#629)
* Disable 'record audio' button if can't record audio with better explanation (#629)
* Disable UI refresh while loading a project to prevent crashes
* Show 'missing assets' window only once the UI has been loaded
* [Windows] Fix plug-in GUI weird auto-resize when dragged around (#621)
* Adjust plug-in window size before showing it (reduce weird window flickering)
* Load wave in Channel only when type is SAMPLE or PREVIEW
* DRY m::Channel's constructor
* Add some assertions in m::Channel class
* Show correct progress in plug-in scan when multiple formats are in use
* PluginManager: tidy up code
* PluginManager: modernize scan loop
* Add ability to stop plug-in scan (#423)
* Pass progress callback to PluginManager::scanDirs() by value
* PluginManager: add ability to cancel plug-in scan
* Add support to cancellable gdProgress in gdMainWindow::ScopedProgress
* Cancellable geProgress widget
* Flex-based gdProgress window
* Add geProgress constructor without parameters
* Add some explicit imports
* Ability to sort plug-ins in both ascending and descending order (#542)
* Smarter plug-in sort mechanism
* Don't close browser twice on project load to prevent crash
* KernelAudio: prevent assertion on inputDevice.channelsStart >= 0 when applying audio changes and input device is disabled
* On project close, close all subwindows first before resetting the engine
* Ui::closeAllSubwindows() now closes ALL existing subwindows
* Beautify gdWindow::deleteChild() method
* Refactor method name in gdWindow
* DRY gdWindow delChild() method
* Refactor gdWindow cleanup into separate method
* Truncate column's help text if column is too narrow
* Print help text on columns background
* Refactor columns background drawing
* Add geScroll::getViewportBounds()
* Update geompp dep
* Leave some empty margin at the bottom of each column as drag and drop area
* geFlexResizable: add ability to set an empty margin at the end of the stack
* Pass by ref in some geFlexResizable methods
* DRY some geFlexResizable internals
* Make geFlexResizable::computeHeight() more generic
* geFlexResizable-based geColumn
* Add better support for MOVE mode in geResizerBar
* Adjust parent size when widgets inside geFlexResizable are resized in MOVE mode
* Refactor resizer bar code into separate method in geFlexResizable
* Make widgets vector protected in geFlexResizable
* Add geFlexResizable::clearWidgets() method
* Add geChannel::getId() method
* Ability to add widgets of arbitrary size to geFlexResizable
* Add alternate constructor with explicit coordinates to geFlexResizable
* Update FLTK to latest master
- add giada-fmt.patch (missing includee)
* Mon Oct 16 2023 Lubos Kocman <lubos.kocman@suse.com>
- Drop the Commercial from license tag
* It is an licensing option suggested by author, however our legaldb
throws an error that it's not a valid SPDX license
* Mon Oct 16 2023 Edgar Aichinger edogawa@aon.at
- Update to version 0.26.0:
* Add ability to open more than one plug-in UI (#575)
— you can finally have multiple plug-in windows laying around while playing. Very useful for live performances;
* improved floating legends in Action Editor (#655)
— we added some cute floating legends that stick on top of each Action Editor widget, making it easier to edit actions in the right place;
* huge optimizations to the audio rendering process;
* Windows: store configuration file in AppData directory
— to allow better integration with the environment (#299);
* Windows: fix missing .dll file on startup (#661);
* many more usability improvements and smaller optimizations.
* Tue Sep 19 2023 Lubos Kocman <lubos.kocman@suse.com>
- Correction of license based on legaldb review
* Sat Aug 05 2023 Edgar Aichinger edogawa@aon.at
- remove 002-fix-include-cstdint.patch (now upstream)
- Update to version 0.25.1:
* Update changelog
* Include <cstdint> for uint32_t
* DRY geTabAudio
* Better samplerate selection in dropdown menu if device has no samplerate (e.g. JACK)
* Show 'none' in channel's dropdown menu if device has no channels (e.g. JACK)
* Use geChoice::showFirstItem() in place of geChoice::showItem(0) in geTabAudio
* New method geChoice::showFirstItem()
* Show MIDI map path in drop down menu only if available and found
* Store actual MIDI map path (std::string) into c::MidiData struct
* Show MIDI in/out ports in drop down menu only if they are available
* Sun Jun 18 2023 Edgar Aichinger <edogawa@aon.at>
- remove 001-Fix-build-with-fmt-9-GCC-12.patch (now upstream)
- update to 0.25.0
* Ability to change audio and MIDI engines on the fly — no need to restart
Giada anymore when the audio and/or MIDI devices change. No need to restart
also when changing several properties in the Configuration Window;
* Add new "Clear" button next to all MIDI learning widgets to easily clear
the MIDI binding (#486);
* Set default resampler quality to "Linear" (the fastest one);
* Update FLTK to latest commit available;
* Update JUCE to version 7.0.5;
* Fix Velocity parameter not being usable in Action Editor;
* Fix MIDI Channel parameter not being usable in MIDI input configuration;
* Code refactoring and other architectural improvements.
* Thu Mar 30 2023 Konstantin Voinov <kv@kott.no-ip.biz>
- Update patchset:
* 001-Fix-build-with-fmt-9-GCC-12.patch
* rename 001-cstdint.patch to 002-fix-include-cstdint.patch
- Switch to tar_scm with disabled mode
- Update to 0.24.0
* Revamped MIDI sync Clock support
* MIDI engine refactoring, featuring multi-threading support
* UI: Resizable vu-meters
* UI: New global MIDI activity leds
* More core classes and functions refactoring
* More robust persistence mechanism for project and configuration files
* Add new tests suites for MidiEvent and ChannelFactory
* Set C++ version to C++20
* Update FLTK to latest commit available
* Wed Mar 29 2023 Edgar Aichinger <edogawa@aon.at>
- add 001-cstdint.patch to fix TW build (gcc13)
- remove tarball from package sources (generated at buildtime)
/usr/bin/giada /usr/share/applications/com.giadamusic.Giada.desktop /usr/share/doc/packages/giada /usr/share/doc/packages/giada/ChangeLog /usr/share/icons/hicolor/scalable/apps/com.giadamusic.Giada.svg /usr/share/licenses/giada /usr/share/licenses/giada/COPYING /usr/share/metainfo/com.giadamusic.Giada.metainfo.xml
Generated by rpm2html 1.8.1
Fabrice Bellet, Sun Aug 2 03:56:04 2026